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

TButton增加MouseLeave事件

 
jackkcg
站務副站長


發表:891
回覆:1050
積分:848
註冊:2002-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-10-04 11:20:03 IP:61.221.xxx.xxx 未訂閱
?TButton增加MouseLeave事件 作者: 萬重 Wednesday, September 4 2002 3:33 PM DELPHI等快速編程工具,使用最多的一定是各種控制項了,用自帶的控制項編出的程式往往千篇一律,?了使自己的程式更個性化或者?了使控制項的功能更強,我們需要自己編控制項,大家不要以?自己編控制項好難,看完這篇文章,保證人人都能編自己的控制項,就算編不了控制項,瞭解瞭解控制項的原理也是不錯的,就算不能瞭解控制項的原理,學習學習……:) 首先,我們做的這個控制項是?了給TBotton控制項增加Mouseleave事件,有了這個事件,我們就可以編出類似網頁中的懸停按鈕的效果,首先打開Delphi,選Component|new Component出現對話方塊, 我們的控制項類名?Tbutton1,父類?Tbutton,庫單元檔案名?Button1。單擊確定按鈕,Component Wizard粗略的生成模板樣式的代碼,其中有類聲明,總體變數聲明及傳遞到RegisterComponent方法中的參數等,編譯好的整個文件的程式清單如下: unit Button1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TButton1 = class(TButton) private FOnMouseLeave: TNotifyEvent; procedure WZMouseLeave(var Msg:TMessage); message CM_MOUSELEAVE; { Private declarations } protected { Protected declarations } public { Public declarations } published property OnMouseLeave: TNotifyEvent read FOnMouseLeave write FOnMouseLeave; { Published declarations } end; procedure Register; implementation procedure Register; begin //在系統中註冊控制項 RegisterComponents('Samples', [TButton1]); end; { TButton1 } procedure TButton1.WZMouseLeave(var Msg: TMessage); begin inherited;//繼承父類 if csLButtonDown in ControlState then begin Self.MouseUp(mbLeft,[ssLeft],0,0); end; if Assigned (FonMouseLeave) then FOnMouseLeave(Self); end; end. 代碼添加完後,編譯後,一個名?Button1的控制項即加入Simples項,新建一個專案,試試這段代碼: procedure TForm1.Button11MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); begin label1.Caption:='在'; end; procedure TForm1.Button11MouseLeave(Sender: TObject); begin label1.Caption:='不在'; end; 怎?樣,是不很簡單。以上在Delphi5.0調試通過。
------
**********************************************************
哈哈&兵燹
最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好

Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知
K.表Knowlege 知識,就是本站的標語:Open our mind
系統時間:2024-04-24 14:55:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!