AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Property zu abgeleiteter Klasse hinzufügen

Ein Thema von gkoeder · begonnen am 19. Dez 2009 · letzter Beitrag vom 19. Dez 2009
Antwort Antwort
gkoeder

Registriert seit: 15. Jun 2004
84 Beiträge
 
Delphi 2010 Professional
 
#1

Property zu abgeleiteter Klasse hinzufügen

  Alt 19. Dez 2009, 12:20
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
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

Re: Property zu abgeleiteter Klasse hinzufügen

  Alt 19. Dez 2009, 12:39
Logisch - die property kann ja erst mit einem Wert belegt werden, nachdem der Konstruktor aufgerufen wurde
  Mit Zitat antworten Zitat
gkoeder

Registriert seit: 15. Jun 2004
84 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Property zu abgeleiteter Klasse hinzufügen

  Alt 19. Dez 2009, 13:25
Zitat von jfheins:
Logisch - die property kann ja erst mit einem Wert belegt werden, nachdem der Konstruktor aufgerufen wurde
Hmm ... das klingt logisch. Wie bzw. wo sollte dann die korrekte Implementierung erfolgen?

Dankeschön!
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Property zu abgeleiteter Klasse hinzufügen

  Alt 19. Dez 2009, 13:52
Hallo Gerald,

nach dem Laden einer Komponente aus der .dfm-Datei ruft die VCL die Methode Delphi-Referenz durchsuchenLoaded für diese Komponente auf. In diesem Beitrag findest du ein Beispiel für das Überschreiben der Methode.

Gruß Hawkeye
  Mit Zitat antworten Zitat
gkoeder

Registriert seit: 15. Jun 2004
84 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Property zu abgeleiteter Klasse hinzufügen

  Alt 19. Dez 2009, 17:43
Zitat von Hawkeye219:
Hallo Gerald,

nach dem Laden einer Komponente aus der .dfm-Datei ruft die VCL die Methode Delphi-Referenz durchsuchenLoaded für diese Komponente auf. In diesem Beitrag findest du ein Beispiel für das Überschreiben der Methode.

Gruß Hawkeye
Super! Danke, das hat das Problem gelöst!

Gruß,
Gerald
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz