Nehmen wir ein Beispiel für eine Komponente, die eine Eigenschaft namens ColumnWidth
mit dem Standardwert 50 enthält. Während der Entwurfszeit ändere ich den Wert auf 100 und kompiliere dann die Anwendung.Wie erhält man den Anfangswert einer Komponenteneigenschaft?
Jetzt möchte ich eine Reset to default
(Popup-Menü) Schaltfläche innerhalb meiner Komponente implementieren, die die ColumnWidth
auf Wert 100 initialisiert, falls der Benutzer es in der Zwischenzeit ändern.
TMyComponent = class(TComponent)
private
FVirtualStringTree: TVirtualStringTree;
FColumnWidth: Integer;
FColumnWidthDef: Integer;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure ResetToDefault;
published
property ColumnWidth: Integer read FColumnWidth write SetColumnWidth default 50;
property VirtualStringTree: TVirtualStringTree read FVirtualStringTree write FVirtualStringTree;
end;
constructor TMyComponent.Create(AOwner: TComponent);
begin
inherited;
FColumnWidth:= 50;
end;
destructor TMyComponent.Destroy;
begin
inherited;
end;
procedure TMyComponent.SetColumnWidth(const Value: Integer);
begin
if FColumnWidth <> Value then FColumnWidth:= Value;
end;
procedure TMyComponent.ResetToDefault;
begin
ColumnWidth:= FColumnWidthDef;
end;
Unter den Komponentenmethoden, wie kann ich speichern den Anfangswert von ColumnWidth
?
Warum verwenden Sie keine Konstante überall? –
Hat die Antwort, die Sie vor ein paar Wochen auf die gleiche Frage erhalten haben, nicht mit dem zusätzlichen @RobKennedy-Kommentar funktioniert, wie Sie es wollten? –
Für die vorhergehende "ähnliche" Frage hatte ich die gleiche Idee, aber mit einem Fehler von mir zu tun. Ich dachte, ich muss es von der Design-Zeit machen, aber in der Tat ist es notwendig, es in Echtzeit zu tun. Jetzt denke ich, dass diese Frage klarer ist. Programmieren ist ein Hobby und kein Job, also sind Internet und Stackoverflow meine einzigen Trainer. Vielen Dank für Ihr Verständnis, wenn ich manchmal dumme Fragen stelle. – REALSOFO