AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben
Thema durchsuchen
Ansicht
Themen-Optionen

Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben

Ein Thema von irmdaen · begonnen am 18. Jan 2012 · letzter Beitrag vom 18. Jan 2012
Antwort Antwort
Seite 1 von 3  1 23      
irmdaen

Registriert seit: 19. Sep 2008
6 Beiträge
 
#1

Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben

  Alt 18. Jan 2012, 12:57
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

Gibt es keine Möglichkeit, alles in die Komponente selbst zu packen, ohne nachträglich noch Eigenschaften verändern zu müssen

Geändert von irmdaen (18. Jan 2012 um 16:28 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#2

AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben

  Alt 18. Jan 2012, 13:09
Wenn Du nicht über .Create gehst, dann nicht.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben

  Alt 18. Jan 2012, 13:13
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
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#4

AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben

  Alt 18. Jan 2012, 13:21
Oder die Paint-Methode überschreiben und dort Canvas.Font entsprechend formatieren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#5

AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben

  Alt 18. Jan 2012, 14:22
ich versuche eine von TCustomLabel abgeleitete Komponente zu erstellen, die als Linklabel dienen soll
Gibt's doch schon.
Angehängte Dateien
Dateityp: zip UrlLabel.zip (2,7 KB, 3x aufgerufen)
Andreas
  Mit Zitat antworten Zitat
irmdaen

Registriert seit: 19. Sep 2008
6 Beiträge
 
#6

AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben

  Alt 18. Jan 2012, 14:42
Oder die Paint-Methode überschreiben und dort Canvas.Font entsprechend formatieren.
Das habe ich schon ausprobiert, funktioniert aber leider nicht: Ich will ja die Schriftart vom Parent, die hole ich mir in Create mit ParentFont := true. Aber die Canvas.Font.Color und Style in der überschriebenen Paint-Methode werden dann ignoriert!
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

Registriert seit: 9. Feb 2006
Ort: Stolberg (Rhld)
4.143 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben

  Alt 18. Jan 2012, 14:55
Das habe ich schon ausprobiert, funktioniert aber leider nicht: Ich will ja die Schriftart vom Parent, die hole ich mir in Create mit ParentFont := true. Aber die Canvas.Font.Color und Style in der überschriebenen Paint-Methode werden dann ignoriert!
LOL Hast Du mein Posting gelesen?
  Mit Zitat antworten Zitat
irmdaen

Registriert seit: 19. Sep 2008
6 Beiträge
 
#8

AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben

  Alt 18. Jan 2012, 15:06
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
Vielen Dank, aber in der Form selbst hatte ich es schon hingekriegt. Aber weil ich das noch öfters brauchen werde, hätte ich es halt gern verallgemeinert gehabt in einer Komponente, einfach sie ins Formular ziehen und fertig ...
  Mit Zitat antworten Zitat
irmdaen

Registriert seit: 19. Sep 2008
6 Beiträge
 
#9

AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben

  Alt 18. Jan 2012, 15:08
Wenn Du nicht über .Create gehst, dann nicht.

Gruß
K-H
Bitte wie meinst du das? Wenn ich in Create alle Einstellungen mache, passiert folgendes:
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#10

AW: Komponente benützt ParentFont und soll Font.Style und Font.Color überschreiben

  Alt 18. Jan 2012, 15:14
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:
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;
[/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (18. Jan 2012 um 15:24 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      

 

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:08 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