德爾福10.1柏林AsyncCalls AsyncCallEx E2036變量所需
我無法理解爲什麼我收到錯誤。
我得到當編譯該錯誤消息(而TestRec是簡單的功能 - 所有是確定):
type
TData = record
Value: string;
end;
type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
function TestRec(var Data: TData): Integer;
end;
...
function TForm1.TestRec(var Data: TData): Integer;
begin
Data.Value := 'TestOut';
Result := 0;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
MyData: TData;
a: IAsyncCall;
begin
MyData.Value := 'TestIn';
a := AsyncCallEx(@TestRec, MyData); //[dcc32 Error] Unit1.pas(47): E2036 Variable required
end;
錯誤圖示: [dcc32錯誤] Unit1.pas(47):E2036變量所需
@TestRec是不變量,但是邁德特是。考慮到您顯示的代碼和錯誤消息,這沒什麼意義。你確定你已經正確地轉錄了東西。控制檯應用程序中的一個簡單的MCVE將消除疑問。 –
@DavidHeffernan,參見我的[鏈接](https://github.com/ahausladen/AsyncCalls/blob/master/DOCUMENTATION.md)庫文檔。在'AsyncCallEx'的例子中,通過這種方式調用普通函數。 –
@LURD提問者提供了來自該鏈接的示例代碼,並報告似乎不可信的錯誤消息,不是? –