請教前輩有關Data Controls->DBNavigator問題! |
答題得分者是:ccchen
|
Ethan
版主 發表:101 回覆:170 積分:78 註冊:2006-07-05 發送簡訊給我 |
|
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
為什麼當我用滑鼠按著 DBNavigator的上,下頁按鈕不放時,可連續切換一下筆資料.
那是因為DBNavigator用TNavButton,內含一個Timer, MouseDown後啟動Timer,每0.1秒檢查一次若仍在down狀態就去呼叫click.
可以如下模擬: 在Form上放一個TTimer, Interval設為100
type TTmpButton=class(TButton);//這行是為了使用Button 之protect method procedure TForm2.Timer1Timer(Sender: TObject); //Timer1之onTimer begin if TTmpButton(Button1).MouseCapture then begin //check mouse是否在button1上 try Button1.Click; //呼叫click except Timer1.Enabled := False; //若有任何錯誤, disable Timer raise; end; end; end; procedure TForm2.Button1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Timer1.Enabled := True; //mousedown時啟動Timer end; procedure TForm2.Button1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Timer1.Enabled := False; //Mouseup時關掉Timer end; procedure TForm2.Button1Click(Sender: TObject); begin Memo1.lines.add('click'); // only test end; |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |