错误提示 [错误] U_dwxx.pas(34): Unsatisfied forward or external declaration: 'TF_dwxx.Length'
[致命错误] Project.dpr(6): Could not compile used unit 'U_dwxx.pas'源文件
unit U_dwxx;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids;type
TF_dwxx = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Panel2: TPanel;
Label5: TLabel;
Edit3: TEdit;
Button4: TButton;
Button5: TButton;
RadioGroup1: TRadioGroup;
procedure Button5Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure Button4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
function string_long_JB(s:string):string;
function string_long_MX(s:string):string;
function Length(s:string):integer;
private
{ Private declarations }
public
{ Public declarations }
end;var
F_dwxx: TF_dwxx;implementationuses DM;{$R *.dfm}procedure TF_dwxx.Button5Click(Sender: TObject);
begin
with U_DM.ADOQuery_dwxx do
begin
close;
sql.clear;
sql.add('select F_DWBM,F_DWMC from T_DWXX');
open;
end;
end;procedure TF_dwxx.DBGrid1CellClick(Column: TColumn);
beginEdit1.Text:=U_DM.adoquery_dwxx.fieldbyname('F_DWBM').asstring ;
Edit2.Text:=U_DM.adoquery_dwxx.fieldbyname('F_DWMC').asstring ;end;
procedure TF_dwxx.Button4Click(Sender: TObject);
var
s:string;
beginwith U_DM.ADOQuery_dwxx do begin
if Edit3.Text='' then
begin
showmessage('请输入查询信息!') ;
end
else
begin
s:= 'select F_DWBM,F_DWMC from T_DWXX where F_DWBM='''+Edit3.text+'''' ;
close;
sql.clear;
sql.add(s);
open;
end;
end;
end;procedure TF_dwxx.Button1Click(Sender: TObject);
{
var
t: string;begin
with U_DM.ADOQuery_dwxx do begin
t:='insert into T_DWXX(F_DWBM,F_DWMC) values(''' + Edit1.Text + ''','''+ Edit2.text +''')';
close;
sql.clear;
sql.add(t);
open;
end;
end; }
begin
try
with U_DM.ADOQuery_dwxx do
begin
close;
sql.clear;
sql.add('select * from T_DWXX');
open;
end;
U_DM.adoconnection1.beginTrans; //开始事务
U_DM.ADOQuery_dwxx.Insert;
U_DM.ADOQuery_dwxx.fieldbyname('F_DWBM').asstring:=Edit1.Text;
U_DM.ADOQuery_dwxx.fieldbyname('F_DWMC').asstring:=Edit2.text;
U_DM.ADOQuery_dwxx.fieldbyname('F_DMJB').asstring:=self.string_long_JB(Edit1.Text);
U_DM.ADOQuery_dwxx.fieldbyname('F_DWMX').asstring:=self.string_long_MX(Edit1.Text);
U_DM.ADOQuery_dwxx.post;
U_DM.adoconnection1.commitTrans; //提交事务
with U_DM.ADOQuery_dwxx do
begin
close;
sql.clear;
sql.add('select * from T_DWXX');
open;
end;
U_DM.ADOQuery_dwxx.close;
U_DM.ADOQuery_dwxx.open; except
U_DM.adoconnection1.RollbackTrans;
end; end; function TF_dwxx.string_long_JB(s:string):string; var
long:integer;begin
begin
long:= system.Length(s);
if long=3 then
begin
result:=inttostr(1);
end
else
if long=2 then
begin
result:=inttostr(2);
end
else
if long=9 then
begin
result:=inttostr(3);
end;
end;
end;function TF_dwxx.string_long_MX(s:string):string; var
long_1:integer;begin
begin
long_1:= system.Length(s);
if long_1=3 then
begin
result:=inttostr(0);
end
else
if long_1=2 then
begin
result:=inttostr(0);
end
else
if long_1=9 then
begin
result:=inttostr(1);
end;
end;
end;
end.
产生的原因是什么?如何解决?
[致命错误] Project.dpr(6): Could not compile used unit 'U_dwxx.pas'源文件
unit U_dwxx;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids;type
TF_dwxx = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
Edit1: TEdit;
Edit2: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Panel2: TPanel;
Label5: TLabel;
Edit3: TEdit;
Button4: TButton;
Button5: TButton;
RadioGroup1: TRadioGroup;
procedure Button5Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
procedure Button4Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
function string_long_JB(s:string):string;
function string_long_MX(s:string):string;
function Length(s:string):integer;
private
{ Private declarations }
public
{ Public declarations }
end;var
F_dwxx: TF_dwxx;implementationuses DM;{$R *.dfm}procedure TF_dwxx.Button5Click(Sender: TObject);
begin
with U_DM.ADOQuery_dwxx do
begin
close;
sql.clear;
sql.add('select F_DWBM,F_DWMC from T_DWXX');
open;
end;
end;procedure TF_dwxx.DBGrid1CellClick(Column: TColumn);
beginEdit1.Text:=U_DM.adoquery_dwxx.fieldbyname('F_DWBM').asstring ;
Edit2.Text:=U_DM.adoquery_dwxx.fieldbyname('F_DWMC').asstring ;end;
procedure TF_dwxx.Button4Click(Sender: TObject);
var
s:string;
beginwith U_DM.ADOQuery_dwxx do begin
if Edit3.Text='' then
begin
showmessage('请输入查询信息!') ;
end
else
begin
s:= 'select F_DWBM,F_DWMC from T_DWXX where F_DWBM='''+Edit3.text+'''' ;
close;
sql.clear;
sql.add(s);
open;
end;
end;
end;procedure TF_dwxx.Button1Click(Sender: TObject);
{
var
t: string;begin
with U_DM.ADOQuery_dwxx do begin
t:='insert into T_DWXX(F_DWBM,F_DWMC) values(''' + Edit1.Text + ''','''+ Edit2.text +''')';
close;
sql.clear;
sql.add(t);
open;
end;
end; }
begin
try
with U_DM.ADOQuery_dwxx do
begin
close;
sql.clear;
sql.add('select * from T_DWXX');
open;
end;
U_DM.adoconnection1.beginTrans; //开始事务
U_DM.ADOQuery_dwxx.Insert;
U_DM.ADOQuery_dwxx.fieldbyname('F_DWBM').asstring:=Edit1.Text;
U_DM.ADOQuery_dwxx.fieldbyname('F_DWMC').asstring:=Edit2.text;
U_DM.ADOQuery_dwxx.fieldbyname('F_DMJB').asstring:=self.string_long_JB(Edit1.Text);
U_DM.ADOQuery_dwxx.fieldbyname('F_DWMX').asstring:=self.string_long_MX(Edit1.Text);
U_DM.ADOQuery_dwxx.post;
U_DM.adoconnection1.commitTrans; //提交事务
with U_DM.ADOQuery_dwxx do
begin
close;
sql.clear;
sql.add('select * from T_DWXX');
open;
end;
U_DM.ADOQuery_dwxx.close;
U_DM.ADOQuery_dwxx.open; except
U_DM.adoconnection1.RollbackTrans;
end; end; function TF_dwxx.string_long_JB(s:string):string; var
long:integer;begin
begin
long:= system.Length(s);
if long=3 then
begin
result:=inttostr(1);
end
else
if long=2 then
begin
result:=inttostr(2);
end
else
if long=9 then
begin
result:=inttostr(3);
end;
end;
end;function TF_dwxx.string_long_MX(s:string):string; var
long_1:integer;begin
begin
long_1:= system.Length(s);
if long_1=3 then
begin
result:=inttostr(0);
end
else
if long_1=2 then
begin
result:=inttostr(0);
end
else
if long_1=9 then
begin
result:=inttostr(1);
end;
end;
end;
end.
产生的原因是什么?如何解决?
begin
close;
sql.clear;
sql.add('select * from T_DWXX');
open;
end;
U_DM.ADOQuery_dwxx.close;
U_DM.ADOQuery_dwxx.open;
这两行是不是多余了。
function Length(s:string):integer;
这个函数,你定义,但是并没有去实现它,所有报错了,你把这行删除掉
function TF_dwxx.string_long_MX(s:string):string; var
long_1:integer;begin
begin
long_1:= Length(s);
if long_1=3 then
begin
result:=inttostr(0);
end
else
if long_1=2 then
begin
result:=inttostr(0);
end
else
if long_1=9 then
begin
result:=inttostr(1);
end;
end;
end;
end.
这里有使用 length();
另外你定义没实现是报这个错误的.