一个小问题,但很急(0分)

  • 主题发起人 主题发起人 sxhmc
  • 开始时间 开始时间
S

sxhmc

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用一个过程来创建一张表,(程序执行时,用ttable控件)
程序如下:
procedure creat_table(t_table:Ttable;tablename:string;table_path:string); //*创建临时表
var
table:ttable;
begin
if tablename='result.db' then //*创建result.db数据表
begin
table:=t_table.Create(self);
try
table.tablename:=table_path+'/'+tablename;
table.FieldDefs.add('新发票号',ftstring,10);
table.FieldDefs.add('开票日期',ftstring,10);
table.FieldDefs.add('客户名',ftstring,30);
table.FieldDefs.add('发票号',ftstring,10);
table.FieldDefs.add('价税合计',ftstring,15);
table.FieldDefs.add('税率',ftstring,2);
table.FieldDefs.add('联系地址',ftstring,40);
table.FieldDefs.add('税号',ftstring,15);
table.FieldDefs.add('账号',ftstring,40);
table.CreateTable ;
except
messagedlg('创建临时表result.db错误!',mterror,[mbok],1);
table.Free;
exit;
end;
end
else
begin //*创建results.db数据表
table:=t_table.Create(self);
try
table.tablename:=table_path+'/'+tablename;
table.FieldDefs.add('新发票号',ftstring,10);
table.FieldDefs.add('存货编号',ftstring,10);
table.FieldDefs.add('存货名称',ftstring,30);
table.FieldDefs.add('规格',ftstring,10);
table.FieldDefs.add('单位',ftstring,15);
table.FieldDefs.add('数量',ftstring,2);
table.FieldDefs.add('单价',ftstring,40);
table.FieldDefs.add('价税合计',ftstring,15);

table.CreateTable ;
except
messagedlg('创建临时表results.db错误!',mterror,[mbok],1);
table.Free;
exit;
end;
end;
exit;
end;


编译时出现如下问题:
[Error] main_frame.pas(150): Undeclared identifier: 'self'
我不知这是为是么?因为我不在过程中时是可以的.
 
更改
procedure creat_table(t_table:Ttable;tablename:string;table_path:string); //*创建临时表
为:
procedure TForm1.creat_table(t_table:Ttable;tablename:string;table_path:string); //*创建临时表
然后在上面增加声明。
 
问题已解决,把(self) 改成 (nil) 就可以了
谢谢yzhshi的答复
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部