Hallo!
Ich möchte eine von tCustomListView abgeleitete ListView erstellen. Bislang klappt auch alles sehr gut, nur stehe ich beim hinzufügen eines simplen Properties ziemlich auf dem Schlauch. Die Deklaration sieht folgendermaßen aus:
Delphi-Quellcode:
type
tArchiveListView = class(tCustomListView)
private
FUseSystemFont: Boolean;
...
public
constructor Create(AOwner: TComponent); override;
published
...
property UseSystemFont: Boolean read FUseSystemFont write FUseSystemFont;
end;
constructor tArchiveListView.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
If fUseSystemFont then
ApplyExplorerFont(Font);
end;
UseSystemFont ist im ObjektInspektor sichtbar und kann auch gesetzt werden. Irritierenderweise ist der Wert von fUsesystemFont zur Laufzeit immer False, unabhängig davon, ob ich diesen vorab im ObjektInspektor auf True gesetzt habe.
Wird die neu erstellte Komponente auf einem Form verwendet, so wird der Wert korrekt in den Objektdaten des Forms gespeichert:
Delphi-Quellcode:
...
object tArchiveListView1: tArchiveListView
Left = 20
Top = 20
Width = 453
Height = 477
TabOrder = 4
ViewStyle = vsReport
UseSystemFont = True
end
Leider ist auch hier bei jedem öffnen des Projekts die Eigenschaft wieder auf False gesetzt.
Wie gesagt, ich stehe gerade ziemlich auf dem Schlauch - hat jemand eine Idee, wo der Fehler liegt bzw. wie ich diese eigentlich relativ einfache Eigenschaft korrekt implementiere?
Danke!
Gruß,
Gerald