请帮我看看这段代码,比较简单,很急。(15分)

  • 主题发起人 主题发起人 dreamblue
  • 开始时间 开始时间
D

dreamblue

Unregistered / Unconfirmed
GUEST, unregistred user!
if (edit1.text='')or (edit2.text='') or (edit5.text='')
or(edit8.text='') or (edit9.text='') or(edit6.text='') or (edit10.text='')then
showmessage('请输入完整的数据')
else
with table1 do
if table1.Locate('编号',edit1.text,[]) then
begin
showmessage('您输入的编号已存在');
edit1.text:='';
end
else
begin
IF MessageBox(GetActiveWindow(),'是否继续输入数据?','提示',mb_IconQuestion+mb_YesNo)=Id_yes then
begin
table1.open;
table1.append;
table1.fieldbyname('编号').asstring:=edit1.text;
table1.fieldbyname('固定资产名称').asstring:=edit2.text;
table1.fieldbyname('型号').asstring:=edit3.text;
table1.fieldbyname('单价').asfloat:=strtofloat(edit5.text);
table1.fieldbyname('生产厂家').asstring:=edit4.text;
table1.fieldbyname('发票号码').asstring:=edit7.text;
table1.fieldbyname('购买者').asstring:=edit8.text;
table1.fieldbyname('购买日期').asdatetime:=datetimepicker1.date;
table1.fieldbyname('存放地').asstring:=edit9.text;
table1.fieldbyname('数量').asinteger:=strtoint(edit6.text);
table1.fieldbyname('小计').asfloat:=strtofloat(edit10.text);
table1.fieldbyname('flag').asstring:='1';
table1.Post;
edit1.text:='';
edit2.text:='';
edit3.text:='';
edit4.text:='';
edit5.text:='';
edit6.text:='';
edit7.text:='';
edit8.text:='';
edit9.text:='';
edit10.text:='';
//table1.Close;
end
else
rukufrm:=nil;
end;


//IF MessageBox(GetActiveWindow(),'是否继续输入数据?','提示',mb_IconQuestion+mb_YesNo)=Id_yes then
请看以上的代码
我的意思询问是否继续输入数据,如果是则清空edit.text的内容。
如果选否则退出这个输入界面。
程序运行时选是能通过,选否不能退出输入界面,请问要如何解决。我哪里写错了。
 
rukufrm:=nil;中rukufrm是一个form吧,不要在这儿用nil,这样整个form包括上面的东东
都找不到了.
写成rukufrm.close,然后在form的Onclose中写Action := caFree;

 
........
else
Close; // 就可以了,当前的 Form 不需要加上 rukufrm.
end;

 
你应该先增加数据,再询问,否则按你的程序,如果选否,则数据都不增加了。
if (edit1.text='')or (edit2.text='') or (edit5.text='')
or(edit8.text='') or (edit9.text='') or(edit6.text='') or (edit10.text='')then
Raise Exception.Create('请输入完整的数据');
with table1 do
if Locate('编号',edit1.text,[]) then
begin
edit1.text:='';
Raise Exception.Create('您输入的编号已存在');
end
else begin
append;
fieldbyname('编号').asstring:=edit1.text;
fieldbyname('固定资产名称').asstring:=edit2.text;
fieldbyname('型号').asstring:=edit3.text;
fieldbyname('单价').asfloat:=strtofloat(edit5.text);
fieldbyname('生产厂家').asstring:=edit4.text;
fieldbyname('发票号码').asstring:=edit7.text;
fieldbyname('购买者').asstring:=edit8.text;
fieldbyname('购买日期').asdatetime:=datetimepicker1.date;
fieldbyname('存放地').asstring:=edit9.text;
fieldbyname('数量').asinteger:=strtoint(edit6.text);
fieldbyname('小计').asfloat:=strtofloat(edit10.text);
fieldbyname('flag').asstring:='1';
Post;
end;
IF MessageBox(GetActiveWindow(),'是否继续输入数据?','提示',mb_IconQuestion+mb_YesNo)=Id_Yes then
begin
edit1.text:='';
edit2.text:='';
edit3.text:='';
edit4.text:='';
edit5.text:='';
edit6.text:='';
edit7.text:='';
edit8.text:='';
edit9.text:='';
edit10.text:='';
end
else rukufrm.close
 
多人接受答案了。
 
后退
顶部