代码如下:
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; Taa = class
private
Ftt:string;
public
constructor Create;
property tt:string read Ftt write Ftt;
end;
Tabc = class of taa;
Tbb = class(Taa)
public
constructor Create;
end;
Tcc = class(Taa)
public
constructor create;
end;
var
Form1: TForm1;
aa:Taa;
bb:Tbb;
cc:Tcc;
procedure cde(aaaa:Taa;bbbb:Tabc);
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
cde(bb,Tbb);
form1.Caption:=bb.Ftt;
//目的 form1.Caption 应该显示为bb
end;{ Tbb }constructor Tbb.Create;
begin
inherited;
Ftt:='bb';end;{ Tcc }constructor Tcc.create;
begin
inherited;
Ftt:='cc';
end;{ Taa }constructor Taa.Create;
begin
inherited;
Ftt:='aa';
end;
procedure cde(aaaa:Taa;bbbb:Tabc);
begin
aaaa:=Tabc.Create;
end;
end.
执行报错,谁能帮忙改好,小弟感激不尽!!!!!!!!!!11
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; Taa = class
private
Ftt:string;
public
constructor Create;
property tt:string read Ftt write Ftt;
end;
Tabc = class of taa;
Tbb = class(Taa)
public
constructor Create;
end;
Tcc = class(Taa)
public
constructor create;
end;
var
Form1: TForm1;
aa:Taa;
bb:Tbb;
cc:Tcc;
procedure cde(aaaa:Taa;bbbb:Tabc);
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
cde(bb,Tbb);
form1.Caption:=bb.Ftt;
//目的 form1.Caption 应该显示为bb
end;{ Tbb }constructor Tbb.Create;
begin
inherited;
Ftt:='bb';end;{ Tcc }constructor Tcc.create;
begin
inherited;
Ftt:='cc';
end;{ Taa }constructor Taa.Create;
begin
inherited;
Ftt:='aa';
end;
procedure cde(aaaa:Taa;bbbb:Tabc);
begin
aaaa:=Tabc.Create;
end;
end.
执行报错,谁能帮忙改好,小弟感激不尽!!!!!!!!!!11
解决方案 »
- 更改了数据库1433端口,ado就找不到目标服务器
- 问题:一个关于DELPHI 调用SQL2000存储过程的问题:
- 请教:是否可以只用socket和web服务器交互?
- delphi的入口主函数,求助
- 如何在线程中使用IdHttp,完全解决者200赠送!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
- 如何与MDI的子窗体通信
- 如何在程序中卸载U盘?
- 如果控制某个程序的运行与关闭
- 关于Dephi3中的DbControlGrid控件的滚动条问题。(紧急)
- 大哥大哥急急急
- 怎样使StringGrid 焦点聚焦在StringGrid上,而不是在其附加的Edit上?
- DBGRID组件更新与MonthCalendar 组件问题 急!!!!
begin
aaaa:=Tabc.Create;
end;
应该为
procedure cde(aaaa:Taa;bbbb:Tabc);
begin
aaaa:=bbbb.Create;
end;
报错为:内存地址错误,
你可以把代码复制到delphi中,自己运行就看到了
begin
// cde(bb,Tbb); //这句不用。
bb:=TBB.Create;
form1.Caption:=bb.Ftt;
//目的 form1.Caption 应该显示为bb
end;
格式尽量规范起来,可以参考delphi代码标准文档
它不是强制的,但是应该尽可能的可读,想想自己读人家不规范的代码有多郁闷
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end; Taa = class
private
Ftt: string;
public
constructor Create; virtual; //<<<<<
property tt: string read Ftt write Ftt;
end; Tbb = class(Taa)
public
constructor Create; override; //<<<<<<
end;
Tabc = class of taa; Tcc = class(Taa)
public
constructor Create; override; //<<<<<<
end;var
Form1: TForm1;
aa: Taa;
bb: Tbb;
cc: Tcc;procedure cde(var aaaa; bbbb: Tabc);
//^<<<<<<
implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
cde(bb, Tbb);
Caption := bb.Ftt;
end;{ Tbb }constructor Tbb.Create;
begin
inherited;
Ftt := 'bb';
end;{ Tcc }constructor Tcc.create;
begin
inherited;
Ftt := 'cc';
end;{ Taa }constructor Taa.Create;
begin
inherited;
Ftt := 'aa';
end;procedure cde(var aaaa; bbbb: Tabc);
begin
Taa(aaaa) := bbbb.Create;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~
end;end.