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

物件使用問題

答題得分者是:st33chen
lasterliu
一般會員


發表:38
回覆:57
積分:19
註冊:2007-11-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-11-20 11:32:46 IP:60.251.xxx.xxx 訂閱
請問各位大大:
小弟目前有一個問題想請教各位大大一下,就是小弟使用一個物件(如:DBGrid)它有兩個事件(如:KeyDown與MouseDown)。
問題:
我再KeyDown事件中寫了一段程式,現在在MouseDown事件中也需寫跟KeyDown相同的程式,想請問是否可以直接套用KeyDown這物件即可完成,而不需再重複那段程式一遍。
如果可以套用,可以指點一下小弟該如何應用嗎?
st33chen
尊榮會員


發表:15
回覆:591
積分:1201
註冊:2005-09-30

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-11-20 12:47:27 IP:122.116.xxx.xxx 未訂閱
您好,

要看情況,
如果您 keydown 的程式內容沒有用到 keydown 的參數, 那就
1. 把原本 keydown 的程式內容寫成一個新的 procedure 例如叫 mykeydown;
2. keydown 改成呼叫 mykeydown
3. mousedown 也呼叫 mykeydown
這方法我曾用到 tbutton 的 o n c l i c k 上, 可否用在 keydown, mousedown 沒有實測過
請自行測測看

如果您 keydown 的程式內容要用到 keydown 的參數, 那 mousedown 應該沒有足夠的參數資訊來做keydown 的事情


===================引 用 lasterliu 文 章===================
請問各位大大:
小弟目前有一個問題想請教各位大大一下,就是小弟使用一個物件(如:DBGrid)它有兩個事件(如:KeyDown與MouseDown)。
問題:
我再KeyDown事件中寫了一段程式,現在在MouseDown事件中也需寫跟KeyDown相同的程式,想請問是否可以直接套用KeyDown這物件即可完成,而不需再重複那段程式一遍。
如果可以套用,可以指點一下小弟該如何應用嗎?
------
IS IT WHAT IT IS
我是 李慕白 請倒著唸.
又想把老話拿出來說, 請用台語發音 : 專家專家全是ROBOT CAR (滷肉腳啦);
都已接手這麼久了, 績效還是那麼爛, 講話還那麼大聲.
編輯記錄
st33chen 重新編輯於 2008-11-21 10:50:09, 註解 無‧
st33chen 重新編輯於 2008-11-21 10:50:39, 註解 無‧
P.D.
版主


發表:571
回覆:3880
積分:3666
註冊:2006-10-31

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-11-21 22:05:35 IP:61.67.xxx.xxx 未訂閱
其實很簡單
你把兩個事件都要做的事寫一支 procedure 程式
然後在 keydown 或 mouse事件上直接呼叫這支procedure 就好了
沒有什麼技巧啦!

例如:

private
procedure mycoderun;
...
...


TForm1.keydown(.....)
begin
if Key=xxx then mycoderun;
end;

TForm1.Mouse...
begin
mycoderun;
end;
lasterliu
一般會員


發表:38
回覆:57
積分:19
註冊:2007-11-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-11-24 09:53:04 IP:60.251.xxx.xxx 訂閱
謝謝st33chen及版主的解答,那小弟知道該怎麼做了,小弟會這麼問是看到.NET好像可以這樣用,才會詢問DELPHI有無此功能,若有應該如何使用?再次謝謝兩位大大的解答。
roviury
一般會員


發表:3
回覆:49
積分:15
註冊:2008-08-28

發送簡訊給我
#5 引用回覆 回覆 發表時間:2009-05-11 19:36:59 IP:203.186.xxx.xxx 訂閱
先寫一個function/procedure
再被他們call
delphi是可以的
還有,這做法就是function/procedure出現的原因

另外,也可以在設計上,直接把keydown和MouseDown事件指定為同一個procedure
(即在左邊的"設計箱?")
系統時間:2017-10-21 10:47:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!