定义成公用的函数或过程怎么办?(20分)

  • 主题发起人 主题发起人 hblyp21
  • 开始时间 开始时间
H

hblyp21

Unregistered / Unconfirmed
GUEST, unregistred user!
procedure Tsb_gltj_cx.Edit1Change(Sender: TObject);
begin
if trim(edit1.Text)<>'' then
begin
combobox9.Enabled:=true;
end
else
combobox9.Enabled:=false;
end;
//上面为edit1对自身的值判断,而影响下一个组件的属性,在其他查询窗体里面也要用到
同样的代码,请问以下有什么好方法呢?查询窗体是子窗体,不是常驻内存的?
 
procedure Tsb_gltj_cx.Edit1Change(Sender: TObject);
begin
if trim((Sender as TEdit).Text)<>'' then
begin
combobox9.Enabled:=true;
end
else
combobox9.Enabled:=false;
end;
是这个意思吗?
 
对呀,大哥.
 
var
i:integer;
begin
For i:=0 to ComponentCount - 1 do
if Components is TEdit then
TEdit(Components).readOnly :=true;
end;
把他做成一个函数,每次需要时调用就行了
 
不行呀,有提示:read of address'00000000',
process stoped,怎么回事呀?
 
什么意思呀,我的代码有问题?既然对了,问题就应该解决了,问题解决了,就结帖吧。
如果还有问题,就把它描述的清楚一点点。
 
请问下您定义的函数还需要什么变量吗?我试了怎么不行呀
?
 
这个吗?不需要呀。
procedure Tsb_gltj_cx.Edit1Change(Sender: TObject);
begin
if trim((Sender as TEdit).Text)<>'' then
begin
combobox9.Enabled:=true;
end
else
combobox9.Enabled:=false;
end;
 
用Edit1.onchange或者可以把其它的change都指向这一个,也就是用SHIFT点所有要执行这一个动作的控件,然后选择CHANGE就可以了,这样所有的控件都会执行同个动作了
 
你是不是要在其它窗体里引用这个判断过程?如果是那样你要加入其单元,把此过程申明为公共的。(当然过程代码不能有问题)。题目看不清。
 
多人接受答案了。
 
后退
顶部