delphi – 如何使用SENDER优化此代码?
发布时间:2020-12-15 09:09:22 所属栏目:大数据 来源:网络整理
导读:我有一个包含16个TCheckBox和32个TEditBox的表单. 每2个TEditBox能力取决于checkBox状态. 所以我使用的代码太长了: //T1procedure TOFAddForm.T1Click(Sender: TObject); begin Q1.Enabled:=T1.Checked; P1.Enabled:=T1.Checked; Q1.OnChange(Sender);end;.
我有一个包含16个TCheckBox和32个TEditBox的表单.
每2个TEditBox能力取决于checkBox状态. 所以我使用的代码太长了: //T1 procedure TOFAddForm.T1Click(Sender: TObject); begin Q1.Enabled:=T1.Checked; P1.Enabled:=T1.Checked; Q1.OnChange(Sender); end; . . . //T16 procedure TOFAddForm.T16Click(Sender: TObject); begin Q16.Enabled:=T16.Checked; P16.Enabled:=T16.Checked; Q1.OnChange(Sender); end;` 我使用了这段代码但没有任何反应: procedure TOFAddForm.T1Click(Sender: TObject); var Q,P: TEdit; begin with Sender as TCheckBox do begin Q.Name:='Q'+copy(Name,1,2); P.Name:='P'+Copy(Name,2); Q.Enabled:=Checked; P.Enabled:=Checked; end; Q1.OnChange(Sender); end; 谢谢. 解决方法
如果所有复选框和编辑都一致命名,则可以将此OnClick事件添加到所有复选框:
procedure TOFAddForm.TClick(Sender: TObject); var C: TCheckBox; Q,P: TEdit; N: string; begin C := Sender as TCheckBox; N := Copy(C.Name,2,Length(C.Name)); Q := FindComponent('Q' + N) as TEdit; P := FindComponent('P' + N) as TEdit; Q.Enabled := C.Checked; P.Enabled := C.Checked; Q.OnChange(Sender); end; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |