如何將已開啟的 子視窗, 顯示在 母視窗 的 panel 上 |
答題得分者是:pcplayer99
|
feng2939
一般會員 ![]() ![]() 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
|
mitchellhu
一般會員 ![]() ![]() 發表:23 回覆:53 積分:15 註冊:2007-06-12 發送簡訊給我 |
|
feng2939
一般會員 ![]() ![]() 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
謝謝 mitchellhu 的幫忙.., 點進去看了, 但不是我的問題.
抱歉!!!! 應該是我沒說的很清楚, 請參下附檔 ===================引 用 mitchellhu 文 章=================== 請參考 https://www.youtube.com/watch?v=fNT_m1cnK38 看看
------
DVF |
feng2939
一般會員 ![]() ![]() 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
補充說明:
1. 當點選到 MDI Form 中的, Open Windows 時, MDIChild 會 active 2. Open Windows 是在 MDI Form panel 中使用了, 那些元件? 謝謝!!! ![]() ===================引 用 feng2939 文 章=================== 謝謝 mitchellhu 的幫忙.., 點進去看了, 但不是我的問題. 抱歉!!!! 應該是我沒說的很清楚, 請參下附檔 ===================引 用 mitchellhu 文 章=================== 請參考 https://www.youtube.com/watch?v=fNT_m1cnK38 看看
------
DVF |
pcplayer99
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
|
feng2939
一般會員 ![]() ![]() 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
謝謝 pcplayer99 的指導.
我想要做到的功能是, 當點選 Open Windows 中,已使用中的 程式, 右側則會顯示, 程式內容, 如上面附圖的: Chart of Accounts. 而新增加的程式, 則會增加到 Open Windows 裡面, 如: Customer job List , Item List .... 等. 有看過國內 軟體廠商有此作法, 很想學著做. PS:不好意思, 今天下午才收假上班, 測試您的方法, 晚了點. 謝謝!!!! ===================引 用 pcplayer99 文 章=================== 不建议用 MDI Form 你采用另外一种办法,非 MDI Form,而是普通的 TForm。 假设: Form1, Form2 在 Form1 上有一个 Panel1 Form2.Parent := Panel1; Form2.BorderStyle := bsNone; Form2.Align := alClient; Form2.Show; 这样就把 Form2 显示到 Form1 的 Panel1 上面了。
------
DVF |
pcplayer99
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
上图中你用红色圈出来的【Open Windows】是一个 ListBox 或者 ListView 之类的东西。它只是用一个字符串来描述你开启了哪个 Form。
这里还有个概念:进程。 1. 如果你是想在一个程式里面(也就是一个进程里面,一个 EXE 程式里面),有多个不同功能的 Form,拿你开启一个 Form,就把对应的名字写到那个 ListBox 里面,并且将这个 Form 按照我上面说的方法,显示到右边的 Panel 上面。 2. 如果右边 Panel 上面显示的,是很多个不同的进程的Form(比如,你每个功能写成一个独立的 EXE 程式),那就稍微复杂点,但道理是相同的,只是这里是把其它进程的 Form 摆放到右边的 Panel 上面。 如何把其它程式(进程)的 Form 摆放到这个程式的某个 Panel 上面?首先你必须要知道那个程式的 Handle。具体的做法,你在网上搜索一下,有相关资料的。 ===================引 用 feng2939 文 章=================== 謝謝 pcplayer99 的指導. 我想要做到的功能是, 當點選 Open Windows 中,已使用中的 程式, 右側則會顯示, 程式內容, 如上面附圖的: Chart of Accounts. 而新增加的程式, 則會增加到 Open Windows 裡面, 如: Customer job List , Item List .... 等. 有看過國內 軟體廠商有此作法, 很想學著做. PS:不好意思, 今天下午才收假上班, 測試您的方法, 晚了點. 謝謝!!!! ===================引 用 pcplayer99 文 章=================== 不建议用 MDI Form 你采用另外一种办法,非 MDI Form,而是普通的 TForm。 假设: Form1,‚ Form2 在 Form1 上有一个 Panel1 Form2.Parent := Panel1; Form2.BorderStyle := bsNone; Form2.Align := alClient; Form2.Show; 这样就把‚ Form2 显示到 Form1 的 Panel1 上面了。 |
feng2939
一般會員 ![]() ![]() 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
謝謝 pcplayer99 的熱心指點.
向前進了一步. 在 母畫面加了一個 panel 及 listbox, 當新增一個 子畫面, 用 listbox1.Items.add('XXXX'); 可加入 listbox 中, 但無法點選 其中的 item, 若選擇時, 會出現 "cannot forus a disabled or invidible window". 不知這是什麼原因, 還是需要在panel 上參數做設定? 謝謝!!! ===================引 用 pcplayer99 文 章=================== 上图中你用红色圈出来的【Open Windows】是一个 ListBox 或者 ListView 之类的东西。它只是用一个字符串来描述你开启了哪个 Form。 这里还有个概念:进程。 1. 如果你是想在一个程式里面(也就是一个进程里面,一个 EXE 程式里面),有多个不同功能的 Form,拿你开启一个 Form,就把对应的名字写到那个 ListBox 里面,并且将这个 Form 按照我上面说的方法,显示到右边的 Panel 上面。 2. 如果右边 Panel 上面显示的,是很多个不同的进程的Form(比如,你每个功能写成一个独立的 EXE 程式),那就稍微复杂点,但道理是相同的,只是这里是把其它进程的 Form 摆放到右边的 Panel 上面。 如何把其它程式(进程)的 Form 摆放到这个程式的某个 Panel 上面?首先你必须要知道那个程式的 Handle。具体的做法,你在网上搜索一下,有相关资料的。 ===================引 用 feng2939 文 章=================== 謝謝 pcplayer99 的指導. 我想要做到的功能是, 當點選 Open Windows 中,已使用中的 程式, 右側則會顯示, 程式內容, 如上面附圖的: Chart of Accounts. 而新增加的程式, 則會增加到 Open Windows 裡面, 如: Customer job List , Item List .... 等. 有看過國內 軟體廠商有此作法, 很想學著做. PS:不好意思, 今天下午才收假上班, 測試您的方法, 晚了點. 謝謝!!!! ===================引 用 pcplayer99 文 章=================== 不建议用 MDI Form 你采用另外一种办法,非 MDI Form,而是普通的 TForm。 假设: Form1,ƒ‚‚ Form2 在 Form1 上有一个 Panel1 Form2.Parent := Panel1; Form2.BorderStyle := bsNone; Form2.Align := alClient; Form2.Show; 这样就把ƒ‚‚ Form2 显示到 Form1 的 Panel1 上面了。
------
DVF |
pcplayer99
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
|
feng2939
一般會員 ![]() ![]() 發表:22 回覆:30 積分:15 註冊:2013-03-26 發送簡訊給我 |
謝謝 pcplayer99 熱心的指導.
我曾看過 MDI LISTBOX 的設計方式, 是可行的.所以我暫時還是會走 MDI 的方式. 我目前是用 MDI , 在產生的 MAIN MENU 中的 WINDOWS 有此功能, 現想在 母畫面中的 PANEL 也有此功能. MID 選擇 FORM 的方式是隨機的, CASE 的方式較難達成想要的目的. === Case ListBox1.ItemIndex of 0: Form1.Show; 1: Form2.Show; 2: Form3.show; end; 謝謝!!!! ===================引 用 pcplayer99 文 章=================== ListBox.Add('AForm1'); Form1.Parent := Panel1; Form1.Align := alClient; Form1.BorderStyle := bsNone; Form1.Show; Form2, Form3 照此办理。 然后,如果你在 ListBox 里面选择了一条, OnClick: Case ListBox1.ItemIndex of 0: Form1.Show; 1: Form2.Show; 2: Form3.show; end;
------
DVF |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |