2012-02-16 41 views
0

我有2個Tframes和一個添加按鈕。我試圖在按下按鈕時將一個tframe添加到另一個上。但因爲我的代碼似乎無法工作。它不會像它想象的那樣添加框架。沒有錯誤或運行,它編譯和運行,但是當我按下按鈕時,它什麼都不做。當我將一個tframe添加到滾動框時,我得到了它的工作,我所做的只是改變了要添加的tframe的位置。對於TFrame2在運行時將Tframe添加到另一個Tframe

void __fastcall TFrame2::AddFrame() 
{ 
    int temp = 0; 
    TFrame1* NewFrame1 = new TFrame1(this); 
    NewFrame1 ->Parent=this; 

    TComponentEnumerator * ParentEnum = GetEnumerator(); 

    while(ParentEnum->MoveNext()) 
    { 
     temp++; 
    } 

    NewFrame1 ->SetIndex(temp); 
    NewFrame1 ->Name = "Frame" + IntToStr(temp); 
    NewFrame1 ->Top = (NewFrame1 ->Height) * (temp); 
} 

代碼,這是我使用的TFrame1本身的代碼

void __fastcall TFrame1 ::SetIndex(int temp) 
{ 
    this->temp= temp; 
} 

int __fastcall TFrame1 ::GetIndex() 
{ 
    return this->temp; 
} 

律BG信息:我必須TFRAME添加到另一個TFRAME的原因,是這樣我就可以將一組組件添加到另一組組件中,我不知道有任何其他方式來執行它。稍後我將tframe2添加到主窗體上。

+0

你需要更具體。 「我的代碼似乎無法工作」給我們絕對沒有什麼可繼續。如果事情不奏效,你需要具體說明他們不能如何工作,包括你得到的任何特定的錯誤消息。請記住,我們無法從這裏閱讀您的想法或屏幕,所以我們唯一的信息就是您在問題中給我們的信息。 – 2012-02-16 15:25:24

+0

順便說一句,'TFrame1 * NewFrame1 =新的TFrame1(TFrame2);'是錯誤的。將傳遞的參數('Owner')從'TFrame2'更改爲'this'。 'TFrame2'是一個類型,你需要將指針傳遞給引用。 – 2012-02-16 15:26:58

+0

我向y添加了更多的細節代碼不起作用。它只是簡單地運行沒有錯誤,但沒有添加tframe。我已經嘗試過'this'而不是TFrame2,同樣的事情,代碼運行,但是當我按下按鈕 – livelaughlove 2012-02-16 17:54:50

回答

0

鑑於您顯示的代碼,唯一可能出錯的是如果您將子框架的Top屬性設置爲超過其父框架的Height屬性的值,以便您不會看到子框架即使它存在於內存中也會出現在屏幕上。

+0

時,添加了tframe。我再次檢查了所有內容,但事實並非如此,但它仍然無法正常工作。我不太清楚爲什麼。我只會嘗試以不同的方式做到這一點。感謝你的貢獻。 – livelaughlove 2012-02-21 17:11:56

+0

我終於把這段時間放在一邊後,終於弄清楚了什麼是錯的。這與我的代碼無關。它只是C++ Builder的錯誤。每次我進入設計視圖進行調整時,我都必須回到我的代碼中,並註釋掉winproc的內容,保存它,然後取消註釋winproc的內容,然後再保存它,然後才能正常工作。我不太確定,但它解決了問題。 – livelaughlove 2012-03-02 19:00:38

+0

你指的是什麼錯誤?我從來沒有做過你所描述的事情。 – 2012-03-02 23:42:35

相關問題