gpt4 book ai didi

function - Delphi XE7 Android 如何存储函数指针以便以后访问?

转载 作者:行者123 更新时间:2023-12-03 15:28:39 29 4
gpt4 key购买 nike

当使用 Delphi 创建 Windows 应用程序时,可以将函数指针存储在 TStringList 变量中,例如...

function n_func(var data: integer): integer;
begin
//do something with data that will change its value
Result := data;
end;

...

var
ls: TStringList;
begin
try
ls := TStringList.Create;
ls.AddObject('myfunc', TObject(@n_func));
...
...
finally
ls.Free;
end;
end;

但这在 Android 中不是一个选项,I've read this article这解释了当需要存储对象的引用时如何解决问题。当需要存储对函数的引用并稍后在应用程序执行期间动态调用时,类似的解决方案是什么?

最佳答案

使用字典。声明函数的类型:

type
TMyFuncType = reference to function(var data: integer): integer;

然后是字典:

var
Dict: TDictionary<string, TMyFuncType>;

以通常的方式创建一个:

Dict := TDictionary<string, TMyFuncType>.Create;

像这样添加:

Dict.Add('myfunc', n_func);

像这样检索

Func := Dict['myfunc'];

从文档中了解更多信息:http://docwiki.embarcadero.com/Libraries/en/System.Generics.Collections.TDictionary

关于function - Delphi XE7 Android 如何存储函数指针以便以后访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28794075/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com