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

請教如何在副執行緒中使用主程式所宣告的觸發事件?

答題得分者是:jbinfo
yoan4560409
一般會員


發表:11
回覆:7
積分:3
註冊:2006-08-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-03-02 14:03:03 IP:140.116.xxx.xxx 訂閱

各先先進
小弟在主程式中已寫好許多事件的觸發動作
譬如buttonclick、keypress等之類事件
當在主程式中要使用事件動作時,譬如按下button1
語法為
Button1Click(Sender)


但今小弟欲在子執行緒中使用主程式所宣告的事件
使用上述語法時卻無法使用

想請各位幫忙解惑
謝謝
jbinfo
一般會員


發表:9
回覆:25
積分:16
註冊:2004-05-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-03-04 08:56:48 IP:203.121.xxx.xxx 訂閱
yoan4560409你好,不知道以下方法能不能解決你的問題: //Thread程式定義如下: //event function pointer typedef void __fastcall ( __closure *onclick )( TObject *Sender ); class TestEvent : public TThread { private: void __fastcall MainEvent(); protected: void __fastcall Execute(); public: __fastcall TestEvent(bool CreateSuspended); public: onclick Thread_OnClick; }; //--------------------------------------------------------------------------- //Thread實作程式如下 __fastcall TestEvent::TestEvent(bool CreateSuspended) : TThread(CreateSuspended) { } //--------------------------------------------------------------------------- void __fastcall TestEvent::Execute() { //---- Place thread code here ---- Synchronize( MainEvent ); } //--------------------------------------------------------------------------- void __fastcall TestEvent::MainEvent() { Thread_OnClick( this ); } //--------------------------------------------------------------------------- //我在主表單裡先拉二個Button,第一個Button事件如下 void __fastcall TForm1::Button1Click(TObject *Sender) { ShowMessage("OnClick"); } //--------------------------------------------------------------------------- //第二個Button事件如下 void __fastcall TForm1::Button2Click(TObject *Sender) { TestEvent *_event = new TestEvent( true ); _event->Thread_OnClick = Button1->OnClick; _event->Resume(); } 如此一來,我就可以在執行緒裡執行主程式的事件,希望對你有幫助
yoan4560409
一般會員


發表:11
回覆:7
積分:3
註冊:2006-08-04

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-03-06 16:30:26 IP:140.116.xxx.xxx 訂閱
不好意思
可以請教一下詳細的做法嗎?

在TThread中定義檔的那ㄧ行typedef的作用是?

謝謝
系統時間:2024-04-30 22:27:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!