我有一個包含16個TCheckBox和32個TEditBox的窗體。 每2個TEditBox en-ability取決於checkBox狀態。 所以我使用這個代碼太長:如何使用SENDER優化此代碼?
//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,1,2);
Q.Enabled:=Checked;
P.Enabled:=Checked;
end;
Q1.OnChange(Sender);
end;
謝謝。
謝謝GolezTrol。 這就是我要找的。 –
不要忘記接受答案,它會幫助他人,它會顯示你對GolezTrol的感激 – ComputerSaysNo
你可以省略第二個參數複製,因爲默認是「到源的結尾」。除此之外:您的解決方案有效,但使用FindComponent總是讓我覺得骯髒。我通常會搜索一系列記錄,並使用索引的「Tag屬性」複選框。 (哎呀,雷米打敗了我)。不是「純」的。 – dummzeuch