16 TCheckBox 및 32 TEditBox가 포함 된 양식이 있습니다. 두 개의 TEditBox 실행 기능은 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