請問如何用Message來做到元件的事件觸發?? |
答題得分者是:ccchen
|
skurama
中階會員 發表:88 回覆:127 積分:73 註冊:2002-07-22 發送簡訊給我 |
假設我寫了一個Panel元件
在Panel元件上放了一個按鈕 但此時我希望在button.onClick事件show一個訊息
之前我的寫法是宣告一個NewClick事件
procedure T元件名.NewClick(Sender: TObject);
begin
showmessage('Test!!');
end; 之後在Create下讓Button.onClick := NewClick; 後來有網友說這樣做不好,儲取得掉原本button.onClick
叫我改用Message來做~~~ 可是我看過Delphi 4 業界標準手冊上寫的message用法,
真的看不懂~~~
請問是否有相關的文件或說明可以參考
謝謝!!! 還有請問現在還有沒有寫的比較詳細的Delphi VCL製作的文件或書籍
我在台中龍軒書局都找不到相關的書籍,大部份都是在教標準元件的使用
和資料庫的製作,比較少相關的書籍,請問有嗎!?
在請問有台中的朋友知道台中除了龍軒還有哪裡賣的書便宜種類也比較多!?
------
---------------- 初出芧房程設師, 左鍵右鼠寫程式, 日扣夜寫眼框溼, 望能早成系分師。 ---------------- |
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
不知是否完全正確了解你的問題.
Create一個元件, 繼承Panel,內含一個button, button click時要執行一些內定功能, 且仍保留onClick Event.
實際上在此狀況下, 元件之onClick乃繼承至Panel, button之所有property若須由外部在DesignTime控制均須額外published
TmyPanel=class(TPanel) private fonbutClick:TNotifyEvent; //宣告新Event變數處理buttonClick public button:TButton; //宣告在public,以便未publish button各參數仍能控制 constructor create(Owner:TComponent); procedure insideClick(Sender: TObject); //執行內部功能 published property OnbutClick: TNotifyEvent read FOnbutClick write FOnbutClick; //使元件能由外部assign此button click Event end; { TmyPanel } constructor TmyPanel.create(Owner: TComponent); begin inherited; button:=TButton.create(self); button.parent:=self; button.SetBounds(0,0,75,25); button.onclick:=Insideclick; //button click時先執行InsideClick end; procedure TmyPanel.insideClick(Sender: TObject); begin showmessage('hi'); if assigned(onbutClick) then onbutClick(Sender);//檢查如有onButClick,執行之 end;你可以Register此元件後執行, 若不安裝也可以如下, RunTime Create來測試 procedure TForm1.ButClick(Sender: TObject); begin showmessage('test'); end; procedure TForm1.FormCreate(Sender: TObject); begin b:=TmyPanel.create(self); b.parent:=self; b.setbounds(10,10,200,100); b.OnbutClick:=butclick; end;你當然也可以攔截WM_MOUSEDOWN,WM_MOUSEUP來完全自行處理,但此處亳無須要 還有請問現在還有沒有寫的比較詳細的Delphi VCL製作的文件或書籍 恐怕只有原文書, 且龍軒書局以前專賣原文書, 現在反而都沒有了, 我都是在到楊業看書目訂購. |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |