![]() |
Private Variablen über Eigenschaft öffentlich machen
Hallo,
wenn ich in einer Klasse eine Priavte Variable Deklariere und diese trotzdem öffentlich machen will, dann mache ich das so:
Delphi-Quellcode:
Meine Frage ist nun, was bedeuten die folgenen Schlüsselwörter? Ich werde aus der Delphi Hilfe nicht so ganz schlau!
published
property DBGrid: TDBGrid Read FDBGrid Write FDBGrid;
Delphi-Quellcode:
Und dann habe ich auch noch eine andere Frage:
stored, default und nodefault
Wenn ich eine Eigenschaft nicht setze, wie kann ich einen Standartwert setzen? Kann ja mal sein, dass man vergisst eine Eigenschaft zu setzen. Ich habe es über Default probiert funktioniert aber leider nicht. Bsp.:
Delphi-Quellcode:
MFG Christian18
property FocusTextColor: TColor Read FFocusTextColor Write FFocusTextColor Default clBlack;
|
Re: Private Variablen über Eigenschaft öffentlich machen
default ist auch nicht der wert der genommen wird, wenn keiner gesetzt wird, sondern der Wert der nicht in der dfm gespeichert wird.
Du musst den wert im Konstruktor vorbelegen |
Re: Private Variablen über Eigenschaft öffentlich machen
Hi,
stored, default und nodefault sind nur unter published wichtig und betreffen das Speichern in der DFM. Defaultwerte werden nicht gespeichert, d. h. wenn der Wert, den du hinter default angegeben hast, da ist, wird es nicht in der DFM gespeichert (wenn keiner angegeben ist, ist z. B. bei Zahlen 0 default, bei Strings Leerstrings und bei Objekten nil. Auf diesen Wert solltest du dann auch im Create initialisieren. Nodefault heißt, dass ein geerbter Defaultwert wieder entfernt wird. Über stored kannst du angeben, ob es überhaupt in der DFM gespeichert werden soll. Ansonsten wird zwar in der DFM ein Eintrag angezeigt, dieser aber nicht gespeichert (sinnvoll z. B. bei ReadOnly-Werten, die zur Entwurfszeit angezeigt werden sollen), über stored false oder stored <Feld vom Typ Boolean>. Standardmäßig (ohne Angabe von stored) passiert das gleiche wie bei stored true. Mfg FAlter |
Re: Private Variablen über Eigenschaft öffentlich machen
Hi,
kann man denn innerhalb der Klasse, wo die Eigenschaften Deklariert werden, prüfen ob die Eigenschaften gesetzt wurden? MFG Christian18 |
Re: Private Variablen über Eigenschaft öffentlich machen
Implementiere einen Setter
|
Re: Private Variablen über Eigenschaft öffentlich machen
Zitat:
Ansonsten kann man noch 'Loaded' überschreiben und die (geladenen) Properties auswerten... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz