![]() |
Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben
Hallo, ich versuche eine von TCustomLabel abgeleitete Komponente zu erstellen, die als Linklabel dienen soll. Das neue Label soll alle Font-Eigenschaften seines Parent (z.B. der TForm, auf der das Label liegt) verwenden, bis auf Font.Style (unterstrichen) und Font.Color (blau).
Was ich versucht habe: Ich setze in der Komponente in der Create-Methode ParentFont := true, aber sobald ich zusätzlich Font.Style und Font.Color setze, wird Font.ParentFont automatisch wieder auf false gesetzt (erkennbar an der falschen Schriftart) :( Und auf die Schriftart von Parent (der TForm) kann ich von der Komponente aus auch nicht zugreifen, da Parent.Font.Name keine public Eigenschaft ist :( Das gewünschte Ergebnis erhalte ich nur, indem ich in der Komponente nur ParentFont auf true setze und die Font.Style und Font.Color erst nach Einbau der Komponente in meiner TForm überschreibe :gruebel: Gibt es keine Möglichkeit, alles in die Komponente selbst zu packen, ohne nachträglich noch Eigenschaften verändern zu müssen :?: |
AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben
Wenn Du nicht über .Create gehst, dann nicht.
Gruß K-H |
AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben
Viel einfacher!
Verlager das problem in das Form... Itteriere über alle Komponenten auf dem Form und setzt die Font Eigenschaften... So brauchst Du nix ableiten und keine eigene Componente erzeugen! Mavarik |
AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben
Oder die Paint-Methode überschreiben und dort Canvas.Font entsprechend formatieren.
|
AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben
Zitat:
|
AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben
Zitat:
|
AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben
Zitat:
|
AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben
Zitat:
In dieser Reihenfolge ParentFont := true; Font.Color := clBlue; Font.Style := [fsUnderline]; ist das Label blau und unterstrichen, hat aber nicht die Schriftart vom Parent. In dieser Reihenfolge Font.Color := clBlue; Font.Style := [fsUnderline]; ParentFont := true; hat das Label die Schriftart vom Parent, aber ist nicht blau und nicht unterstrichen. :-( |
AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben
Entweder es hat dieselbe Schrift wie der Parent oder eben nicht. Wenn Du zuerst sagst "Ja, hat es" und dann nachträglich die Schrift änderst, ist es ja wieder eine andere als die des Parents. Von daher ist das Verhalten ja nur logisch und richtig.
[edit] Schnell zusammengeschustert und nicht sonderlich schön, tut aber:
Delphi-Quellcode:
[/edit]
type
TTestLabel = class(StdCtrls.TLabel) protected procedure Paint; override; end; ... procedure TTestLabel.Paint; begin Canvas.Font.Assign(Font); Canvas.Font.Style := Canvas.Font.Style + [fsBold, fsUnderLine]; Canvas.Brush.Style := bsClear; Canvas.Font.Color := clNavy; if AutoSize then Width := Canvas.TextWidth(Caption); Canvas.TextOut(0, 0, Caption); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 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 by Thomas Breitkreuz