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

單一按鍵處理

答題得分者是:
aki
版主


發表:30
回覆:696
積分:755
註冊:2004-01-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-10-21 17:57:22 IP:61.66.xxx.xxx 訂閱
我目前有一個軟體的問題想請問各位網友提示.

有一個設計上的需求就是只有單一按鍵.
按 2 秒後放開作 A 事件處理,
如果按了 4 秒後作 B 事件處理, 按了 6 秒後作 C 事件處理.

在軟體的寫法上該如何來做可以達到此目的.

先謝謝各位!
ererer40
初階會員


發表:37
回覆:91
積分:45
註冊:2008-05-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-10-21 19:40:22 IP:118.168.xxx.xxx 訂閱
那如果是2.00000001秒或1.999999999秒算不算2秒.
aki
版主


發表:30
回覆:696
積分:755
註冊:2004-01-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-10-21 19:47:00 IP:61.66.xxx.xxx 訂閱

謝謝回覆!
時間不用抓這麼準啦! 用意指是短按鍵,中長按下,長按下 來區分作什麼事情!


===================引 用 ererer40 文 章===================
那如果是2.00000001秒或1.999999999秒算不算2秒.
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-10-21 20:40:50 IP:123.193.xxx.xxx 未訂閱

[code delphi]
var
StartTickCount: Cardinal = 0;
procedure TForm1.Button1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
StartTickCount := GetTickCount;
end;

procedure TForm1.Button1MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
t: Cardinal;
begin
t := GetTickCount - StartTickCount;
if t > 6000 then ShowMessage('C:' IntToStr(t))
else if t > 4000 then ShowMessage('B:' IntToStr(t))
else if t > 2000 then ShowMessage('A:' IntToStr(t));
end;

[/code]
編輯記錄
jow 重新編輯於 2008-10-21 20:41:30, 註解 無‧

版主


發表:261
回覆:2302
積分:1667
註冊:2005-01-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-10-21 22:52:15 IP:202.132.xxx.xxx 未訂閱
1按鍵, 1外部中斷, 1個2 sec timer.

按鍵被按下, 起動timer

按鍵被放開, 停止timer, --> 2sec 內不做事, 2~3 sec 做 A, 4~5sec做B, ......以此類推

FYI.

===================引 用 aki 文 章===================
我目前有一個軟體的問題想請問各位網友提示.

有一個設計上的需求就是只有單一按鍵.
按 2 秒後放開作 A 事件處理,
如果按了 4 秒後作 B 事件處理, 按了 6 秒後作 C 事件處理.

在軟體的寫法上該如何來做可以達到此目的.

先謝謝各位!
------
-------------------------------------------------------------------------
走是為了到另一境界,停是為了欣賞人生;未走過千山萬水,怎知生命的虛實與輕重!?
暗黑破壞神
版主


發表:9
回覆:2301
積分:1627
註冊:2004-10-04

發送簡訊給我
#6 引用回覆 回覆 發表時間:2008-10-22 13:30:33 IP:140.134.xxx.xxx 未訂閱
哇靠。大哉問勒。
2.01 sec 算不算 2.0 sec?
如果算的話。那要如何做分界點?
我覺得,這個可能要先收集資料。然後進入分群,分類,再來判斷目前按的時間算是那一個動作。
嗯。可以導入類神經的倒傳遞演算法來處理。

喔,不想這麼麻煩?
那你就要想好它的臨界值。把它定死了。
如 0-2.5 做 1
3.5-4.5 做 2
5.5以上做 3
而不是丟個題意不清的問題來找解答。

===================引 用 文 章===================
1按鍵, 1外部中斷, 1個2 sec timer.

按鍵被按下, 起動timer

按鍵被放開, 停止timer, --> 2sec 內不做事, 2~3 sec 做 A, 4~5sec做B, ......以此類推

FYI.

===================引 用 aki 文 章===================
我目前有一個軟體的問題想請問各位網友提示.

有一個設計上的需求就是只有單一按鍵.
按 2 秒後放開作 A 事件處理,
如果按了 4 秒後作 B 事件處理, 按了 6 秒後作 C 事件處理.

在軟體的寫法上該如何來做可以達到此目的.

先謝謝各位!
ererer40
初階會員


發表:37
回覆:91
積分:45
註冊:2008-05-02

發送簡訊給我
#7 引用回覆 回覆 發表時間:2008-10-22 15:23:13 IP:60.248.xxx.xxx 訂閱
我之所以會問那如果是2.00000001秒或1.999999999秒算不算2秒

就是暗黑破壞神版大的意思

如果照樓主的條件實做出來,那可以寫一篇論文了
編輯記錄
ererer40 重新編輯於 2008-10-22 15:24:35, 註解 無‧
系統時間:2024-05-03 12:14:42
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!