全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1283
推到 Plurk!
推到 Facebook!

如何繼承 TMenu ?

答題得分者是:RaynorPao
yamigo
一般會員


發表:19
回覆:41
積分:12
註冊:2002-12-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-28 16:37:43 IP:61.70.xxx.xxx 未訂閱
請教大大~ 我在子視窗中有自已的一個 TMenuItem .. 我如何繼承主視窗的 TMenu ?
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-28 22:02:05 IP:61.221.xxx.xxx 未訂閱
引言: 我在子視窗中有自已的一個 TMenuItem .. 我如何繼承主視窗的 TMenu ?
yamigo 你好: 有關你的問題~~不太了解?? 能不能請你把問題更詳細的描述清楚呢?? --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
yamigo
一般會員


發表:19
回覆:41
積分:12
註冊:2002-12-05

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-30 08:41:57 IP:61.16.xxx.xxx 未訂閱
真是不好意思~ 假設在我的MDI主視窗中有一 TMenu, 內有 檔案、系統、視窗、說明 等四個子項目, 而在開了一個 MDIChild 後,在該 MDIChild 裏, 想在 TMenu 多了一個 編輯 的子項目, 想請問大大我該如何做?
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-30 11:04:05 IP:61.221.xxx.xxx 未訂閱
引言: 假設在我的MDI主視窗中有一 TMenu, 內有 檔案、系統、視窗、說明 等四個子項目, 而在開了一個 MDIChild 後,在該 MDIChild 裏, 想在 TMenu 多了一個 編輯 的子項目, 想請問大大我該如何做?
yamigo 你好: 呵呵~~因為你一開始用了「繼承」兩個字 因此讓我的腦袋打結了(可能受 OOP 的遺毒太深了)< > 關於你的問題~~請參考以下的做法< > (1)在你的 project 中,假設 Form1 是 fsMDIForm, Form2 是 fsMDIChild (2)MainMenu1 是 Form1 中的一個 member (3)在 Form2 中加入以下的程式碼
#include "Unit1.h"
TMenuItem *Form2Menu;
void __fastcall TForm2::Button1Click(TObject *Sender)
{
   Form2Menu->Name="d1";
   Form2Menu->Caption="d";
   Form1->MainMenu1->Items->Insert(1, Form2Menu);
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormCreate(TObject *Sender)
{
   Form2Menu=new TMenuItem(Application);
}
//---------------------------------------------------------------------------
void __fastcall TForm2::FormDestroy(TObject *Sender)
{
   delete Form2Menu;
}
-- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
ccchen
版主


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

發送簡訊給我
#5 引用回覆 回覆 發表時間:2002-12-30 13:40:52 IP:61.219.xxx.xxx 未訂閱
另外一個做法, 在Design time就做好 (1)在你的 project 中,假設 Form1 是 fsMDIForm, Form2 是 fsMDIChild (2)MainMenu1 是 Form1 中的一個 member 在form2上也放一個TMainMenu,加以"編輯"項目,將其此menu之autoMerge設為True,且將"編輯"項目之GroupIndex設為1 如此當此child開時, menu自動合入主menu, childform close 時menu自動拿掉 [note]可經由GroupIndex調整子menu項出現之位置, 若childForm上menuitem目之GroupIndex與主form上之item相同時, 自動取代
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#6 引用回覆 回覆 發表時間:2002-12-30 14:00:30 IP:61.221.xxx.xxx 未訂閱
引言: 我在子視窗中有自已的一個 TMenuItem .. 我如何繼承主視窗的 TMenu ?
yamigo 你好: 後來我又想了一下你的問題~~似乎有更簡單的做法 假設 > >>>>
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
yamigo
一般會員


發表:19
回覆:41
積分:12
註冊:2002-12-05

發送簡訊給我
#7 引用回覆 回覆 發表時間:2002-12-30 17:32:17 IP:61.16.xxx.xxx 未訂閱
To RaynorPao大大~~ 您的程式設計的方法來控制~我比較喜歡~ 而另個則因為一開始若做好的話~我個人會較覺的沒彈性~ On Click Event 裏的程式~我也不太會控制~ ^^. To ccchen大大~~ 您提供的這一方法又讓我多學會 TMenu 的運用~ 且此方法也變實用的,也符合 BCB 快速建置的作用~ 真謝謝兩位大大的教導~~ ^^ 不過是否能在提一個問題?這是有關聯的~ 假設有一 MDIForm 叫 FormMDI,內有一 TMenu 叫 MenuMDI, 在 MenuMDI 裏有一 TMenuItem 叫 mSystemOption, 而小弟在 mSystemOption 寫了一些程式碼, 然後在開啟了一 MDIChild 後,TMenu 繼承了 MenuMDI, 但是呢,在 MDIChild 裏,我必須在 mSystemOption 裏, 再寫上程式碼,請問我這樣做可以嗎? 因我以前是使用 PowerBuilder 當開發工具的, 所以有些觀念和BCB會不倫不類的, 希望別造成你們的困擾才是~~ 謝謝大大們囉! ^^ 發表人 - yamigo 於 2002/12/30 17:35:51
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#8 引用回覆 回覆 發表時間:2002-12-31 00:03:53 IP:61.221.xxx.xxx 未訂閱
引言: 不過是否能在提一個問題?這是有關聯的~ 假設有一 MDIForm 叫 FormMDI,內有一 TMenu 叫 MenuMDI, 在 MenuMDI 裏有一 TMenuItem 叫 mSystemOption, 而小弟在 mSystemOption 寫了一些程式碼, 然後在開啟了一 MDIChild 後,TMenu 繼承了 MenuMDI, 但是呢,在 MDIChild 裏,我必須在 mSystemOption 裏, 再寫上程式碼,請問我這樣做可以嗎?
yamigo 你好: 請問你是想在 run time 的時候再新增程式碼嗎??< > 據我所知~~應該是不太可能的吧??< > 沒有經過 compile 的新增程式碼要怎麼 run 呢?? 如果採用 ccchen 版主所提供的方法的話 你可以事先在每個 MenuItem 的 OnClick 事件所對應的 event procedure 裡面寫入判斷的程式碼 這樣子做~~應該會比較方便吧?? --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
yamigo
一般會員


發表:19
回覆:41
積分:12
註冊:2002-12-05

發送簡訊給我
#9 引用回覆 回覆 發表時間:2002-12-31 08:59:20 IP:61.16.xxx.xxx 未訂閱
嗯~假設 Notepad 的程式~它的Menu有 File Edit Format View Help 在 Format 下有 Word Wrap 和 Font 兩個子項目, 我想在 MDIChild 裏重寫 Font 的程式碼, 或者在 Format 下多一個 Referenece 的子項目和相對應的程式碼, 不知在 BCB 是否可達成?在PB裏可輕鬆做到此功能, 而我的繼承觀念也是如此的~~
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#10 引用回覆 回覆 發表時間:2002-12-31 10:18:48 IP:61.221.xxx.xxx 未訂閱
引言: 嗯~假設 Notepad 的程式~它的Menu有 File Edit Format View Help 在 Format 下有 Word Wrap 和 Font 兩個子項目, 我想在 MDIChild 裏重寫 Font 的程式碼, 或者在 Format 下多一個 Referenece 的子項目和相對應的程式碼, 不知在 BCB 是否可達成?在PB裏可輕鬆做到此功能, 而我的繼承觀念也是如此的~~
yamigo 你好: 以下是我個人的想法~~給你做參考 < class="code"> (1)Reference 子項目的 Enabled 屬性可先設為 false,在某種條件成立的時候 再把它設為 true (2)在 Font 子項目中的 OnClick 事件所應的 event procedure 中,以某一個 flag 來判斷(if...else)該跑哪一段程式碼 -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-04-29 17:54:47
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!