message.processed = true
message.returnvalue = 1
和
retrn 1 的區別是什么?
查了一遍用戶手冊,也沒看明白
這兩種方法,在沒有繼承的情況下,都能起到阻止當前事件的處理的效果;
但是在有繼承的情況下,第一種方法就無效了,如論是寫到基類還是寫到子類。
原來用著正常的代碼,我改用繼承后,就出現例外了,哪位明白是怎么回事嗎?
我改成return 1就ok,想知道為啥這樣。
uj5u.com熱心網友回復:
一個是給回傳提供準備值uj5u.com熱心網友回復:
只是準備,還沒有回傳另一個是直接帶值回傳
-------------------------------
我是這樣理解的。不知有沒有誤解。
uj5u.com熱心網友回復:
Message.Processed 用戶定義事件或other事件的事件處理程式中設定的值,他的作用在于指明該事件的進一步處理方式,取值為true 執行當前事件的事件處理程式后不呼叫默認視窗程序,false 默認值,執行當前事件的事件處理程式后呼叫執行默認視窗程序Message.ReturnValue 當Message.Processed屬性值為true時,該引數值指定要回傳給windows的值,如果Message.Processed為false ,該引數被忽略
uj5u.com熱心網友回復:
Processed Boolean A boolean value set in the script for the user-defined event or the Other event. Values are:?True ?The script processed the event; do not call the default window Proc (DefWindowProc) after the event has been processed.
?False ?(Default) Call DefWindowProc after the event has been processed.
ReturnValue Long When Message.Processed is True, specifies the value you want returned to Windows. This property is ignored when Message.Processed is False.
uj5u.com熱心網友回復:
比如說有一個表單;w_1,它有一個CloseQuery事件,當執行CloseQuery事件時,PowerBuilder會檢查Message.RuturnValue的值,若為1,則不能關閉此表單.CloseQuery事件的代碼如下;
if messagebox("退出視窗","真的要退出嗎?",question!,yesno!)<>1 then
message.returnvalue=https://bbs.csdn.net/topics/1
end if
執行時,打開竄體,單擊關閉按鈕,此時觸發CloseQuery事件,執行處理程式,談除一提示框,如果選"否",則在事件處理程式中設定Message.ReturnValue為1,取消關閉;選"是"就關閉表單
uj5u.com熱心網友回復:
額,幫助上是這樣說的上邊的例子是一個帖子上的。
其實這個例子,將 message.returnvalue = 1 改為 return 1
效果是一樣的
也就是說他們一般是等效的
我是在有繼承的事件中寫的這個代碼,第一種方式是無效的,無論寫到父類的事件內,還是在子類的事件內
uj5u.com熱心網友回復:
這個只能說明Sybase的檔案說明不全uj5u.com熱心網友回復:
一般用return 1,這個比較常用
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/38361.html
標籤:腳本語言
下一篇:求一個TreeDw
