Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Kompo ableiten: Font im OI ändern funzt nicht (https://www.delphipraxis.net/70919-kompo-ableiten-font-im-oi-aendern-funzt-nicht.html)

Martin K 6. Jun 2006 20:38


Kompo ableiten: Font im OI ändern funzt nicht
 
Hi,

ich habe mir ein TLabel abgeleitet.
Da ich nicht wusste, wie ich auf das Ändern von Font reagieren sollte (wenn die Schriftfarbe geändert wird, soll auch eine andere Eigenschaft im OI gleichzeitig geändert werden), habe ich mir die Eigenschaft Font neu angelegt.
Dazu habe ich auch im Forum was gefunden und mir den Code angepasst:
Delphi-Quellcode:
type
  TLinkLabel = class(TLabel)
  private
    dFont: TFont;
    procedure SetFont(Value: TFont);
    {...}
  published
    property Font: TFont read dFont write SetFont;
  {...}


constructor TLinkLabel.Create(AOwner: TComponent);
begin
  inherited Create(AOwner);
  dFont := TFont.Create;
  {...}
end;

destructor TLinkLabel.Destroy;
begin
  dFont.Free;
  inherited Destroy;
end;

procedure TLinkLabel.SetFont(Value: TFont);
begin
  dFont.Assign(Value);
  ParentFont := False;
  inherited Font := dFont; // <-- scheint nicht zu gehen (s. unten)
end;
Wenn ParentFont auf True ist, wird Font des Labels auch richtig vom der Form übernommen, allerdings ändern sich die Einträge unter Font im OI nicht.
Wenn ich die Schrift im FontDialog (im OI auf '...' neben Font) ändere, geht alles problemlos.
Wenn ich aber auf + klicke und dort Font ändere, ändert sich die Schrift des Labels nicht.
Der Fehler scheint also an der oben markierten Stelle zu liegen.

Eine bessere Lösung wäre natürlich, wenn ich einfach auf etwas wie "OnFontChange" oder so reagieren könnte...

mkinzler 6. Jun 2006 20:51

Re: Kompo ableiten: Font im OI ändern funzt nicht
 
Laß mal das inherited weg.

Martin K 6. Jun 2006 20:55

Re: Kompo ableiten: Font im OI ändern funzt nicht
 
Nö, hat sich nix geändert.
Genauso, wie vorher!

Ohhh....
Wenn ich die Schrift im FontDialog ändere:
Zitat:

---------------------------
Gefahr
---------------------------
Stapelüberlauf - Speichern Sie Ihre Arbeit und starten Sie Delphi erneut
---------------------------
OK
---------------------------

Jens Schumann 6. Jun 2006 21:50

Re: Kompo ableiten: Font im OI ändern funzt nicht
 
Zitat:

Zitat von Martin K
Da ich nicht wusste, wie ich auf das Ändern von Font reagieren sollte ...

dafür hat TFont das OnChange Ereignis.

Martin K 6. Jun 2006 22:11

Re: Kompo ableiten: Font im OI ändern funzt nicht
 
Hm...
Das war jetzt irgendwie zu einfach :oops:

:thumb: Danke!

turboPASCAL 7. Jun 2006 07:34

Re: Kompo ableiten: Font im OI ändern funzt nicht
 
Mal so nebenbei, eine Kompo. Linklabel gibt es in der OS-Sparte...


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:57 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