Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#18

AW: Formulargröße auf HighDPI-Monitor speichern

  Alt 6. Apr 2019, 17:44
Leider kenne ich mich mit C++ kein bisschen aus. Deswegen sagen mir weder diese Funktionen was noch die Variablen.
Na dann..
Delphi-Quellcode:
function dpi(nPix: Integer): Integer; (oder(LongInt ))
var
  ratio: Single;
  DC: HDC;
begin

  if (ratio = 0) then
  begin
    DC := GetDC(0);
    ratio := (GetDeviceCaps(DC, LOGPIXELSX) / 96.0);
    ReleaseDC(0, hDC);
  end;
  result := nPix * ratio;
end;
 ratio: Single;

global definieren.
Dafür brauche ich nicht mal ein Manifest.. muss halt nur drauf achten das ich jedes Control durch diese Funktion jage.

Zitat:
Du berechnest
l1 := 96/144*1575 = 1050
OH schreck das macht doch die Funktion GetDeviceCaps da muss man nichts berechnen.
GetDC(0) ist das DC des Desktop.
Von der Auflösung des Desktop wird dann über GetDeviceCaps(GetDeviceCaps(DC, LOGPIXELSX)) die DPI zurückgegeben.
Diese noch durch 96.0 teilen und fertig.

gruss

Geändert von EWeiss ( 6. Apr 2019 um 17:59 Uhr)
  Mit Zitat antworten Zitat