请教Delphi高手几个问题?

midholy 2003-03-16 07:22:28
我用C++Builder一年多了。熟悉win32汇编,可就是对Delhpi的代码总是理解不上去啊。
问题1:
var
TmpRegistry : TRegIniFile;
TapiProcesses : TStringList;
begin
。。。。。。。。
TmpRegistry := TRegIniFile.Create('SOFTWARE\TurboPower\APRO\TAPI'); I
...
end
在上面的代码段中根据汇编窗口的显示,第一行就调用构造函数了,可是最后赋值那行又调用了一次,这不是调用了两次构造函数吗?是不是分配了两次的内存?????

问题2:上面的代码段中,如何在申明的时候就赋初值啊?
就好比在CB中TRegIniFile * p=new TRegIniFile("aaaaaaaa");
如何在Delphi中实现??????

谢谢诸位解答。
...全文
10 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
radandgreensky 2003-03-22
  • 打赏
  • 举报
回复
Delphi的对象其实都是指针,定义的时候只是分配了一个指针变量,实际的对象必须自己用Create函数构造。
Delphi 的申明变量和构造变量必须分开
申明在 var 段,
初始化和使用在函数体的
begin

end
之间
alphax 2003-03-16
  • 打赏
  • 举报
回复
1,其实
var
TmpRegistry : TRegIniFile;
相当于
TRegIniFile* TmpRegistry;
而不是
TRegIniFile TmpRegistry;

所以不会构造两次。


2,Delphi不能申明的时候就构造对象。
DelphiStudy 2003-03-16
  • 打赏
  • 举报
回复
TmpRegistry :=TRegIniFile:TRegIniFile.Create('SOFTWARE\TurboPower\APRO\TAPI');

可能可以,我以前见过类似的但不知 TRegIniFile 行不行。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧