下面是我編寫的一段代碼:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
Tmyrecord=class
public
age:integer;
name:string;
//age:integer;
high:integer;
constructor create;
end;type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
g:Tmyrecord;
end;var
Form1: TForm1;implementation{$R *.dfm}
constructor Tmyrecord.create;
begin
name:='';
age:=0;
high:=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//g:=Tmyrecord.create;
edit1.Text:=g.name;
end;end.
如果把g:=Tmyrecord.create;注釋掉就出現內存錯誤。什么時候對象聲明一下就可以用?
什么時候一定要創建對象的實例?真的很迷惑?
哪位老大幫幫忙!~
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
Tmyrecord=class
public
age:integer;
name:string;
//age:integer;
high:integer;
constructor create;
end;type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
g:Tmyrecord;
end;var
Form1: TForm1;implementation{$R *.dfm}
constructor Tmyrecord.create;
begin
name:='';
age:=0;
high:=0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//g:=Tmyrecord.create;
edit1.Text:=g.name;
end;end.
如果把g:=Tmyrecord.create;注釋掉就出現內存錯誤。什么時候對象聲明一下就可以用?
什么時候一定要創建對象的實例?真的很迷惑?
哪位老大幫幫忙!~
创建对像,分配内存,有了生命,呵。变量 等 可以声明就就使用,当然最好给初始化一下。
其它一些业,则要CREATE 一下。
聲明對象比如A:a 只是對該類的一個引用,系統沒有分配內存,a其實是nil;
創建對象A:=A.CREATE 系統創建了一個類的實例,并分配了內存。如果沒有經常寫類,我們在用delphi編寫程序時,其實很少創建對象 form窗體除外。寫道這里突然想到一個問題。窗體在創建的時候是不是已經調用了FORM的構造函數。我們看到的FORM1,FORM2,FORM3都是系統系統已經分配內存的對象。
我們托的控件比如
Edit1:TEdit;
是聲明呢?還是一個對象??