ich hab zum Testen mal eine Minimalkomponente geschrieben und da taucht eine Frage auf.
Es gibt den Contruktor zum initialisieren, ich kann aber auch bei published property (das sind ja die Variablen welche im Objektinspektor sichtbar sind) eine default Wert angeben.
Ich hab den Wert mal hier im Code auf 23 gesetzt um es zu verdeutlichen.
Wann wird jetzt welcher Wert gesetzt ? oder anders ausgedrückt welche Initilialisierung ist sinnvoller ? oder in welcher Reihenfolge wird der Code ausgeführt ?
Code: Alles auswählen
TMyObject = class(TComponent)
private
fvalue : Integer;
procedure SetValue(newValue:Integer);
function GetValue:integer;
protected
public
constructor create(AOwner:TComponent); override;
destructor destroy; override;
published
property value : integer read fvalue write SetValue default 23; { erste Möglichkeit }
end;
constructor TMyObject.create(AOwner:TComponent);
begin
inherited;
fvalue:=23; { zweite Möglichkeit }
end;
procedure TMyObject.SetValue(newValue:Integer);
begin
fvalue:=newValue;
end;
function TMyObject.GetValue:Integer;
begin
result:=fvalue;
end;