gpt4 book ai didi

delphi - Delphi XE 中的类型转换问题

转载 作者:行者123 更新时间:2023-12-03 18:11:20 26 4
gpt4 key购买 nike

我尝试以这种方式列出程序:

type

TProc = procedure of object;

TMyClass=class
private
fList:Tlist;
function getItem(index:integer):TProc;
{....}
public
{....}
end;
implementation
{....}
function TMyClass.getItem(index: Integer): TProc;
begin
Result:= TProc(flist[index]);// <--- error is here!
end;
{....}
end.

并得到错误:

E2089 Invalid typecast

我该如何解决?如我所见,我可以制作一个只有一个属性 Proc:TProc; 的假类并列出它。但我觉得这是一种糟糕的方式,不是吗?

PS:项目必须兼容 delphi-7。

最佳答案

类型转换无效,因为您不能将方法指针与指针相匹配,方法指针实际上是两个指针,第一个是方法的地址,第二个是对方法所属对象的引用。参见 Procedural Types在文档中。这在任何版本的 Delphi 中都不起作用。

关于delphi - Delphi XE 中的类型转换问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7426137/

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