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

MDI問題請教

尚未結案
opium
一般會員


發表:22
回覆:11
積分:6
註冊:2003-02-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-27 09:12:58 IP:218.162.xxx.xxx 未訂閱
各位大大安安: 小弟是個mdi的新手想請問個問題 請各大大指導 小弟的mdichild是用動態產生的 在動態產生一個stringgrid 放在mdichild 如果一次產生二個就會有問題 好像是無法指定focus,不知是不是小弟的用法有錯呢? 附上程式碼 請大大幫個忙 謝謝
void __fastcall TForm1::FormCreate(TObject *Sender)
{
TForm *NewForm=new TForm(this);
  NewForm->FormStyle=fsMDIChild;
  NewForm->Parent=(this);
  NewForm->Top=50;
  NewForm->Left=50;
  NewForm->Height=300;
  NewForm->Width=450;
  TStringGrid *sg=new TStringGrid(this);
  sg->Parent=NewForm;
  sg->Align=alClient;
  sg->ColCount=10;
  sg->RowCount=100;
  sg->DefaultColWidth=65;
  sg->DefaultRowHeight=65;
  sg->FixedCols=0;
  sg->FixedRows=0;
  NewForm->Show();      TForm *NewForm1=new TForm(this);
  NewForm1->FormStyle=fsMDIChild;
  NewForm1->Parent=(this);
  NewForm1->Top=70;
  NewForm1->Left=70;
  NewForm1->Height=300;
  NewForm1->Width=450;
  TStringGrid *sg1=new TStringGrid(this);
  sg1->Parent=NewForm1;
  sg1->Align=alClient;
  sg1->ColCount=10;
  sg1->RowCount=100;
  sg1->DefaultColWidth=65;
  sg1->DefaultRowHeight=65;
  sg1->FixedCols=0;
  sg1->FixedRows=0;
  NewForm1->Show();
}
「好程式應與他人分享!」無疑是至理名言。 -Richard Stallman,GNU 計畫的創辦人 GNU宣言
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-27 23:11:07 IP:61.217.xxx.xxx 未訂閱
opium 您好:    既然是使用 MDI Form,那麼就使用 TMDIChild 來設定子 Form 吧,例如:
TMDIChild *NewForm = new TMDIChild(Application);
同時;您將建立子 Form 的動作放到 Form 的 OnCreate 事件中是會出錯的,建議您改放到 OnShow 事件中。 不過;我有點好奇,您為何不直接在建立新專案時,就選擇建立 "MDI Application" 呢?BCB 會幫您建立好一個 MDI 的基本模組,這樣子會簡單多了。 7 天天敲鍵盤 v 時時按滑鼠 8
opium
一般會員


發表:22
回覆:11
積分:6
註冊:2003-02-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-28 08:31:33 IP:218.162.xxx.xxx 未訂閱
謝謝大大的指導 我知道bcb有建好的mdi app可用 因為覺的都是別人寫好的 自已知道的不多 所以想自已做一個看看 多學一點 @@""在請問一下我需要include什麼檔呢? 會出錯,謝謝大大 「好程式應與他人分享!」無疑是至理名言。 -Richard Stallman,GNU 計畫的創辦人 GNU宣言
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-28 09:04:09 IP:59.115.xxx.xxx 未訂閱
opium 您好:    您沒有貼出錯誤訊息的內容,我不能確定是什麼問題?如果您判斷是缺少表頭檔的話,看看是不是 ChildWin.h 這個檔?      7 天天敲鍵盤 v 時時按滑鼠 8
opium
一般會員


發表:22
回覆:11
積分:6
註冊:2003-02-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-28 09:40:45 IP:218.162.xxx.xxx 未訂閱
RedSnow不好意思 麻煩您看一下了 謝謝 [Linker Error] Unresolved external 'TMDIChild::' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ [Linker Error] Unresolved external '__fastcall TMDIChild::TMDIChild(Classes::TComponent *)' referenced from C:\PROGRAM FILES\BORLAND\CBUILDER6\PROJECTS\UNIT1.OBJ 謝謝 「好程式應與他人分享!」無疑是至理名言。 -Richard Stallman,GNU 計畫的創辦人 GNU宣言
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-10-28 10:52:34 IP:59.115.xxx.xxx 未訂閱
opium 您好:    真是抱歉,我將您的問題弄混了,之前的回覆都是在使用 MDI Application 自動產生模組的假設狀態下,沒弄清楚您是要自己試著做。    您可以先試著將設定子 Form Parent 的敘述 mark 掉試試看,應該可以正常啟動與執行 (放在 Form 的 OnShow 事件中,或是程式執行後以按鈕的 OnClick 事件來建立),但是因為沒設定 Parent,所以程式結束時不會自動釋放掉,這個部份尚待找出方法來解決,我稍後要出門,待忙完後再繼續做測試。      7 天天敲鍵盤 v 時時按滑鼠 8
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-10-28 16:54:14 IP:61.217.xxx.xxx 未訂閱
opium 您好:    剛才做過測試,發現只需小小的修改一下就可以了,我將您的程式修改如下,您試試看吧:
void __fastcall TForm1::FormShow(TObject *Sender)
{
    TForm *NewForm = new TForm(Application);
    NewForm->FormStyle = fsMDIChild;
    NewForm->Top = 50;
    NewForm->Left = 50;
    NewForm->Height = 300;
    NewForm->Width = 450;
    TStringGrid *sg = new TStringGrid(this);
    sg->Parent = NewForm;
    sg->Align = alClient;
    sg->ColCount = 10;
    sg->RowCount = 100;
    sg->DefaultColWidth = 65;
    sg->DefaultRowHeight = 65;
    sg->FixedCols = 0;
    sg->FixedRows = 0;        TForm *NewForm1 = new TForm(Application);
    NewForm1->FormStyle = fsMDIChild;
    NewForm1->Top = 70;
    NewForm1->Left = 70;
    NewForm1->Height = 300;
    NewForm1->Width = 450;
    TStringGrid *sg1 = new TStringGrid(this);
    sg1->Parent = NewForm1;
    sg1->Align = alClient;
    sg1->ColCount = 10;
    sg1->RowCount = 100;
    sg1->DefaultColWidth = 65;
    sg1->DefaultRowHeight = 65;
    sg1->FixedCols = 0;
    sg1->FixedRows = 0;
}
7 天天敲鍵盤 v 時時按滑鼠 8
系統時間:2024-04-27 23:40:18
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!