unit untClassTeacher;interfacetype
  TTeacher=class
    Name:string;  //姓名
    Sex:Boolean;   //性别
    Birthday:TDate;   //出生日期
    TeachPost:string;    //职称
    function Talk:string;
end;implementation{ TTeacher }function TTeacher.Talk: string;
begin
   Result:='I am a teacher';
end;end.unit untClassStudent;interfacetype
  TStudent=class
    Name:string;  //姓名
    Sex:Boolean;   //性别
    Birthday:TDate;   //出生日期
    function Talk:string;
end;implementation{ TStudent }function TStudent.Talk: string;
begin
   Result:='I am learning programing.';
end;end.
unit MainForm;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
  TForm1 = class(TForm)
    lbTeacher: TListBox;
    lbStudent: TListBox;
    btnTeacher: TButton;
    btnStudent: TButton;
    procedure btnTeacherClick(Sender: TObject);
    procedure btnStudentClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;
  ATeacher:TTeacher;
  AStudent:TStudent;implementationuses untClassStudent, untClassTeacher;{$R *.dfm}procedure TForm1.btnTeacherClick(Sender: TObject);
begin
   ATeacher:=TTeacher.Create;    //创建对象实例
   lbTeacher.Items.Add('教师姓名:'+ATeacher.Name);   //显示ATeacher变量的Name域
   if ATeacher.Sex then
     lbTeacher.Items.Add('布尔字段值为True')
   else
     lbTeacher.Items.Add('布尔字段值为False');
     lbTeacher.Items.Add('教师生日:'+DateToStr(ATeacher.Birthday));
     lbTeacher.Items.Add('教师职称:'+ATeacher.TeachPost);
     lbTeacher.Items.Add(ATeacher.Talk)
     lbTeacher.Items.Add('类变量所分配的存储字节数:'+IntToStr(SizeOf(ATeacher)));
     lbTeacher.Items.Add('类实例所分配的存储字节数:'+IntToStr(TTeacher.InstanceSize)));
   ATeacher.Free;   //释放对象实例
end;procedure TForm1.btnStudentClick(Sender: TObject);
begin
   AStudent:=TStudent.Create;    //创建对象实例
   AStudent.Name:='李大江';
   AStudent.Sex:=True;
   AStudent.Birthday:=EncodeDate(1986,2,18);
   lbStudent.Items.Add('学生姓名:'+AStudent.Name);   //显示ATeacher变量的Name域
   if AStudent.Sex then
     lbStudent.Items.Add('男')
   else
     lbStudent.Items.Add('女');
     lbStudent.Items.Add('学生生日:'+DateToStr(AStudent.Birthday));
     lbStudent.Items.Add(AStudent.Talk)
     lbStudent.Items.Add('类变量所分配的存储字节数:'+IntToStr(SizeOf(AStudent)));
     lbStudent.Items.Add('类实例所分配的存储字节数:'+IntToStr(TStudent.InstanceSize)));
   AStudent.Free;   //释放对象实例
end;end.
我的所有程序。下面是提示的错误
[Error] MainForm.pas(25): Undeclared identifier: 'TTeacher'
[Error] MainForm.pas(26): Undeclared identifier: 'TStudent'
[Error] untClassStudent.pas(9): Undeclared identifier: 'TDate'
[Fatal Error] MainForm.pas(30): Could not compile used unit '..\简单范例\Exa03-02\untClassStudent.pas'

解决方案 »

  1.   

    unit MainForm; 里面,把uses untClassStudent, untClassTeacher;删掉,放到这里来uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, untClassStudent, untClassTeacher;
    你的 unit untClassStudent; 里面 用到 TDate ,就加上 uses system, controls;
      

  2.   

    出现新的错误:
    [Error] untClassStudent.pas(6): Identifier redeclared: 'System'
    [Fatal Error] MainForm.pas(7): Could not compile used unit '..\简单范例\Exa03-02\untClassStudent.pas'
      

  3.   

    那就把 system去掉 ...............
      

  4.   

    Undeclared、redeclared 这些单词不难啊啊,自己试着排错啊
      

  5.   

    按照上述方法试了,在unit mainform中还是提示 Undeclared identifier: 'TTeacher'和 Undeclared identifier: 'TStudent'
      

  6.   

    unit untClassTeacher;interface
     uses  controls;
    type
      TTeacher=class
      Name:String;
      Sex:Boolean;
      Birthday:TDate;
      TeachPost:String;
      destructor Destroy;override;
      function Talk:String;
    end;implementation{ TTeacher }destructor TTeacher.Destroy;
    begin
     ShowMessage('Instance object has been destroyed.');
      inherited;
    end;function TTeacher.Talk: String;
    begin
    Result:='I''m a teacher.';
    end;end.unit MainForm;interface
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls,untClassStudent, untClassTeacher;type
      TForm1 = class(TForm)
        lbTeacher: TListBox;
        lbStudent: TListBox;
        btnTeacher: TButton;
        btnStudent: TButton;
        btnClose: TButton;
        procedure btnTeacherClick(Sender: TObject);
        procedure btnCloseClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
       end;
    var
      Form1: TForm1;
      ATeacher:TTeacher;
      AStudent:TStudent; implementation{$R *.dfm}procedure TForm1.btnTeacherClick(Sender: TObject);
    begin
      ATeacher.Name :='zhang zhe';
      lbTeacher.Items.Add(ATeacher.Name );
      ATeacher:=nil;
    end;运行后
    [Error] untClassTeacher.pas(21): Undeclared identifier: 'ShowMessage'
    [Fatal Error] MainForm.pas(6): Could not compile used unit 'untClassTeacher.pas'
    在 unt untclassteacher该如何定义showmessage