下面是我編寫的一段代碼:
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;注釋掉就出現內存錯誤。什么時候對象聲明一下就可以用?
什么時候一定要創建對象的實例?真的很迷惑?
哪位老大幫幫忙!~

解决方案 »

  1.   

    声明对像,只是告诉对像是什么类型的。
    创建对像,分配内存,有了生命,呵。变量 等 可以声明就就使用,当然最好给初始化一下。
    其它一些业,则要CREATE 一下。
      

  2.   

    推荐阅读<<Delphi面向对象编程思想>>
      

  3.   

    我用delphi也用了兩個月了,現在回來想一想,突然發現這么多基本問題不懂,真的很恐怖!你看我的理解
    聲明對象比如A:a  只是對該類的一個引用,系統沒有分配內存,a其實是nil;
    創建對象A:=A.CREATE 系統創建了一個類的實例,并分配了內存。如果沒有經常寫類,我們在用delphi編寫程序時,其實很少創建對象 form窗體除外。寫道這里突然想到一個問題。窗體在創建的時候是不是已經調用了FORM的構造函數。我們看到的FORM1,FORM2,FORM3都是系統系統已經分配內存的對象。
      

  4.   

    在聯想下!~
      我們托的控件比如
       Edit1:TEdit;
    是聲明呢?還是一個對象??