![]() |
Konstante in Object Inspector
Guten Tag zusammen,
ich würde gerne in einer eigenen Komponente eine Komponenten Version im Object Inspector anzeigen lassen. Ich habe dazu eine published read-only property angelegt.
Code:
Im Konstruktur habe ich die Property mit einer Konstanten initialisiert.
published
property KomponentenVersion: double read FKomponentenVersion;
Code:
Wenn ich die Komponente auf die Form ziehe, wird mit jedoch nur der Default Wert 0 angezeigt und nicht der von mir festgelegte Wert.
constructor TComp.Create(AOwner: TComponent);
begin inherited; FKomponentenVersion := KOMPONENTEN_VERSION; end; Was mach ich hier falsch? Vielen Dank schon einmal für Hinweise |
AW: Konstante in Object Inspector
Hast Du das Package neu installiert? Neu compilieren reicht nicht.
|
AW: Konstante in Object Inspector
Oder versuch es mal über einen Getter der direkt KOMPONENTEN_VERSION zurückgibt.
|
AW: Konstante in Object Inspector
Und IMHO stored False nicht vergessen...
Delphi-Quellcode:
property KomponentenVersion: double read GetKomponentenVersion stored False;
Frank |
AW: Konstante in Object Inspector
:thumb: Stimmt. Logisch.
|
AW: Konstante in Object Inspector
Vielen Dank für euere Hinweise!
Zitat:
- closed - |
AW: Konstante in Object Inspector
Hintergrund:
Zuerst wird die Komponente erstellt und dabei der Konstruktor ausgeführt, danach werden die in der .dfm gespeicherten Werte ausgelesen und gesetzt. Dort wird dein Wert daher ggf. überschrieben. Wenn du Loaded überschreibst und den Wert dort setzt, würde es daher auch funktionieren. Das wird nach dem Lesen der Werte aus der .dfm ausgeführt. |
AW: Konstante in Object Inspector
Zitat:
Delphi-Quellcode:
ohne Write wird das auch überschrieben? :zwinker:
property KomponentenVersion: double read FKomponentenVersion;
Aber, wenn man z.B. mehrere Packages nutzt, dann kann es passieren, daß in jedes Package eine andere "Version" der Konstate einkompiliert wurde. |
AW: Konstante in Object Inspector
Zitat:
Das hat es jedoch nicht. LG |
AW: Konstante in Object Inspector
Hast du die Komponente denn neu auf das Formular gelegt? Wenn die Eigenschaft schon gespeichert war, wurde sie vermutlich schlicht nicht entfernt nachdem du das hinzugefügt hattest.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 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