AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Delphi Schriftart ändern für alle Label und Edits in einem Form
Thema durchsuchen
Ansicht
Themen-Optionen

Schriftart ändern für alle Label und Edits in einem Form

Ein Thema von enigma · begonnen am 28. Nov 2022 · letzter Beitrag vom 4. Dez 2022
Antwort Antwort
Seite 1 von 2  1 2      
enigma

Registriert seit: 15. Jun 2008
47 Beiträge
 
#1

Schriftart ändern für alle Label und Edits in einem Form

  Alt 28. Nov 2022, 09:31
Hallo,

ich habe eine kurze Frage:
Zu einem Form (TfrmMain = class(TForm)) möchte ich die Schriftart für alle enthaltenen Labels und Edits ändern.
Gibt es eine andere Möglichkeit, als dies im Quellcode für alle Labels extra einzufügen,
z.B. lblProjektName.Font.Name := 'Calibri'; (ist bisher 'Arial')
oder im Objektinspektor die einzelnen Labels anzupassen?

In TfrmMain.FormCreate Font.Name := 'Calibri'; einzufügen, bringt leider nichts.

Ich freue mich über jeden Tipp
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
491 Beiträge
 
Delphi 12 Athens
 
#2

AW: Schriftart ändern für alle Label und Edits in einem Form

  Alt 28. Nov 2022, 09:39
Wenn die Labels und Edits ParentFont = True gesetzt habe, sollte das Ändern im Form automatisch auf die Labels und Edits übertragen werden.
Du kannst aber auch die DFM als Text anzeigen und hier per Suchen und Ersetzen alles auf eine andere Schriftart umstellen.
  Mit Zitat antworten Zitat
enigma

Registriert seit: 15. Jun 2008
47 Beiträge
 
#3

AW: Schriftart ändern für alle Label und Edits in einem Form

  Alt 28. Nov 2022, 17:31
Hallo Bernd,

danke für deine Antwort.
Allerdings klappt ParentFont nicht, da die Labels in Groupboxen liegen, die Font.Style Bold haben.

Die Anzeige als Text bringt leider auch nichts, da dort keine Wertzuweisung Font.Name := 'Arial' erfolgt, sondern
der Standard MS Sans Serif vorliegt.

Fällt euch noch etwas anderes ein?
Würde mich freuen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Schriftart ändern für alle Label und Edits in einem Form

  Alt 28. Nov 2022, 17:48
Im FormDesigner ändern, nicht erst im OnCreate.
Danach kannst dann auch noch alles aus der DFM werfen, was falsch ist.


Zur Runtime:
Bleibt dir also nichts Anderes übrig, als rekursiv über alle Controls und UnterControls der Form zu laufen und es überall zu setzen, wo ParentFont=False.


Ja, es ist blöd, dass ParentFort immer alles nimmt und kein ENUM ist, welcher angibt, was vom Font nicht vererbt werden soll. (Name, Size und Style)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Frickler

Registriert seit: 6. Mär 2007
Ort: Osnabrück
591 Beiträge
 
Delphi XE6 Enterprise
 
#5

AW: Schriftart ändern für alle Label und Edits in einem Form

  Alt 28. Nov 2022, 17:52
So mache ich das zur Laufzeit:

Code:
type
  TControlTrick = class(TControl) public property Font; end;

[...]

for i:=0 to frm.ComponentCount-1 do begin
  if frm.Components[i] is TControl then begin
    if TControlTrick(frm.Components[i]).Font.Name = OldFont then
      TControlTrick(frm.Components[i]).Font.Name := NewFont;
  end;
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Schriftart ändern für alle Label und Edits in einem Form

  Alt 28. Nov 2022, 17:58
  TControlTrick = class(TControl) end;
oder
  TControlTrick = class(TControl);
reicht, da du so bereits Zugriff auf Alles bekommst. (auch protected, da Deklaration in selber/aktueller Unit)

Aber ist auch unötig, da man sich für Font auch einfach irgendwas nehmen kann, wo es bereits Public gemacht wurde, wie z.B. TLabel oder TEdit, anstatt TControlTrick.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (28. Nov 2022 um 18:02 Uhr)
  Mit Zitat antworten Zitat
zeras

Registriert seit: 11. Mär 2007
Ort: Saalkreis
1.633 Beiträge
 
Delphi 12 Athens
 
#7

AW: Schriftart ändern für alle Label und Edits in einem Form

  Alt 28. Nov 2022, 21:00
Du markierst die Objekte und im Objektinspektor bleiben die Eigenschaften übrig, die die Objekte gemeinsam haben. Dann einfach die Schriftart ändern.
Matthias
Es ist nie falsch das Richtige zu tun!
- Mark Twain
  Mit Zitat antworten Zitat
enigma

Registriert seit: 15. Jun 2008
47 Beiträge
 
#8

AW: Schriftart ändern für alle Label und Edits in einem Form

  Alt 2. Dez 2022, 13:52
Vielen Dank für eure wertvollen Tipps!
  Mit Zitat antworten Zitat
TigerLilly

Registriert seit: 24. Mai 2017
Ort: Wien, Österreich
1.205 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Schriftart ändern für alle Label und Edits in einem Form

  Alt 3. Dez 2022, 12:08
Da passt dieses vielleicht auch:
http://www.danieleteti.it/post/duck-typing-in-delphi/
http://arcana.squarespace.com/duckduckdelphi
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
647 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Schriftart ändern für alle Label und Edits in einem Form

  Alt 3. Dez 2022, 17:34
Geht es um die Fonts zur Runtime, also vom Kunden selber angegebene Fonts oder geht es um einmal in der IDE z.B. MS SansSerif auf Segoe UI zu ändern. Wenn du deine Form in der IDE umstellen willst, ist es am einfachsten die Form zu öffnen und dann Alt-F12 zu drücken. Im Sourcecode der DFM kannst du nun einfach nach dem alten Fontnamen suchen und diesen mit dem neuen ersetzen. Danach einfach wieder Alt-F12 und alles ist erledigt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      

 

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 19:21 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