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

多個MDIForm跟MDIChild的問題

答題得分者是:ccchen
wscken
初階會員


發表:28
回覆:75
積分:45
註冊:2003-08-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-21 12:35:39 IP:210.243.xxx.xxx 未訂閱
之前我有搜尋了一下討論區,不過我看到的跟我想知道的好像不太一樣, 所以不好意思在提出來問一下各位大大? 我想請問各位大大: 我已經在同一個專案裡面使用到多個MDIForm的功能,確實可以執行,也可以互相呼叫,不過,當我開始建立MDIChild的時候,MDIChild卻沒有辦法知道他的母表單是誰,而是每次都屬於同一個MDIForm下,不知道各位大大知不知道有沒有辦法可以正確的指定屬於的MDIForm的語法,因為我看到好像都是說不能同時建立兩個表單,卻沒說如果建立後子表單會如何.......... 拜託各位幫我一下,謝謝!!! 發表人 - Mickey 於 2003/10/21 13:30:56
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-21 12:54:56 IP:61.222.xxx.xxx 未訂閱
看不懂,你要不要把程式碼post上來,這樣可能會比較清楚
jason_cyl329
高階會員


發表:123
回覆:155
積分:105
註冊:2003-05-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-21 14:06:49 IP:61.218.xxx.xxx 未訂閱
你所建立的MDIForm有個屬性parent的指標就是這個form的母表單
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-10-21 14:30:30 IP:218.160.xxx.xxx 未訂閱
Hi wscken 您好: 剛剛試了一下, 竟然看不到Parent, Parent是nil, 看來只能找出Owner了 ShowMessage(ChildForm2.Owner.Name); 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
wscken
初階會員


發表:28
回覆:75
積分:45
註冊:2003-08-05

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-10-21 19:26:18 IP:210.243.xxx.xxx 未訂閱
大大抱歉,我試了一下,好像看不懂Owner, 是不是沒有人這樣做過...
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-10-22 01:13:29 IP:61.219.xxx.xxx 未訂閱
傳入 MDIChild Form 的 Name 來查詢:
procedure TForm1.CheckMDIForm(AMDIChild: TForm);
var
  i, j: integer;
  fm: TForm;
begin
  if AMDIChild.FormStyle <> fsMDIChild then begin
    ShowMessage(AMDIChild.Name   ' 不為 MDIChild Form');
    Exit;
  end;      for i := 0 to Application.ComponentCount -1 do begin
    if Application.Components[i] is TForm then begin
      if (Application.Components[i] as TForm).FormStyle = fsMDIForm then begin
        fm := Application.Components[i] as TForm;
        for j := 0 to fm.MDIChildCount -1 do begin
          if fm.MDIChildren[i].Name = AMDIChild.Name then begin
            ShowMessage(AMDIChild.Name   ' 的母 Form 是'   fm.Name);
            Break;
          end;
        end;
      end;
    end;
  end;
end;
--- 歡迎光臨 KTop 研究院
wscken
初階會員


發表:28
回覆:75
積分:45
註冊:2003-08-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-10-22 02:46:23 IP:218.165.xxx.xxx 未訂閱
版主大大: 我試了一下,不過都會出現 這個錯誤,而且不管是從哪裡呼叫都一樣,是我使用方式錯誤了ㄇ...
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-10-22 08:07:40 IP:61.219.xxx.xxx 未訂閱
啊! 要檢查的那個 TForm 必須已經 create 的. --- 歡迎光臨 KTop 研究院
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-10-22 08:35:50 IP:218.163.xxx.xxx 未訂閱
若使用CLX, 有MDIParent的property可設定 使用VCL的話, 所有MDIChild的MdiParent一定是同一個吧
wscken
初階會員


發表:28
回覆:75
積分:45
註冊:2003-08-05

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-10-22 18:28:36 IP:210.243.xxx.xxx 未訂閱
hagar大大,那個我有Create了,好像不是這個問題... 至於ccchen大大說的,我在找一下資料,因為我是初學者,我也不會用那個 不知道有什麼差別....
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#11 引用回覆 回覆 發表時間:2003-10-23 08:22:26 IP:218.163.xxx.xxx 未訂閱
引言: hagar大大,那個我有Create了,好像不是這個問題... 至於ccchen大大說的,我在找一下資料,因為我是初學者,我也不會用那個 不知道有什麼差別....
我的意思是在不改Source Code的原則下, 使用VCL, 一個AP只能有一個MDIForm, 即使你Create了兩個MDIForm, 所有的MDIChild也只認一個
wscken
初階會員


發表:28
回覆:75
積分:45
註冊:2003-08-05

發送簡訊給我
#12 引用回覆 回覆 發表時間:2003-10-25 12:22:07 IP:218.165.xxx.xxx 未訂閱
我了解您所說的意思,多謝各位大大的回應..... 多謝...
系統時間:2024-11-23 7:43:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!