Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   TEdit default Height 23 - Delphi 11 (https://www.delphipraxis.net/209063-tedit-default-height-23-delphi-11-a.html)

lxo 20. Okt 2021 14:54

TEdit default Height 23 - Delphi 11
 
Hallo zusammen,

mir ist aufgefallen das mit Delphi 11, einige Komponenten in der Höhe angepasst werden.
Bei Delphi 10.4 hatte ein TEdit, dass ich frisch auf die Form setze Height := 21, mit Delphi 11 Height := 23.

An sich noch nicht problematisch, das blöde ist nur das auch alle bisherigen .DFMs andauernd angepasst werden, wenn ich eine Form aus meinem Projekt öffne werden diese alle mit Height 23 statt 21 geladen.

Liegt das an der Skalierung?
Kann man das um-/einstellen?

Hab auch schon mit Delphi DPI Unaware gestartet, gleiches Verhalten.

Uwe Raabe 20. Okt 2021 14:59

AW: TEdit default Height 23 - Delphi 11
 
Könnte am geänderten Default-Font liegen: Segoe UI 9pt

lxo 20. Okt 2021 15:09

AW: TEdit default Height 23 - Delphi 11
 
Zitat:

Zitat von Uwe Raabe (Beitrag 1496338)
Könnte am geänderten Default-Font liegen: Segoe UI 9pt

Ja scheint so, wenn ich die Form auf Font-Size 8 stelle ist es wieder nur auf 21.
Kann man die Default-Font ändern?

Uwe Raabe 20. Okt 2021 15:23

AW: TEdit default Height 23 - Delphi 11
 
Zitat:

Zitat von lxo (Beitrag 1496341)
Kann man die Default-Font ändern?

Nicht mit den verfügbaren Mitteln. Würde ich auch von abraten, denn wer weiß was das für Auswirkungen hat. Wird ja auch von der IDE selbst verwendet, nicht nur für deine Forms.

Du kannst aber natürlich in jedem Form einen anderen Font einstellen. Das wirkt dann auf alles was ParentFont = True hat.

himitsu 20. Okt 2021 15:38

AW: TEdit default Height 23 - Delphi 11
 
Für VCL und FMX gibt es ja zentrale stelleb, wo sowas vorgegeben wird.

Da kann man sich beim Start reinhängen
oder später nochmal (bevor die jeweilige Form/Komponente geladen wurde).

Delphi-Quellcode:
//unit Vcl.Graphics;

var
  // New TFont instances are intialized with the values in this structure:
  DefFontData: TFontData = (
    Handle: 0;
    Height: 0;
    Orientation: 0; { No rotation }
    Pitch: fpDefault;
    Style: [];
    Charset : DEFAULT_CHARSET;
    Name: 'Segoe UI');

procedure InitDefFontData;
const
  sFontSubstitutes = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\FontSubstitutes'; { do not localize }
var
  Reg: TRegistry;
  Name: string;
begin
  if TOSVersion.Check(6) then
  begin
    DefFontData.Height := -MulDiv(9, ScreenLogPixels, 72);
    DefFontData.Name := 'Segoe UI';
    Exit;
  end;

  DefFontData.Height := -MulDiv(8, ScreenLogPixels, 72);
  if (Win32Platform = VER_PLATFORM_WIN32_WINDOWS) and (GetDefFontCharset = SHIFTJIS_CHARSET) then
    Name := 'Tahoma';
  Reg := TRegistry.Create;
  try
    Reg.RootKey := HKEY_LOCAL_MACHINE;
    if Reg.OpenKeyReadOnly(sFontSubstitutes) then { do not localize }
    begin
      Name := Reg.ReadString('MS Shell Dlg 2'); { do not localize }
      Reg.CloseKey;
    end;
  finally
    Reg.Free;
  end;
  if Name <> '' then
    DefFontData.Name := UTF8EncodeToShortString(Name);
end;
Delphi-Quellcode:
//unit FMX.Platform.Metrics.Win;

function TWinMetricsServices.GetDefaultFontFamilyName: string;
var
  NonClientMetrics: TNonClientMetrics;
begin
  if FDefaultFontFamilyName.IsEmpty then
  begin
    NonClientMetrics.cbSize := SizeOf(TNonClientMetrics);
    if SystemParametersInfo(SPI_GETNONCLIENTMETRICS, SizeOf(TNonClientMetrics), @NonClientMetrics, 0) then
      FDefaultFontFamilyName := NonClientMetrics.lfMessageFont.lfFaceName
    else if TOSVersion.Check(6) then
      FDefaultFontFamilyName := 'Segoe UI'
    else
      FDefaultFontFamilyName := 'Tahoma';
  end;

  Result := FDefaultFontFamilyName;
end;

function TWinMetricsServices.GetDefaultFontSize: Single;
begin
  Result := DefaultFontSize;
end;

Uwe Raabe 20. Okt 2021 17:10

AW: TEdit default Height 23 - Delphi 11
 
Zitat:

Zitat von himitsu (Beitrag 1496343)
Für VCL und FMX gibt es ja zentrale stelleb, wo sowas vorgegeben wird.

Da kann man sich beim Start reinhängen

Das mag zur Laufzeit sinnvoll sein, aber der Font eines neuen Forms wird im Designer gesetzt und den kann man dort auch ändern. Dann ist es zur Laufzeit egal wie der Default-Font dort aussieht.

himitsu 20. Okt 2021 18:47

AW: TEdit default Height 23 - Delphi 11
 
Och, wir haben in der Firma (fast) alle Komponenten abgeleitet
und auch die Forms sind vererbt.

Da braucht man dann auch nur an einer Stelle die Defaults anpassen und es ist überall in den Projekten (EXEn/DLLs/BPLs).

Bernhard Geyer 21. Okt 2021 06:48

AW: TEdit default Height 23 - Delphi 11
 
Zitat:

Zitat von lxo (Beitrag 1496341)
Zitat:

Zitat von Uwe Raabe (Beitrag 1496338)
Könnte am geänderten Default-Font liegen: Segoe UI 9pt

Ja scheint so, wenn ich die Form auf Font-Size 8 stelle ist es wieder nur auf 21.
Kann man die Default-Font ändern?

Seit Vista ist aber die Schriftgröße 9pt Standard.
Es wäre Zeit einfach die ganze Anwendung darauf umzustellen.
Passt dann von der Schriftgröße besser zum Rest-Windows.

lxo 21. Okt 2021 07:26

AW: TEdit default Height 23 - Delphi 11
 
Zitat:

Zitat von himitsu (Beitrag 1496362)
Och, wir haben in der Firma (fast) alle Komponenten abgeleitet
und auch die Forms sind vererbt.

Da braucht man dann auch nur an einer Stelle die Defaults anpassen und es ist überall in den Projekten (EXEn/DLLs/BPLs).

Danke für den Tipp, wir haben auch ein Standardform, da die Schriftgröße nun auf 8 gestellt und alles gut.


Zitat:

Zitat von Bernhard Geyer (Beitrag 1496371)
Seit Vista ist aber die Schriftgröße 9pt Standard.
Es wäre Zeit einfach die ganze Anwendung darauf umzustellen.
Passt dann von der Schriftgröße besser zum Rest-Windows.

Problem ist, wir haben ein Haufen an Forms die alle mit Tahoma 8pt designed wurden.
Dadurch das jetzt aber alle Controls mit Segoe UI 9pt geladen werden, müssten alle Forms angepasst werden.
Da sich ja nur die Controls mit Font vergrößern, die anderen aber nicht.
Font.Name kann sowieso der User frei wählen und Font.Size wird über interne Anzeigegröße/Skalierung geregelt.
Mir war nur wichtig, dass es im Designer aussieht wie vorher ohne das wir alle Formulare anpassen müssen.

Bernhard Geyer 21. Okt 2021 07:32

AW: TEdit default Height 23 - Delphi 11
 
Zitat:

Zitat von lxo (Beitrag 1496374)
Problem ist, wir haben ein Haufen an Forms die alle mit Tahoma 8pt designed wurden.
Dadurch das jetzt aber alle Controls mit Segoe UI 9pt geladen werden, müssten alle Forms angepasst werden.
Da sich ja nur die Controls mit Font vergrößern, die anderen aber nicht.
Font.Name kann sowieso der User frei wählen und Font.Size wird über interne Anzeigegröße/Skalierung geregelt.
Mir war nur wichtig, dass es im Designer aussieht wie vorher ohne das wir alle Formulare anpassen müssen.

Wir haben auch ein Haufen Formulare. Aber irgendwann muss man sich diesem Thema mal stellen.
Es wird nicht weg gehen, sondern bleiben


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:13 Uhr.
Seite 1 von 2  1 2      

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