如何發出自訂的message讓自己的程式接收 |
尚未結案
|
danielx2000
一般會員 發表:29 回覆:33 積分:22 註冊:2002-09-02 發送簡訊給我 |
請教各位: 我在一form中放上一button用來發出一個MESSAGE ,並用一個timer來接收是否有message進來並改變form上某個checkbox的狀態,
(我最終是要把button 替換成由Thread上送出message的功能,以改變主form上checkbox的狀態).
我試做了一下沒有成功,卻找不出問題點
程式碼如下; 請問是哪裡有問題 謝謝
const WM_SPECIAL_RELEASE_KB = WM_USER 0; WM_SPECIAL_ID_STATUS_CHANGE = WM_USER 1; procedure TForm1.Button2Click(Sender: TObject); var Msg:Tmsg; begin postMessage(Self.handle,WM_SPECIAL_RELEASE_KB,1,0); end; procedure TForm1.Timer1Timer(Sender: TObject); var Msg:TMsg; begin waitMessage; if peekMessage(Msg,0,0,0,PM_REMOVE) then begin listBox1.Items.Add(format('%d', [Msg.message] ) ); while listbox1.Items.Count > 40 do listbox1.items.Delete(0); case Msg.message of WM_SPECIAL_RELEASE_KB: begin if btnOptKm.Enabled then btnOptKm.Checked := not btnOptKm.Checked; end; else begin TranslateMessage(Msg); DispatchMessage(Msg); end; end; end; end; |
aquarius
資深會員 發表:3 回覆:347 積分:330 註冊:2003-05-21 發送簡訊給我 |
參考下頭的程式碼吧!!
const UM_TEST=WM_USER 1 ; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } procedure UMTEST(var msg:TMessage) ; message UM_TEST ; public { Public declarations } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.UMTEST(var msg:TMessage) ; begin ShowMessage(format('WParam=%X, LParam=%X',[msg.wParam,msg.lParam])) ; end ; procedure TForm1.Button1Click(Sender: TObject); begin PostMessage(self.handle,UM_TEST,0,255) ; end; end....Aquarius
------
水瓶男的blog: http://791909.blogspot.com |
danielx2000
一般會員 發表:29 回覆:33 積分:22 註冊:2002-09-02 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |