一个exe执行以后TObject存在于内存中吗(或着是任何其他类)????(注意不是实例对象,而是类)
如果存在是以一种什么形式存在????var
Obj: TButton;
begin
Obj := TButton.Create(XXX);
if Obj = TObject then XXXXXX <---------------- 配型不匹配
if Pointer(Obj) = TObject then XXXXXXXX <---------------- PASS <---------------- 语句的含义是什么????
Obj.Free;
end;
如果存在是以一种什么形式存在????var
Obj: TButton;
begin
Obj := TButton.Create(XXX);
if Obj = TObject then XXXXXX <---------------- 配型不匹配
if Pointer(Obj) = TObject then XXXXXXXX <---------------- PASS <---------------- 语句的含义是什么????
Obj.Free;
end;
解决方案 »
- 虚模式Listview的滚动bug,有经验的兄弟帮我看看,内有prj项目网址
- 关于类,方法的问题
- 100分求一简单问题.关于AdoDataSet.在线等.帮顶者有分.有结果马上结贴.
- 过年拉,给大家拜个年
- 请问各位大侠,数据库活动连接串TADOConnection如何传入COM服务器中。
- 把ChildForm做成DLL形式,用MDIFORM去调用,为什么CHILDFORM中的SPEEDBUTTON的FLAT设置为TRUE没效果
- 关于语言的一些问题?
- Delphi动态创建的paintbox,绘制鼠标的十字跟随效果,
- 好久没来,CSDN改版了,呵呵,漂亮不少。送上100分哟
- 如何实现使用权限
- sql语句之set子句问题????????????
- groupbox 里面有两个edit,为edit1,edit2.写代理先把groupbox .enable false 然后 edit1.enable true.问,edit1能编辑吗?
然后要说,对于“TObject”来说,它有一个“表格”,叫做“Virtual Method Table”,保存了它所有的方法在代码区的地址。无论TObject有多少个实例,这些实例在执行TObject的方法时,都要转向这里。如果一个类TObj是TObject的派生类,它也有自己的VMT,但凡是TObj覆写了TObject类方法的方法,使用这些方法时,都要先寻找或后寻找TObject的VMT运行(视inherited位置而定)。
这是“方法”。而类的字段、属性等,却是保存在实例内存中。就说这些,理解能力有限。
然后听课。
TObject是VCL的祖先类,只要使用了VCL,或者只要定义了class,它的各种方法肯定是包含在程序中的,即使TObject本身没有数据字段,也不能直接建立其对象。