에서 개체의 속성을 설정 내가 어떤 특성을 가진 개체가 있습니다다른 프로 시저
Obj.Big
Obj.Rotate
Obj.Paint
Obj.Lines
등 그들은 모두 부울 유형의 속성입니다.
procedure TMainForm.Create(Sender:TObject);
begin
SetParameter(BigCheckBox, Obj.Big);
SetParameter(RotateCheckBox, Obj.Rotate);
SetParameter(PaintCheckBox, Obj.Paint);
SetParameter(LinesCheckBox, Obj.Lines);
end;
SetParameter
절차는 다음과 같이 간다 :
procedure TMainForm.SetParameter(ACheckBox : TCheckBox; ABoolOption : Boolean);
begin
if(ACheckBox.Checked) and (ACheckBox.Enabled) then begin
ABoolOption := true;
end
else if(not ACheckBox.Checked) and (ACheckBox.Enabled) then begin
ABoolOption := false;
end;
end;
그것은 체크 박스 객체와 객체로 건네의 부울 속성의 속성과를 받아 내 주요 절차에서
, 나는 다른 프로 시저를 호출 ABoolOption
. LinesCheckBox.Checked := Obj.Lines
을 간단히 처리 할 수 없습니다. 체크 박스가 채워 졌을 때 "아무 것도하지 마십시오"라는 동작이 필요하기 때문입니다 (모두 트라이 상태입니다). 이걸 실행하면 해당 객체의 매개 변수가 변경되지 않습니다. 왜 이런거야?
을 : 당신은 D2010 +를 사용하는 경우,
을 또는 : 당신이 실제로 속성 값을 업데이트 할 경우, 예를 들어, 하나 대신 RTTI를 켄이 시사하는 무엇, 또는 사용할 필요가 간단한 변수를 전달하더라도 변경되지 않습니다. 'out-parameters'와'var-parameters'에 대해서 읽어보십시오. 프로 시저는 값을 얻고 원하는대로 변경할 수 있습니다. 프로 시저 본문 외부로 절대 이동하지 않습니다. –