Hallöchen,
ich erstelle gerade diverse Setter für published Properties und dabei ist mir aufgefallen, das in der
IDE über den ObjectInspector die Setter für Boolean Properties immer zweimal aufgerufen werden, während es bei den anderen Settern jeweils nur einmal passiert. Gibt es dafür einen besonderen Grund?
Delphi-Quellcode:
type
TFoo = class(TComponent)
private
FValueInt : integer;
FValueBool : Boolean;
procedure SetValueInt(Value:integer);
procedure SetValueBool(Value:Boolean);
published
constructor Create(AOwner:TComponent); override;
property ValueInt : integer read FValueInt write SetValueInt;
property ValueBool : Boolean read FValueBool write SetValueBool;
end;
//------------------------------------------------------------------------------
constructor TFoo.Create(AOwner:TComponent);
begin
inherited Create(AOwner);
FValueInt := 0;
FValueBool := False;
end;
//------------------------------------------------------------------------------
procedure TFoo.SetValueInt(Value:integer);
begin
ShowMessage('TFoo.SetValueInt - called one times');
if (Value <> FValueInt) then begin
FValueInt := Value;
end;
end;
//------------------------------------------------------------------------------
procedure TFoo.SetValueBool(Value:Boolean);
begin
ShowMessage('TFoo.SetValueBool - called two times');
if (Value <> FValueBool) then begin
FValueBool := Value;
end;
end;