unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
FMember5 : Integer;
FMember6 : Integer;
FMember7 : WORD;
FMember8 : Integer;
{ Public declarations }
end;
TMyClass = class //创建一个类
Public
FMember1 : Integer;
FMember2 : Integer;
FMember3 : WORD;
FMember4 : Integer;
End;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
Obj : TMyClass;
begin
Obj := TMyClass.Create(); //创建TMyClass类的实例
with memo1.Lines do
begin
//对象大小以及每个数据成员的地址输出到Memo中
Add('Myclass对象大小:' + IntToStr(Obj.InstanceSize));
Add('Myclass对象所在地址 :' + IntToStr(Integer(Obj)));
Add('FMember1所在地址:' + IntToStr(Integer(@Obj.FMember1)));
Add('FMember2所在地址:' + IntToStr(Integer(@Obj.FMember2)));
Add('FMember3所在地址:' + IntToStr(Integer(@Obj.FMember3)));
Add('FMember4所在地址:' + IntToStr(Integer(@Obj.FMember4)));
end;
Obj.Free();
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
with memo1.Lines do
begin
Add('窗体对象大小:' + IntToStr(form1.InstanceSize));
Add('窗体对象所在地址 :' + IntToStr(Integer(form1)));
Add('FMember5所在地址:' + IntToStr(Integer(@form1.FMember5)));
Add('FMember6所在地址:' + IntToStr(Integer(@form1.FMember6)));
Add('FMember7所在地址:' + IntToStr(Integer(@form1.FMember7)));
Add('FMember8所在地址:' + IntToStr(Integer(@form1.FMember8)));
end;
end;
end.