1.假设窗体FORM1中有四个EDIT.及四个checkbox 名称分别为: Edit1 Edit2 Edit3 Edit4 CheckBox1 CheckBox2 CheckBox3 CheckBox4 2.在EDIT1的EXIT事件写入以下代码:procedure TForm1.Edit1Exit(Sender: TObject); var str:string; i:string; begin if Sender is TEdit then begin str:= AnsiUpperCase(TEdit(Sender).Text); i:=Copy(TEdit(Sender).Name,Length(TEdit(Sender).Name),maxint); TCheckBox(Form1.FindComponent('CheckBox'+i)).Checked:=str='A'; end; end; 3.Edit2,Edit3,Edit4的EXIT事件全部指向EDIT1的EXIT事件.
名称分别为:
Edit1
Edit2
Edit3
Edit4
CheckBox1
CheckBox2
CheckBox3
CheckBox4
2.在EDIT1的EXIT事件写入以下代码:procedure TForm1.Edit1Exit(Sender: TObject);
var
str:string;
i:string;
begin
if Sender is TEdit then begin str:= AnsiUpperCase(TEdit(Sender).Text);
i:=Copy(TEdit(Sender).Name,Length(TEdit(Sender).Name),maxint);
TCheckBox(Form1.FindComponent('CheckBox'+i)).Checked:=str='A'; end;
end;
3.Edit2,Edit3,Edit4的EXIT事件全部指向EDIT1的EXIT事件.
再在EDIT1的EXIT事件写入关联代码,所有edit都关联该方法
你可以换个思路,把一组控件放在一个 Frames 中,然后在你的控制窗体中加入多个这样的Frames,这样你的控制将会变的很简单。
就拿你给的问题来说,创建一个 Frames 其中放一个 TEdit 一个 TCheckBox
在Edit的OnChange事件中处理本 Frames 对应的 CheckBox 的 Checked
代码如下:
procedure TFrame2.Edit1Change(Sender: TObject);
begin
CheckBox1.Checked := (Edit1.Text = 'A');
end;这样,处理后,你在主窗体中,添加这个 Frames 则这些新加入的 Frames 就自动能够处理 Checked 了如果你的 Edit 和 CheckBox 不在一个窗体或者说不能统一布局,那么你可以参考 Label 控件的 FocusControl 属性的实现方式,重载 TEdit 控件,加入一个属性可以在设计期让其指向一个CheckBox,然后TEdit的重载其 Change 方法,控制其对应的CheckBox的 Checked 的设置用Delphi来摆积木式地开发,仅仅是一种对Delphi的肤浅应用,因为Delphi的这种搭积木的功能太强大了,所以很多初学Delphi的人就停留在了搭积木的程序设计上不深入了,其实,Delphi实现的面向对象的编程理念是非常完善和强大的。