unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Type
TMyRecord = record {定義結構}
d: TDate;
end;
TMyClass = class {定義類; 雖然這個類沒有什麼實際意義, 但就是一個類了}
d: TDate;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
MyRec: TMyRecord; {聲明一個結構變量}
MyCls: TMyClass; {聲明一個類變量, 也就是對象}
begin
{使用結構}
MyRec.d := Now;
ShowMessage(DateToStr(MyRec.d)); {2008-1-11}
ShowMessage(IntToStr(SizeOf(MyRec))); {8; MyRec 結構的大小是 8}
{使用類}
MyCls := TMyClass.Create; {需要先手動建立, 因為類需要實例化為對象才可以使用}
MyCls.d := Now; {2008-1-11}
ShowMessage(DateToStr(MyCls.d));
ShowMessage(IntToStr(SizeOf(MyCls))); {4; 怎麼會是4? 因為 MyCls 對象只是一個指針!}
MyCls.Free; {用完後釋放}
{結論:
結構(或叫記錄)與類都是一種自定義類型;
結構直接使用, 內存是自動管理的;
類只是一個模型, 需要根據模型(也就是類)創建(Create)出對象來才能使用, 用完後需要手動釋放內存;
(內存使用的規律應該是: 自動建立自動釋放、手動建立手動釋放)
結構與對象(類的實例)在內存中以不同的方式存放, 對象只是一個指針;
和結構相比, 類擁有這更強大的功能!
}
end;
end.