AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls VCL.Graphics.pas DefFontData initialisierung veraltet

VCL.Graphics.pas DefFontData initialisierung veraltet

Ein Thema von Rolf Frei · begonnen am 30. Apr 2021 · letzter Beitrag vom 11. Mai 2021
Antwort Antwort
Seite 1 von 3  1 23   
Rolf Frei

Registriert seit: 19. Jun 2006
392 Beiträge
 
Delphi 10.3 Rio
 
#1

VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 30. Apr 2021, 14:37
Habe eben festgestellt das im Jahr 2021 der DefFontData Record in der Vcl.Graphics Unit immer noch mit "MS Sans Serif" intialisiert wird?! Hat das einen vernünftigen Grund oder wieso wird das nicht an den aktuellen Stand (Segoe UI) angepasst? Sollte man das mal melden?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
38.743 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 30. Apr 2021, 14:46
Ich glaub das wurde nach D7 einmal geändert.
Sei doch nicht so ungeduldig ... die sind nicht die Schnellsten.

Aber diese Vorgabe kann man doch auch selber ändern?

Tipp: in quality.embarcadero.com schauen, ob es schon was gibt, oder eine Anfrage stellen, dass das mal "aktualisiert" werden möge.



Wir (Arbeit) haben nahezu alle unsere Komonenten und die Forms abgeleitet, somit hatten wir keine Probleme da den Font mal anzupassen.
(weiß nur grad nicht was da aktuell ist, bei uns)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (30. Apr 2021 um 14:48 Uhr)
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
392 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 30. Apr 2021, 14:50
Ja, dass man das einfach in der DPR ändern kann ist mir schon klar, aber wieso ist das immer noch so drin? Hat das irgend welche Gründe, die ich gerade nicht sehen kann? Kann das eventuell mit dem Fontnamen "Default" irgendwelche Nebenwirkungen ergeben? Sollte man dafür vieleicht mal einen Report aufmachen?

Bekommt man eigentlich irgendwie den Namen des Default Font der aktuellen Windows Version?

Habe mal einen Report gemacht. Eine Suche nach DefFontData hatte kein Ergebnis geliefert.

Geändert von Rolf Frei (30. Apr 2021 um 15:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.820 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 30. Apr 2021, 16:45
DefFontData wird in InitDefFontData initialisiert. Die direkte Initialisierung der globalen Variable in der Deklaration ist damit obsolet.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
392 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 30. Apr 2021, 17:35
InitDefFontData macht das aber auch nicht richtig. Da ist dann Tahoma als Default drin zumindest noch in meinem 10.3. Ist das in 10.4.2 anders? Da wird in der Registry der Wert aus FontSubstitutes->MS Shell Dlg 2 gelesen und das ist meiner Meinung nach so nicht richtig. Da muss es doch eine andere Funktion geben mit der man den Defaultfont des Betriebsystems bekommt?! Tahoma wäre ja dann nur die Ersatzsschriftart.

Delphi-Quellcode:
var
  f: TFont;
begin
  f := TFont.Create;
  ShowMessage(f.Name);
  f.Free;
end;

Geändert von Rolf Frei (30. Apr 2021 um 17:42 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.820 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 30. Apr 2021, 23:25
Was verstehst du denn unter dem Defaultfont des Betriebsystems?

Und wieso ist die Schrift unter MS Shell Dlg 2 eine Ersatzschriftart?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
392 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 1. Mai 2021, 18:42
Was verstehst du denn unter dem Defaultfont des Betriebsystems?

Und wieso ist die Schrift unter MS Shell Dlg 2 eine Ersatzschriftart?
Sind das ernst gemeinte Fragen?

Die Defaultschriftart des OS ist das was eben als Standard von MS vorgegeben wird und das ist nun mal unter Windows 10 (glaub seit Vista) Segoe UI und nicht Tahoma.

FontSubstitutes = Ersatzschrift wenn die orignale Schrift nicht vorhanden ist.

Zitat:
Font substitution is the process of using one font in place of another when the intended font either is not available or does not contain glyphs for the required characters.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.820 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 1. Mai 2021, 22:50
MS Shell Dlg 2 ist eine logische Schriftart (es gibt keinen Font dieses Namens), die je nach Windows-Version unterschiedlich sein kann (deswegen FontSubstitutes). Damit wird unter anderem das Problem gelöst, dass auf älteren oder neueren Systemen die gewählte Schriftart eventuell nicht vorhanden ist bzw. durch die Spracheinstellung nicht verwendet werden kann. Insofern ist die Verwendung dieser Schriftart ein probates Mittel für eine weite Kompatibilität der Applikation bezüglich verschiedener Windows-Versionen und Windows-Sprachen.

Insbesondere schreibt Microsoft über diesen Font auch:
Zitat:
the shell font, also known as the system or default font,
Wenn Microsoft also eine andere Schriftwart als System- oder Default-Font haben will, dann brauchen sie das nur entsprechend in die Registry einzutragen. Haben sie aber nicht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.081 Beiträge
 
Delphi 10.3 Rio
 
#9

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 8. Mai 2021, 13:48
Ich habe mir gerade mal diesen Guideline durchgelesen und stimme Rolf zu das da was falsch ist, es sei denn Microsoft irrt sich.

Zitat:
Win32 or WinForms / Windows Vista or later = Use the appropriate Segoe UI font.
Zitat:
Extensible components or pre-Windows Vista = To target Windows XP and Windows 2000, use the 8 point MS Shell Dlg 2 pseudo font, which maps to Tahoma.
To target earlier versions of Windows, use 8 point MS Shell Dlg pseudo font, which maps to Tahoma on Windows 2000 and Windows XP, and to MS Sans Serif on Windows 95, Windows 98, Windows Millennium Edition, and Windows NT 4.0.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
8.820 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 8. Mai 2021, 16:36
Unter dem Aspekt dass Windows XP nicht mehr als Target-Plattform unterstützt wird, könnte man in der Tat über eine Anpassung des Default-Fonts nachdenken. Einen entsprechenden QP-Eintrag würde ich auch unterstützen.

Man muss dabei aber bedenken, dass sich eine Änderung dieser Grundeinstellung auf die Erweiterung bestehender Projekte auswirkt. Bestehende Forms behalten die Tahoma-Einstellung, während neue Forms dann mit Segoe UI erzeugt werden.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 23:06 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf