TwwDBLookupCombo無法使用滑鼠滾輪選擇… |
答題得分者是:timhuang
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
由於在 dropdown 時, 無法取得 MouseDown 或 MouseUp 的 message, 因此只好自力救濟使用 SetCapture 來進行取得 mouse 訊息的方式, 另外得利用一個全域變數來取得目前是否是 DropDown 的狀態, 以利進行 CloseUp 及 ReleaseCapture. 目前發現的缺點就是該 combo 會有右邊的三角形按下去浮不起來的狀況, 得再想辦法解決.
var bDropDown: Boolean; ... procedure TForm1.wwDBLookupCombo1BeforeDropDown(Sender: TObject); begin SetCapture(wwDBLookupCombo1.Handle); bDropDown := true; end; procedure TForm1.wwDBLookupCombo1CloseUp(Sender: TObject; LookupTable, FillTable: TDataSet; modified: Boolean); begin ReleaseCapture; bDropDown := false; end; procedure TForm1.wwDBLookupCombo1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if bDropDown and (Button = mbMiddle) then wwDBLookupCombo1.CloseUp(true); end; |
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: 由於在 dropdown 時, 無法取得 MouseDown 或 MouseUp 的 message, 因此只好自力救濟使用 SetCapture 來進行取得 mouse 訊息的方式, 另外得利用一個全域變數來取得目前是否是 DropDown 的狀態, 以利進行 CloseUp 及 ReleaseCapture. 目前發現的缺點就是該 combo 會有右邊的三角形按下去浮不起來的狀況, 得再想辦法解決.感謝timhuang兄的回應…讓小弟多學了幾招…謝謝囉… 經小弟試的結果好像不行耶… 小弟有找到相關的文章:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=18658目前正在研究中…var bDropDown: Boolean; ... procedure TForm1.wwDBLookupCombo1BeforeDropDown(Sender: TObject); begin SetCapture(wwDBLookupCombo1.Handle); bDropDown := true; end; procedure TForm1.wwDBLookupCombo1CloseUp(Sender: TObject; LookupTable, FillTable: TDataSet; modified: Boolean); begin ReleaseCapture; bDropDown := false; end; procedure TForm1.wwDBLookupCombo1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin if bDropDown and (Button = mbMiddle) then wwDBLookupCombo1.CloseUp(true); end;
------
~小弟淺見,參考看看~ |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |