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

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

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 9. Mai 2021, 17:09
Hallo CodeZwerg,

Wenn ich sowas kann, kannst du das bestimmt auch
Hallo DurboMagic!

Was muss ins Feld Summary rein?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

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

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 9. Mai 2021, 17:22
https://quality.embarcadero.com/browse/RSP-33937 Ich hoffe ich habe alles richtig gemacht. (Da könnt Ihr voten)
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
650 Beiträge
 
Delphi 11 Alexandria
 
#23

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 10. Mai 2021, 16:14
Ich habe das schon vorher gemeldet (RSP-33856). Euer Gedankengang mit der TForm ist eigentlich überflüssig. Der Font wird seit jeher in der DFM gepseichert und wenn man da den Font aktualisieren will, muss das zur Runtime oder halt im der IDE manuell bei jeder Form gemacht werden. Einfach nachträglich automatisch sollte das auf keinen Fall passieren.

Es geht in meinem Fall auch garnicht um die Fromularfonts sondern und die Vorgabe bei der Erstellung eines TFont. Der sollte mit "Segoe UI 9pt" initialisiert werden und nicht mit dem veratlteten Tahoma. An dem Formular darf da nichts automatisch geändert werden, da das sonst durch den unterschiedlichen Platzbedarf, zu einem Fehlverhalten führen kann. Wenn jemand seine Anwendung auf Segoe UI umstellen will, kann er das mit dem refind.exe auf einfache Art machen.

Emba muss da lediglich dafür sorgen, dass DefFontData/Init... nicht mehr Tahoma nutzt sondern das neue Segoe UI. Weiter braucht man da nichts ändern.

Geändert von Rolf Frei (10. Mai 2021 um 16:18 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 10. Mai 2021, 16:45
Na ja, das deckt dann zwar deinen konkreten Anwendungsfall ab, aber berücksichtigt nicht die Auswirkungen an anderer Stelle. Wie schon gesagt, wenn du es ausprobieren willst, musst du nur den Registry-Eintrag entsprechend ändern. Ich habe daraufhin (wie erwartet) festgestellt, dass in einem Projekt alle neuen Forms mit Segoe UI erstellt wurden, was zu einer Inkonsistenz mit den anderen Forms der Anwendung führte. Im Falle einer Änderung in DefFontData muss das halt allen Beteiligten klar sein.

Besser wäre es meiner Meinung nach, wenn wir (wie früher) das Template für ein neues Form anpassen könnten.
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
650 Beiträge
 
Delphi 11 Alexandria
 
#25

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 10. Mai 2021, 18:20
Ja aber das ist ja nichts Neues. Früher war alles MS Sans Serif und da wurden dann irgend wann auch die neuen Formen mit Tahoma erstellt. Dazu gibt es ja das refind Tool um das relativ einfach zu ändern. Ist also nichts anderes als das was wir früher schon mal hatten. Hier muss man dann halt einfach mit der Zeit gehen. Wer seine Formen nicht mit Segoue UI will, machts sich halt eine eigegen TForm im Repository als Designvorgabe (oder gibt es das nicht mehr in neueren Delphis?). Wenn man dann "neue Form" auswählt wird diese mit den gewünschten Fonts verwendet. Ich nutzte das schon lange udn alle meine Formen bekommen so Segoe UI als Default, wenn ich eine neue Form erstelle.

Es geht bei mir nicht um einen spezifischen Fall sondern grundsätzlich darum, dass TFont nicht mit dem Standardfont erstellt wird. Die meisten Komponenten werden dann den Font eh selber setzen oder vererben, aber in meinem Fall von einer 3rd Party Komponente wurde eben nur ein TFont erstellt, ohne die Schirft zu ändern. Dadurch hatte ich in D7 dann MS Sans Serif in dieser Komponente. In neueren Delphi's ist es Tahoma. Dadurch bin ich erst auf diese Problem gestossen.

Geändert von Rolf Frei (10. Mai 2021 um 18:30 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

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

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 10. Mai 2021, 19:24
Hallo Rolf, Du hättest ja hier mal erwähnen können das Du bereits einen QP gemacht hast, auch wenn der etwas von meinem Abweicht.

Diesen Code ruf ich im FormCreate mit Self auf, alle Controls (ParentFont = True) nutzen dann das was das System hergibt solange man die Font nicht selbst eingestellt hat. Auch eine Größenanpassung wird vorgenommen.
Vielleicht hilft Dir das solange um über die Runden zu kommen bis Embarcadero was unternimmt.
Microsoft wird sicherlich nicht den HKEY ändern da die Gefahr besteht das vorhandene/alte Software damit einen defekt erleidet.
Delphi-Quellcode:
procedure ApplyFontAndScale(aForm: TForm);
var
  OldSize : Integer;
  Font : TFont;
begin
  OldSize := aForm.Font.Size;
  if Screen.MessageFont.Size <> OldSize then begin
    Font := TFont.Create;
    try
      Font.Assign(Screen.MessageFont);
      Font.Size := OldSize;
      aForm.Font := Font;
    finally
      Font.Free;
    end;
    aForm.ScaleBy(Abs(Screen.MessageFont.Size), Abs(OldSize));
  end else
    aForm.Font := Screen.MessageFont;

  if aForm.BorderStyle <> bsSizeable then begin
    if aForm.Height > Screen.WorkAreaHeight then
      aForm.ScaleBy(Screen.WorkAreaHeight, aForm.Height);
    if aForm.Width > Screen.WorkAreaWidth then
      aForm.ScaleBy(Screen.WorkAreaWidth, aForm.Width);
  end;
end;
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Rolf Frei

Registriert seit: 19. Jun 2006
650 Beiträge
 
Delphi 11 Alexandria
 
#27

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 11. Mai 2021, 14:23
Habe doch in Post #3 geschrieben, dass ich einen Report eröffnet habe.
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

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

AW: VCL.Graphics.pas DefFontData initialisierung veraltet

  Alt 11. Mai 2021, 15:16
Habe mal einen Report gemacht.
Stimmt schon, ein Link wäre für beginner wie meiner einer wäre da hilfreicher gewesen als nur diese Aussage, aber Du hast natürlich Recht "erwähnt hast Du es"
(Ich habe absolut keinerlei Erfahrung mit diesen QP Zeugs, wenn jemand einen Link posted kann ich zumindest hin hüpfen wenn mir die Topic zusagt und mit-voten)

ob es was bringt steht dann wieder auf einem anderen blatt papier hehe
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 3     123   


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 11:29 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