Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   VCL.Graphics.pas DefFontData initialisierung veraltet (https://www.delphipraxis.net/207763-vcl-graphics-pas-deffontdata-initialisierung-veraltet.html)

KodeZwerg 9. Mai 2021 16:09

AW: VCL.Graphics.pas DefFontData initialisierung veraltet
 
Zitat:

Zitat von TurboMagic (Beitrag 1488950)
Hallo CodeZwerg,

Wenn ich sowas kann, kannst du das bestimmt auch ;-)

Hallo DurboMagic!

Was muss ins Feld Summary rein?

KodeZwerg 9. Mai 2021 16:22

AW: VCL.Graphics.pas DefFontData initialisierung veraltet
 
https://quality.embarcadero.com/browse/RSP-33937 Ich hoffe ich habe alles richtig gemacht. (Da könnt Ihr voten)

Rolf Frei 10. Mai 2021 15:14

AW: VCL.Graphics.pas DefFontData initialisierung veraltet
 
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.

Uwe Raabe 10. Mai 2021 15:45

AW: VCL.Graphics.pas DefFontData initialisierung veraltet
 
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.

Rolf Frei 10. Mai 2021 17:20

AW: VCL.Graphics.pas DefFontData initialisierung veraltet
 
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.

KodeZwerg 10. Mai 2021 18:24

AW: VCL.Graphics.pas DefFontData initialisierung veraltet
 
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;

Rolf Frei 11. Mai 2021 13:23

AW: VCL.Graphics.pas DefFontData initialisierung veraltet
 
Habe doch in Post #3 geschrieben, dass ich einen Report eröffnet habe. :wink:

KodeZwerg 11. Mai 2021 14:16

AW: VCL.Graphics.pas DefFontData initialisierung veraltet
 
Zitat:

Zitat von Rolf Frei (Beitrag 1488311)
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


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:33 Uhr.
Seite 3 von 3     123   

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