AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TEdit default Height 23 - Delphi 11

Ein Thema von lxo · begonnen am 20. Okt 2021 · letzter Beitrag vom 21. Okt 2021
Antwort Antwort
Seite 1 von 2  1 2      
lxo

Registriert seit: 30. Nov 2017
288 Beiträge
 
Delphi 12 Athens
 
#1

TEdit default Height 23 - Delphi 11

  Alt 20. Okt 2021, 15:54
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.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: TEdit default Height 23 - Delphi 11

  Alt 20. Okt 2021, 15:59
Könnte am geänderten Default-Font liegen: Segoe UI 9pt
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
lxo

Registriert seit: 30. Nov 2017
288 Beiträge
 
Delphi 12 Athens
 
#3

AW: TEdit default Height 23 - Delphi 11

  Alt 20. Okt 2021, 16:09
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?
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: TEdit default Height 23 - Delphi 11

  Alt 20. Okt 2021, 16:23
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.
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
44.080 Beiträge
 
Delphi 12 Athens
 
#5

AW: TEdit default Height 23 - Delphi 11

  Alt 20. Okt 2021, 16:38
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;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (20. Okt 2021 um 16:41 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: TEdit default Height 23 - Delphi 11

  Alt 20. Okt 2021, 18:10
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.
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
44.080 Beiträge
 
Delphi 12 Athens
 
#7

AW: TEdit default Height 23 - Delphi 11

  Alt 20. Okt 2021, 19:47
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).
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: TEdit default Height 23 - Delphi 11

  Alt 21. Okt 2021, 07:48
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.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
lxo

Registriert seit: 30. Nov 2017
288 Beiträge
 
Delphi 12 Athens
 
#9

AW: TEdit default Height 23 - Delphi 11

  Alt 21. Okt 2021, 08:26
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.


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.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: TEdit default Height 23 - Delphi 11

  Alt 21. Okt 2021, 08:32
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
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:37 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