Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Bildschirmskalierung ermitteln und setzen (https://www.delphipraxis.net/22094-bildschirmskalierung-ermitteln-und-setzen.html)

runger 12. Mai 2004 11:13


Bildschirmskalierung ermitteln und setzen
 
Hallo,

weiss jemand wie man die Bildschirmskalierung ermittelt und ändert ( unter Delphi)?
Gemeint ist: Eigenschaften von Anzeige-->Einstellungen-->Erweitert-->Allgemein-->
Anzeige.
96 dpi ist der Defaultwert. Wenn aber jemand Andere wählt und z.B. 125% anwählt stimmt die ganze Geometrie der Delphi-Programme nicht mehr!
Oder wenns schon aus Delphi heraus nicht auf einfachem Weg geht, gibts vielleicht eine Komponente die das kann?
Für VB gibts das.

Vielen Dank im Vorraus
Rainer Unger

kiar 12. Mai 2004 11:27

Re: Bildschirmskalierung ermitteln und setzen
 
hallo rainer,

meinst du so etwas
http://www.delphipraxis.net/internal...ght=formcreate

raik

runger 12. Mai 2004 13:00

Re: Bildschirmskalierung ermitteln und setzen
 
Hallo,

vielen Dank für deinen Beitrag. Aber das hilft mir überhaupt nicht weiter. Die Funktion ScaleBy(3,4) die in dem Beitrag benutzt wird, wirkt sich nicht auf alle untergeordneten Objekte aus.
Ausserdem müsste ich, wenn ich diese nutzen wollte ja wissen dass die Skalierung geändert wurde.

Trotzdem vielen Dank
Rainer Unger

kiar 14. Mai 2004 20:13

Re: Bildschirmskalierung ermitteln und setzen
 
hallo rainer ,

habe was gefunden:
Delphi-Quellcode:
private// im Interface
    FAnpassen :Boolean ;
    Ffont : integer;
    procedure PasseAn;
dann in der implementation:
Delphi-Quellcode:
procedure Tfrm_Main.FormCreate(Sender: TObject);
begin
    FAnpassen    := true;
    FFont        := 96;
    Scaled       := true;
end;

procedure Tfrm_Main.FormShow(Sender: TObject);
begin
     PasseAn;
end;

procedure Tfrm_Main.PasseAn;
begin
   if FAnpassen then
     begin
       PixelsPerInch := Screen.PixelsPerInch;
       If PixelsPerInch <> FFont then
          begin
             width := LongInt(Width * PixelsPerInch) div FFont;
             height:= Longint(height* PixelsPerInch) div FFont;
          end;
       FAnpassen := false;
     end;
end;
funktioniert prima

raik


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz