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...