動態form |
答題得分者是:bigdogchina
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
請問各位 我是選listview中的item, 連按mouse二下動態開form來其對應內容, 但關掉後->在開時, 會有己存在問題!! //開form
TClientForm *ClientForm = new TClientForm(this);
ClientForm->Name = "Form" AnsiString(GDT->ID,MAX_ID).Trim();
ClientForm->Caption = "Data Monitor -- " AnsiString(GDT->D,MAX_ID).Trim(); //close form
void __fastcall TClientForm::FormClose(TObject *Sender,TCloseAction &Action)
{
Action = caFree;
}
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
|
jcjroc
高階會員 發表:21 回覆:279 積分:115 註冊:2002-09-18 發送簡訊給我 |
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
|
bass15
高階會員 發表:24 回覆:171 積分:119 註冊:2003-10-27 發送簡訊給我 |
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
|
anpino
版主 發表:31 回覆:477 積分:231 註冊:2003-01-02 發送簡訊給我 |
kenbcb 您好: void __fastcall TClientForm::FormClose(TObject *Sender,TCloseAction &Action)
{
ClientForm->Release();
// 或 this->Release();
} -------------------------------
數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D
Anpinos Middle Earth http://anpino.hp.infoseek.co.jp/
-------------------------------
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
|
gemi0305
版主 發表:81 回覆:564 積分:629 註冊:2003-05-11 發送簡訊給我 |
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
各位大大: 我測的感覺是有關掉, 而在第二次開時是有開但沒SHOW出來
// 動態開FORM TClientForm *ClientForm = new TClientForm(this); ClientForm->Name = "Form" AnsiString(GDT->ID,MAX_ID).Trim(); ClientForm->Caption = "Data Monitor -- " AnsiString(GDT->ID,MAX_ID).Trim(); ClientForm->Show(); //CLOSE FORM void __fastcall TClientForm::FormClose(TObject *Sender, TCloseAction &Action) { Action = caFree; } //--------------------------------------------------------------------------- |
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
不好意思,插個花:
試試將表單的銷毀放到聲明中,不用在最後來清理。請看看下面的code:
TClientForm *Clientform = new TClientForm(this); ClientForm->Name = "Form" AnsiString(GDT->ID,MAX_ID).Trim(); ClientForm->Caption = "Data Monitor -- " AnsiString(GDT->D,MAX_ID).Trim(); ClientForm->ShowModal(); delete ClientForm;我也處於初學階段,請前輩們多多斧正! < class="code"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获? |
bass15
高階會員 發表:24 回覆:171 積分:119 註冊:2003-10-27 發送簡訊給我 |
照你的程式來看..不管有沒有free掉前一個應該都可以new出新的ClientForm 可能是命名衝到了吧..因為BCB會自己幫你extern PACKAGE TClientForm *ClientForm; 所以..你不要用ClientForm這個名字吧
TClientForm *ClientForm1 = new TClientForm(this); ClientForm1->Name = "Form" AnsiString(GDT->ID,MAX_ID).Trim(); ClientForm1->Caption = "Data Monitor -- " AnsiString(GDT->D,MAX_ID).Trim(); //close form void __fastcall TClientForm::FormClose(TObject *Sender,TCloseAction &Action) { Action = caFree; } |
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
kenbcb你好:
試著把下面這一行拿掉,看能不能正常連作
ClientForm->Name = "Form" AnsiString(GDT->ID,MAX_ID).Trim();(附註一點:執行期改變元件的Name是很危險的。) 如果還是不行的話,在重開Form以後,可以試試用我之前發表的VCL property viewer分析Component和Child Window,查看是不是有正確的視窗屬性。不然就請你上傳程式,再幫你分析囉… VCL property viewer http://delphi.ktop.com.tw/topic.php?TOPIC_ID=51329 發表人 - pwipwi 於 2004/07/09 14:19:28 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |