社区
Delphi
帖子详情
探究:Delphi中的对象指针是否可用
musicwind
2001-08-07 08:35:27
内容参见:http://www.csdn.net/develop/read_article.asp?id=9508
...全文
297
20
打赏
收藏
探究:Delphi中的对象指针是否可用
内容参见:http://www.csdn.net/develop/read_article.asp?id=9508
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
20 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
musicwind
2001-08-30
打赏
举报
回复
其实这个问题还是蛮有意思的,所以继续关注
musicwind
2001-08-30
打赏
举报
回复
关注一下这篇
《Object Pascal:从对象指针谈起》
http://www.csdn.net/develop/read_article.asp?id=10124
musicwind
2001-08-30
打赏
举报
回复
谢谢 TommyTong(童童) 的回复。
对于这部分的内容,我真的也不太清楚,去找些书看看再来讨论。
墨梅无痕
2001-08-11
打赏
举报
回复
我不同意“类信息为静态”的说法,如果相通类的所有实例全部释放后类信息依然存在,那么如果该对象到程序结束都不再有实例使用,那就应该释放调,否则绝对浪费内存空间。我觉得类信息应该是动态的,就如同COM一样。
关键是对IDL不熟悉呀,我想VCL应该是使用IDL实现的,可惜手头找不到有关IDL的资料。
musicwind
2001-08-10
打赏
举报
回复
请大家帮忙提前。
musicwind
2001-08-10
打赏
举报
回复
Up,继续讨论,童童你在吗?
musicwind
2001-08-10
打赏
举报
回复
to TommyTong:
对于相同的RTTI,我认为,Delphi应当是所有的对象实例共用一个信息的。
否则,岂不浪费内存?
并且我觉得即使所有相同类的实例全部释放后,该类型信息依然存在,因为它是静态的,程序运行后,RTTI就放在数据段里面,等待调用。
墨梅无痕
2001-08-09
打赏
举报
回复
好像有点别扭!?????
墨梅无痕
2001-08-09
打赏
举报
回复
这几天我在考虑另外一个问题,即关于对象的类信息和他的实例信息的内存结构及存储问题。
现在可以确定Free方法只是释放了对象实例的内存空间,而没有释放实例指针所指向的类信息的内存空间。于是,我想到,是否VCL在创建多个实例时采用了共享类信息的方法,再通过例如引用计数的方法将指针指向不同的实例,即类似于COM的单对象多接口的结构。
如果是这样,那么使用FreeAndNil方法后再使用Create方法是否会开辟新的类信息的存储空间而造成内存空间的浪费呢?
chechy
2001-08-08
打赏
举报
回复
我以前在Borland的新闻组看见有一个人写过这种测试函数(未被验证过)。你可以去google搜索一下。
现在有FreeAndNil函数,指针在没用的情况下清零本来就是一个非常好的编程习惯。(好像许多书中都提到过)
musicwind
2001-08-08
打赏
举报
回复
to Nicrosoft:
我想你误解了我的意思了,我说的类方法指得是方法本身是类方法Class Method,而不是指方法作为一个函数返回值的类型。你指的“类方法”或许称为类类型,比较可取。
同意Free以后赋值为nil,这是个好习惯。
musicwind
2001-08-08
打赏
举报
回复
Up!希望大家一起来关注!
墨梅无痕
2001-08-07
打赏
举报
回复
to Nicrosoft:
多谢夸奖。
墨梅无痕
2001-08-07
打赏
举报
回复
另外,在不同的操作系统下,比如Windows 98 和Windows NT,如果不执行
Object=NIL;
语句,那么可能造成对象的表现的差异。
我曾经对一个AboutBox的Form的非客户区进行绘制,如果使用
Ojbect=NIL;
那么在以上两种操作系统下,该Form的表现是完全一样的,若不使用,在98下会出现窗口的非客户区时而绘制,时而不绘制的结果。
Nicrosoft
2001-08-07
打赏
举报
回复
to 童童:
Object.Free;
Object := nil;
这是一种非常好的习惯。
墨梅无痕
2001-08-07
打赏
举报
回复
我也知道Free、Assigned()函数的问题,所以我总是在Object。Free后使用
Object= NIL;
但我想,既然Borland在释放对象实例的内存空间后,依然保留它的类信息,必然有其他的需要。
lanren_me
2001-08-07
打赏
举报
回复
可以。定义对就行。
Nicrosoft
2001-08-07
打赏
举报
回复
——这个ClassType方法并不是真正的对象方法,而颇有些类方法的味道。
ClassType返回的本身就是TClass。也就是类方法
musicwind
2001-08-07
打赏
举报
回复
这是一个值的讨论的问题,请发表你的看法。
musicwind
2001-08-07
打赏
举报
回复
欢迎大家在此讨论。
探究
:如何判断
Delphi
中
的
对象
指针
是否
可用
Musicwind于2004年6月郑重声明:以下内容纯属胡言乱语,荒谬之至!相关内容于csdn程序员杂志某期增刊发表,实属误人子弟之不幸!在此向广大读者致谦!
探究
:如何判断
Delphi
中
的
对象
指针
是否
可用
作者: Musicwind? 创建时间:2001-08-07 近日,在网上看到有网友问曰:如何确定一个
对象
指针
是否
可用
?也就是说,如何确定一个
对象
指针
是否
指向一个真正
可用
的
对象
实例?
批判,再批判!关于“
探究
:如何判断
Delphi
中
的
对象
指针
是否
可用
”!
01年本人发表了一篇文章,名为“
探究
:如何判断
Delphi
中
的
对象
指针
是否
可用
”。在文
中
,提出了采用对已经释放的
对象
进行有选择的属性/方法的访问或调用,然后以
是否
出现异常来判断其
对象
指针
是否
可用
。 这种方法荒谬之极!我想以如下程序的运行现象来帮助各位做出明智的判断。 unit Unit1; interface uses Windows, Messages, SysUtils
批判,再批判!关于“
探究
:如何判断
Delphi
中
的
对象
指
<script type="text/javascript"
在
Delphi
中
实现RichEdit控件的链接功能
RichEdit控件是一个强大的文本编辑器组件,它允许用户在应用程序
中
编辑文本内容,支持多种文本格式和样式。使用RichEdit控件时,开发者可以实现文本的加粗、斜体、下划线、字体变化等格式化操作,还可以插入图片和超链接。//
Delphi
中
添加RichEdit控件的示例代码varbeginend;在
Delphi
中
,SelText属性属于TRichEdit控件,用于获取或设置当前选
中
文本的内容。
Delphi
之 第三课 详解数据类型
delphi
中
声明数据类型用关键字Var,关键字Var可以在很多地方使用,如放在函数或过程的开始部分的叫局部变量。放在单元
中
的叫全局变量。
delphi
中
数据类型分为三大类:即有序数据类型,实数类型和字符类型。在细分可以分成。整数类型,布尔类型,字符类型,实数类型,日期和时间类型,自定义数据类型。等等。现在具体讲解各种类型。 其
中
有序数据类型,布尔类型和字符类型按取值范围划分 大小 有...
Delphi
5,939
社区成员
262,944
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章