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 2 von 3     12 3      
Benutzerbild von Mavarik
Mavarik

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

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

  Alt 18. Jan 2012, 15:29
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 ...
OK Dann sag doch einfach, dass Du es nicht verstanden hast...

Delphi-Quellcode:
procedure TForm42.FormCreate(Sender: TObject);
var
  i : integer;
begin
  For i:= 0 to Self.ComponentCount-1 do
    begin
      if self.Components[i] is TLabel then
        begin
          with TLabel(self.Components[i]) do
            begin
              Font.Color := clBlue;
              // USW...
            end;
        end;
    end;
end;
Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

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

  Alt 18. Jan 2012, 15:32
Was hast Du eigentlich gegen Komponenten? Wenn er/sie nur ein oder zwei solcher Labels haben möchte, dann bietet sich eine eigene Komponente doch geradezu an, vor allem, wenn man so etwas in mehreren Projekten braucht (Wiederverwendbarkeit).
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
Benutzerbild von Mavarik
Mavarik

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

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

  Alt 18. Jan 2012, 15:36
Was hast Du eigentlich gegen Komponenten? Wenn er/sie nur ein oder zwei solcher Labels haben möchte, dann bietet sich eine eigene Komponente doch geradezu an, vor allem, wenn man so etwas in mehreren Projekten braucht (Wiederverwendbarkeit).
Nach lieber ne Vererbung von TForm... Als noch ne Komponente...

Besonders für die, die keine Komponenten installieren können/wollen...

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

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

  Alt 18. Jan 2012, 15:38
Ob das jetzt der bessere Weg ist möchte mal bezweifeln, gerade dann, wenn nur einige wenige Labels die "Link"-Funktionalität haben sollen. Ich kann mir doch nicht für jede denkbare Konstellation eine TForm-Ableitung machen.
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
Benutzerbild von Mavarik
Mavarik

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

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

  Alt 18. Jan 2012, 15:42
Ob das jetzt der bessere Weg ist möchte mal bezweifeln, gerade dann, wenn nur einige wenige Labels die "Link"-Funktionalität haben sollen. Ich kann mir doch nicht für jede denkbare Konstellation eine TForm-Ableitung machen.
Doch...

Ich glaube ich habe in keine Programm auch nur ein einziges TForm...

Das sind alles immer TMyForm's

Mavarik
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

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

  Alt 18. Jan 2012, 15:44
Wenn man immer eine ähnliche Art von Programmen (gerade hinsichtlich der GUI) schreibt, dann mag das auch angehen. Ob man das aber jetzt für andere Anwender verallgemeinern kann...
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
irmdaen

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

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

  Alt 18. Jan 2012, 15:47
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]
Herzlichen Dank!! Ich fasse es nicht, aber das ist genau was ich wollte

Geändert von irmdaen (18. Jan 2012 um 16:21 Uhr) Grund: Aus Versehen doppelt gepostet ...
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.004 Beiträge
 
Delphi 12 Athens
 
#18

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

  Alt 18. Jan 2012, 15:47
Welche Delphi-Version?
Delphi-Referenz durchsuchenTLinkLabel

Im OnPaint ist es vollkommen grauenhaft untergebracht.
Hab ich hier auf Arbeit mit zu kämpfen, weil irgendwann mal irgendwer dachte dort etwas immer wieder neu überschrteiben zu müssen.
Wenn man dann doch mal was anderes braucht, kann man es vergessen.

Vorschlag:
Delphi-Referenz durchsuchenTComponent.Load überschreiben und dort den Style ändern. (vorher wird dabei noch automatisch der ParentFont geladen)
Dazu dann noch die Font-Eigenschaft und ParentFont per "stored False" aus der DFM ausschließen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Mavarik
Mavarik

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

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

  Alt 18. Jan 2012, 15:49
Im OnPaint ist es vollkommen grauenhaft untergebracht.
[OT]Danke[/OT]

  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

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

  Alt 18. Jan 2012, 15:54
IIRC wird Loaded aber nur aufgerufen, wenn die Komponente zur Entwurfszeit angelegt wurde. Macht man das dynamisch zur Laufzeit, isses wieder Essig.
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
Antwort Antwort
Seite 2 von 3     12 3      

 

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 02:52 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