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
Thema durchsuchen
Ansicht
Themen-Optionen

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

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 8. Mai 2021, 16:08
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.
Zu Deinen Bedenken:
Ich wäre ja für einen Boolean oder switch, Legacy = linkt auf Tahoma, Modern = linkt auf Segoe UI
//edit: Also als Projekt-Option meine ich das, nicht als "Form.Property"

Zum QP:
Einen QP, so etwas habe ich noch nie gemacht und auch keine Erfahrung damit (ich mache da bestimmt alles falsch), meine Stimme würde ich definitiv auch geben wenn es jemand hier postet.



Danke auf jeden Fall für Deine mir wichtige Meinung!
Gruß vom KodeZwerg

Geändert von KodeZwerg ( 8. Mai 2021 um 16:16 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 8. Mai 2021, 16:57
So schwer ist es nicht.
http://quality.embarcadero.com

Das "Legacy " lässt sich problemlos wie bei der OnCreate-Reihenfolge umsetzen. (Property OldCreateOrder)
Wenn das Property in einer bestehenden DFM noch nicht drin ist, dann wird es auf True gesetzt
und bei neuen Forms auf False. (oder andersrum)
Hier würde ich aber besser einen Enum anstatt eines Boolean verwenden, falls/wenn in Zukunft mal wieder der Fort geändert wird.

Ja, es einfach so unverhoft/unbemerkt zu ändern, kann paar Probleme bereiten.
Vor allem wenn der Font größer/länger würde, als der Alte, und dann Texte abgeschnitten werden oder überlappen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 8. Mai 2021 um 17:01 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.685 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 8. Mai 2021, 17:25
Ja, es einfach so unverhoft/unbemerkt zu ändern, kann paar Probleme bereiten.
Vor allem wenn der Font größer/länger würde, als der Alte, und dann Texte abgeschnitten werden oder überlappen.
Deswegen meinte ich es ja eher als Projekt-Option, nicht als Form.Property (oder Application.Property)
Somit wäre gewährleistet das bestehende Projekte nicht beschädigt werden selbst wenn man darin neue Forms erstellt.
Das war zumindest mein Grundgedanke zu Uwes berechtigten bedenken.
Ob sich dann die Projekt-Option auch als eine Form/Application Property ableitet, da bin ich überfragt, aber sicherlich denkbar möglich. (Vielleicht als Read-Only, so das man es eh nur in den Optionen ändern kann)
Es müsste ja die zugrundeliegende RTL angepasst werden, wenn ich dann noch an diese ganzen Style-Hooks denke wird mir schlecht.

Wenn ein neues Projekt entworfen wird sollte es halt aktiviert sein, bei alten eben nicht. (...aber halt nachrüstbar was dann natürlich zu mühsamen durchtesten jeder Form führen könnte wenn die IDE da keine automatische Anpassung für einen vornimmt...)


Ich bin jedenfalls voller Hoffnung das es realisierbar ist.


Auch würde mich eine Option freuen die das Windows Theme (dark/light) für moderne Applikationen einführt.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 8. Mai 2021, 17:35
Das ist halt eine Überlegung.

In der DFM gespeichert, kannst jeder Form in Ruhe nacheinander umstellen und prüfen/anpassen.

Global gespeichert, stellst du es um und mußt dann alle Forms zusammen prüfen/anpassen.
Wenn sich aber alle Forms selbst anpassen, weil sie z.B. bereits für MultiLanguage vorgesehn sind, so sich Textlängen auch ändern können, dann ist eine "globale" Einstellung auch ganz nett.
(OK, wir haben unsere Forms/Komponenten abgeleitet und könnten es auch zentral an einer Stelle ändern, selbst wenn es je Form/DFM gespeichert ist)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 8. Mai 2021 um 17:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#15

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 8. Mai 2021, 18:34
Ich wäre ja für einen Boolean oder switch, Legacy = linkt auf Tahoma, Modern = linkt auf Segoe UI
//edit: Also als Projekt-Option meine ich das, nicht als "Form.Property"
Das halte ich für den Zweck für Overkill und sehe eine Realisierung eher unwahrscheinlich. Schließlich steht es jedem frei, den Font seines Forms zu ändern. Man muss den oben beschriebenen Sachverhalt ja nur kommunizieren. Diese Projekt-Option müsste man ja auch irgendwie setzen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 8. Mai 2021, 19:16
Einfach umstellen geht aber auch nicht.
Du kompilierst deine Anwendung neu und plötzlich sieht alles anders aus.

Aber die Variante wie beim OldCreateOrder wäre schon OK.
Alte Forms muß man dann manuell umstellen und neue Forms nutzen direkt den neuen Font.
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 Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#17

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 8. Mai 2021, 22:35
Einfach umstellen geht aber auch nicht.
Du kompilierst deine Anwendung neu und plötzlich sieht alles anders aus.
Stimmt ja nicht. Da ein TForm seinen Font (aktuell Tahoma) in der DFM speichert und sich damit nicht mehr um DefFontData kümmert ist der Wert von DefFontData ziemlich egal. Lediglich die IDE wertet das aus, wenn man ein neues Form zum Projekt hinzufügt. Man kann das leicht verifizieren, wenn man einfach mal den Registry-Eintrag auf Segoe UI ändert und nach einem Neustart der IDE ein bestehendes VCL-Forms-Projekt öffnet und ein neues Form hinzufügt.

Wenn man allerdings ein Form dynamisch erzeugt und ohne DFM die Controls per Code darauf platziert, kann das schon Auswirkungen haben. Das ließe sich aber mit einer entsprechenden Initialisierung von DefFontData wieder auf den gewünschten Stand zurücksetzen. Das wäre auch im Moment schon ein gangbarer Weg um zur Laufzeit ein eventuelles Überschreiben von MS Shell Dlg 2 in der Registry durch den User zu neutralisieren.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 8. Mai 2021, 22:45
Ohh, stimmt, in der VCL wird der Font bei einer neuen Form gespeichert.

Ich hatte grade FMX im Blick und wenn dort am Font nichts geändert wurde, dann wird er dort nicht gespeichert.
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 Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.009 Beiträge
 
Delphi 12 Athens
 
#19

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 8. Mai 2021, 22:56
FMX verwendet aber auch kein DefFontData.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.824 Beiträge
 
Delphi 12 Athens
 
#20

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 9. Mai 2021, 15:52
Hallo CodeZwerg,

meölde dich doch einfach mit deinem EDN/EMBT Login unter quality.embarcadero.com an,
klicke aauf den großen roten Button zum erstellen eines neuen Eintrags, wähle als Typ
Feature Request aus und fülle das Formular aus. Einfach mal reinschreiben, dass du die
VCL default Font geändert haben willst und als Kategorie VCL auswählen.
Abschicken und uns die URL (wird kurz in einem Popup angezeigt, also einfach draufklicken)
hier schicken. Dann finden es sicher einige und stimmen dafür.

Wenn ich sowas kann, kannst du das bestimmt auch

Grüße
TurboMagic
  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 22:53 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