delphi中回撥函式差異
回撥函式有兩種形式,用在類裡面的和類外的。前者在定義回撥函式時需要在宣告最後加上of object以區分在類外呼叫情況。具體舉例如下,
[@more@]類外情況:
TCallBack = procedure(Param1: Integer;Param2: String;...ParamX...);
TXClass = class(TObject)
FCallBack: TCallBack;
property OnCallBack: TCallBack read FCallBack write FCallBack;
procedure CallBack(Param1: Integer;Param2: String;...ParamX...);
TXClass.CallBack(Param1: Integer;Param2: String;...ParamX...);
begin
if Assigned(FCallBack) Then
FCallBack(Param1, Param2,...ParamX...);
end;
類中情況:
TCallBack = procedure(Param1: Integer;Param2: String;...ParamX...) of object;
這兩者的差異是,當在類中定義回撥函式時,如果宣告回撥函式型別時不加 of object那麼,你在類內部自定義的回撥函式便不可以指定給回撥函式,即,如下這樣非法,
假定回撥函式類A,和使用回撥函式類B,在B類中自定義了回撥函式SomeCallBack,則,如下這樣賦值delphi會提示非法,
A.OnCallBack := B.SomeCallBack;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7416120/viewspace-1040547/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- js中的回撥函式JS函式
- 回撥函式函式
- js 中的submit 回撥函式JSMIT函式
- python中的回撥函式Python函式
- C++中的回撥函式C++函式
- JavaScript 回撥函式JavaScript函式
- JavaScript回撥函式JavaScript函式
- JS—回撥函式JS函式
- 動畫回撥函式動畫函式
- java回撥函式Java函式
- 回撥函式(CallBack)函式
- [JS]回撥函式和回撥地獄JS函式
- 回撥函式,求積函式函式
- 回撥函式 與 函式閉包函式
- 函式指標&回撥函式Callback函式指標
- 回撥函式的作用函式
- TLS回撥函式(Note)TLS函式
- java 回撥函式示例Java函式
- Python回撥函式Python函式
- android回撥函式Android函式
- 函式回撥(C++)函式C++
- 關於 js 中的回撥函式 callbackJS函式
- 理解javascript中的回撥函式(callback)【轉】JavaScript函式
- 聊一聊Vue中的回撥函式Vue函式
- 類中靜態回撥函式應用函式
- JS閉包函式和回撥函式JS函式
- C++回撥函式 用法C++函式
- 回撥函式的理解(一)函式
- Python/OpenCV:回撥函式PythonOpenCV函式
- java回撥函式機制Java函式
- JS之回撥函式(callback)JS函式
- js函式回撥錯誤JS函式
- c++回撥函式(下)C++函式
- Java回撥函式的理解Java函式
- C++回撥函式示例C++函式
- c#之回撥函式C#函式
- 回撥函式快速使用 (轉)函式
- java回撥函式-非同步回撥-簡明講解Java函式非同步