当输入不正确物料编号时,在OnExit中写代码弹出一个窗体选择方式录入,当关闭显示窗体后,返回物料编号,用什么方法将返回的物料编号写入当前edit中。请帮手,TKS!
解决方案 »
- 请高手指导在delphiEX2中如何使用screentoclient函数
- 模拟点击一FLASH按纽,发送WM_LBUTTONDOWN、WM_LBUTTONUP消息给它,需要先将鼠标移到目标FLASH按纽上面吗?
- 有没有人用Virtual Treeview
- dsgnintf.pas是个什么东西。什么地方有的down.
- 谁用过MemProof?
- 到底学VB还是Delphi呢?
- 如何把文本用于语音读出
- 请问WORD类型怎么能转换成CHAR类型
- Delphi 怎样调用其他工具实现的Web Services服务(如MS.net)?
- 如何在delphi中连接access数据库?
- 请教一个Dbexpress事务处理的问题
- DLL问题,新手,高手,高高手请进,三十分
我这个表单用于录入物料入库单的,有多个dbedit控件对应入库单字段,当录入入库单的物料代码时,如物料表中找不到则弹出窗体来选择录入,于是我在dbeditno(物料代码对应)的onExit中写:
if (dbeditno.Text='') or not(Dm.AdoqMateriel.Locate('no',DbeNo.Text,[])) then
begin //找不到物料代码或为空时
FmMateriel:=TFmMateriel.Create(Self);
FmMateriel.show;
dbeditno.Text:=GetMaterielNo; //GetMaterielNo为公共变量,用来保存物料代码
end;可是,程序一直运行,并没有在FmMateriel关闭后才运行。也就是说dbeditno.Text并不是我想要的值啊。帮帮手啊
在dbeditno(物料代码对应)的onExit中写:
if (dbeditno.Text='') or not(Dm.AdoqMateriel.Locate('no',DbeNo.Text,[])) then
begin //找不到物料代码或为空时
dbeditno.clear//清空dbedit控件中的内容
dbeditno.Text:=GetMaterielNo(FmMateriel); //GetMaterielNo为函数,用来返回物料代码给dbedit控件
end;
然后在FmMateriel窗体单元中写如下代码:
public
function getmaterieno(aformclass:TFormclass):string;//定义函数
end;
var
FmMateriel:TFmMateriel;
materielno:string//全局变量,存储选中的物料代码
implementation
{$ *.DFM}
//打开窗体,并返回选定的物料代码
function TFmMateriel.getmaterieno(aformclass:TFormclass):string;
begin
materielno:='';
with aformclass.create(application) do
begin
try
showmodal;
finally
free;
end;
result:=materielno;
end;
end;
//确定按钮,返回物料代码
procedure TFmMateriel.btnokclick(sender:Tobject);
begin
materielno:=listview1.selected.caption;//在控件listview1中选择您想要的物料代码
end;
[email protected]