線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:926
推到 Plurk!
推到 Facebook!

動態form

答題得分者是:bigdogchina
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-06-25 14:29:17 IP:61.222.xxx.xxx 未訂閱
請問各位 我是選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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-06-25 19:40:16 IP:210.243.xxx.xxx 未訂閱
可能name去重覆到了... 國泰平安
jcjroc
高階會員


發表:21
回覆:279
積分:115
註冊:2002-09-18

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-25 21:07:36 IP:61.219.xxx.xxx 未訂閱
Close Window 不等於該Class被Destory 對於一般的Window來說,DestoryWindow後就可以直接將該Class給Delete 但MDI沒辦法馬上就Delete
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-06-28 09:56:52 IP:61.222.xxx.xxx 未訂閱
那要如何解決此問題呢? 我在測時,感覺是有開,但沒顯示出來,我認為沒開又按一次, 但我有把formstyle 設成fsStayOnTop了
bass15
高階會員


發表:24
回覆:171
積分:119
註冊:2003-10-27

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-06-28 10:56:20 IP:61.66.xxx.xxx 未訂閱
沒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();
ClientForm->Show(); 
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-06-28 11:26:24 IP:220.130.xxx.xxx 未訂閱
ClientForm->Show() 這很之前有加了,我沒post而己,應不是這個問題
anpino
版主


發表:31
回覆:477
積分:231
註冊:2003-01-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-06-29 09:09:29 IP:211.23.xxx.xxx 未訂閱
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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-06-29 17:07:20 IP:61.222.xxx.xxx 未訂閱
各位大大: 還是不行
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-06-29 19:21:57 IP:61.220.xxx.xxx 未訂閱
老話一句~ 把程式放上來大家幫忙看看吧~ 國泰平安
kenbcb
中階會員


發表:171
回覆:129
積分:60
註冊:2003-07-15

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-06-30 11:21:21 IP:220.130.xxx.xxx 未訂閱
各位大大:    我測的感覺是有關掉, 而在第二次開時是有開但沒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

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-06-30 12:55:07 IP:218.18.xxx.xxx 未訂閱
不好意思,插個花: 試試將表單的銷毀放到聲明中,不用在最後來清理。請看看下面的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

發送簡訊給我
#12 引用回覆 回覆 發表時間:2004-07-05 10:01:27 IP:61.66.xxx.xxx 未訂閱
照你的程式來看..不管有沒有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

發送簡訊給我
#13 引用回覆 回覆 發表時間:2004-07-09 13:24:29 IP:220.130.xxx.xxx 未訂閱
="= 都改了, 還是有問題,,,,都有開form出來, 但卻沒顯示出來,,是有開沒顯示
pwipwi
版主


發表:68
回覆:629
積分:349
註冊:2004-04-08

發送簡訊給我
#14 引用回覆 回覆 發表時間:2004-07-09 14:11:51 IP:211.76.xxx.xxx 未訂閱
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
系統時間:2024-05-14 19:26:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!