【PB】如何觸發帶引數的自定義事件?

灰色軌跡發表於2012-08-22
用程式碼觸發事件時,可以使用函式triggerevent()/Postevent()

而在觸發帶引數的自定義事件時,則按以下方法最好:

語法:

objectname.{trigger|post} {static|dynamic} EVENT EventName ({argumentlist})

其中:

objectname 是事件所屬物件的物件名

Trigger/Post只能選一個,也可不選,預設時為Trigger. Trigger表示立即執行指定事件,然後再執行該語句後面的程式碼;Post表示將該事件放置到物件的事件佇列中,然後繼續執行該語句後面的程式碼,至於發出去的事件的事件處理程式何時執行,由作業系統決定.

Static/Dynamic只能選一個,預設時為Static. Static表示編譯時指定事件必須存在,系統要進行返回值型別檢查; Dynamic表示編譯時指定事件可以不存在,系統把返回值型別檢查推遲到應用程式執行時進行.

EVENT是關鍵字,表示後面的EventName是個事件名,而不是函式.

argumentlist是事件引數列表,多個引數時引數之間用逗號分隔.

上述語法格式中,{Trigger|Post},{Static|Dynamic} 和EVENT的先後次序可任意旋轉,大括號表示該成分可以省略.

例:  w_main.trigger event ue_dellimit(0)

上句表示觸發w_main視窗物件的自定義事件ue_dellimit,事件引數為0 ,省略了關鍵字 Static/Dynamic,預設為 Static

而Triggerevent/Postevent也能做到,但目的不一樣,Triggerevent/Postevent可帶入引數,但引數儲存到全域性物件Message中的WordParm/LongParm中

相關文章