如何返回多种类型数据 有没有类似的写法:Function GetInfo(x,y):TMapInfo or TNewMapInfo;请指点。谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果返回对象, 可以通过向上转型实现, 如果返回类型定为TObject, 接收方再通过判断后强制转换为实际类型如果是多个不同类型的返回结果, 可以通过TList类型返回, 然后对列表项逐一判断并处理 Function GetInfo(x,y):TMapInfo;当然有,返回一个记录类型不过出于安全性和简单的考虑,记录类型的传递最好还是以地址传递或者指针传递,如:procedure GetInfo(var MapInfo: TMapInfo; X, Y: Integer);如果用上面的Function直接返回Function里面的一个记录变量,这样很不安全,因为函数里面变量的存放位置是栈上,退出函数后变量也就释放了,你可以去看下堆栈的相关知识。 或者建立一个并集的类型:Ttype2=recordisnew:boolean;d1:Tmapinfo;d2:Tnewmapinfo;end;当然,还是返回指针最好 无类型参数,像这样:procedure GetInfo(var MapInfo; X, Y: Integer); procedure GetInfo(out MapInfo: TMapInfo; out NewMapInfo: TNewMapInfo); delphi2010 压缩解压组件 用MIDAS 开发分布式程序如何锁定数据?? Fastreport 如何在运行期,在某点强制分页 TListView的Position定位问题 (菜鸟问题),关于由char 'A'等到'B'的问题。 在DBGrid的中的值为何不能写入? 请教各位高手,关于动态数组 Ado错误,我快疯了!!!!! 请问大虾门这个程序用DELPHI怎么做? 在学习Delphi编程时,遇到2个问题,向各位前辈请教: 关于delphi 操作cookie的问题 installshield 2010
当然有,返回一个记录类型
不过出于安全性和简单的考虑,记录类型的传递最好还是以地址传递或者指针传递,如:
procedure GetInfo(var MapInfo: TMapInfo; X, Y: Integer);
如果用上面的Function直接返回Function里面的一个记录变量,这样很不安全,
因为函数里面变量的存放位置是栈上,退出函数后变量也就释放了,你可以去看下堆栈的相关知识。
Ttype2=record
isnew:boolean;
d1:Tmapinfo;
d2:Tnewmapinfo;
end;
当然,还是返回指针最好