![]() |
VCL.Graphics.pas DefFontData initialisierung veraltet
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?
|
AW: VCL.Graphics.pas DefFontData initialisierung veraltet
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 ![]() 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) |
AW: VCL.Graphics.pas DefFontData initialisierung veraltet
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. |
AW: VCL.Graphics.pas DefFontData initialisierung veraltet
DefFontData wird in InitDefFontData initialisiert. Die direkte Initialisierung der globalen Variable in der Deklaration ist damit obsolet.
|
AW: VCL.Graphics.pas DefFontData initialisierung veraltet
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; |
AW: VCL.Graphics.pas DefFontData initialisierung veraltet
Was verstehst du denn unter dem Defaultfont des Betriebsystems?
Und wieso ist die Schrift unter MS Shell Dlg 2 eine Ersatzschriftart? |
AW: VCL.Graphics.pas DefFontData initialisierung veraltet
Zitat:
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:
|
AW: VCL.Graphics.pas DefFontData initialisierung veraltet
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:
|
AW: VCL.Graphics.pas DefFontData initialisierung veraltet
Ich habe mir gerade mal diesen
![]() Zitat:
Zitat:
|
AW: VCL.Graphics.pas DefFontData initialisierung veraltet
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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:40 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