Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Screen.width ist ungleich der Breite der Bildschirm-Auflösung (https://www.delphipraxis.net/211143-screen-width-ist-ungleich-der-breite-der-bildschirm-aufloesung.html)

JanWe 2. Aug 2022 22:49

Delphi-Version: 5

Screen.width ist ungleich der Breite der Bildschirm-Auflösung
 
Liste der Anhänge anzeigen (Anzahl: 2)
^^ height auch.
_______________________________________
doch der Reihe nach:

Hi,

ich hoffe, es wird nicht an Delphi 5 liegen.
Ich versteh gerade die Welt nicht mehr.

Meine Software: Win 10, Delphi 5 Std.

Bisher hab ich sonst immer die Bildschirmauflösung an meinem Laptop mit screen.height und screen.width ermittelt. (z.B. um Programme Fullscreen laufen zu lassen - Absolute Werte hab ich mir dabei nie notiert.)

Da gab es, meine ich nie Probleme.
Bilder wurden z.B. immer maximal angezeigt, wenn ich die image.width und .height am Screen.w/h orientiert/übernommen hab.


Bsp: (Original-Code) In der Form1.Create setze ich 2 Variablen mit den Screenwerten und die Größe der Form auf die Bildschirmwerte.
Delphi-Quellcode:
Screw := screen.Width;
Screh := screen.height;
BorderStyle := bsNone;
left := 0;
Top := 0 ;
Width:= Screen.Width;
Height := Screen.Height;
Wie ich das bisher immer gemacht habe.
Allerdings meldet screen mir 1536 x 864. (also Screw -> 1536 und Screh erhält 864) - wird beim Drüberfahren angezeigt und auch als Wert z.B. über clipboard ausgegeben.

Mach ich aber einen Screenshot mit nem Screenshotprogramm zeigt der 1920x1080.
(ich war zwar eigentlich der Meinung, damals nur 1600x800 eingestellt zu haben (weil mir das, was die Grafikkarte beim Laptop-Kauf auf dem kleinen 15" Bildschirm mal angezeigt hatte, zu schlecht zu erkennen war - ich hab die Icons und Programme kaum erkannt, der Mausweg war ewig. ... - vielleicht war das aber auch unter Win7 und unter Win10 hab ich nun ne höhere Auflösung - ich nehm jetzt mal an, die 1920x1080 stimmen)

Da ich seit Ewigkeiten, seit der Windows 10 Installation letztes Jahr nichts mehr verstellt habe, weiß ich auch gerade nicht, wo ich unter Windows die aktuelle Auflösung nachschauen könnte - die Suche bringt nichts.
unter nVidia-Einstlellungen find ich nur 3D, aber nix zur Auflösung. Bin grad etwas in Panik. Das muß man doch irgendwo finden können??? :D.


Also halte ich mich jetzt mal einfach an die Screenshots anderer Programme. Die 1920x1080 sollten stimmen.

Aber ich frage mich, wie Delphi auf ne Breite von 1536 px kommt.
OK, bei Form1.width - würd ich ja verstehen, daß der Wert schwankt, wenn ich die mit Boderstyle := bs_single in der Größe verschieben und ziehen würde.
Aber screen müßte doch den unverbiegbaren, realen Wert (1920x1080) angeben.

Bin ich denn doof?
Oder hab ich was übersehen?
oder ist Delphi 5 zu alt? Kann doch nich sein, oder?

Hab Euch 2 Screenshots hochgeladen.
Einmal von Firefox und der Seite hier (138 KB)
und einmal ein von der Form, den Delphi selbst von sich gemacht (10 KB) hat. (mache ich einen Screenshot von der Delphi Form (laufendes Programm, Taste "F9") mit einem anderen Screenshotprogramm, hat der natürlich 1920x1080; - [nicht hochgeladen])

Uwe Raabe 3. Aug 2022 08:40

AW: Screen.width ist ungleich der Breite der Bildschirm-Auflösung
 
Dein System hat offenbar eine Skalierung von 125%. Nachzusehen über das Kontextmenü des Desktops unter Anzeigeeinstellungen. Dort findest du übrigens auch die Bildschirmgröße.

Die 125% bewirken, dass Anwendungen, die kein High-DPI unterstützen (und Delphi 5 Programme gehören selbstverständlich dazu, weil Delphi 5 unabhängig von diesem Effekt ganz sicher viel zu alt ist - egal wofür), vom Betriebssystem vergrößert dargestellt werden und deswegen ihnen eine kleinere Größe vorgegaukelt wird.

SteffenSchm 3. Aug 2022 08:53

AW: Screen.width ist ungleich der Breite der Bildschirm-Auflösung
 
Ich denke mal für den Bildschirm ist eine Skalierung von 125 % eingestellt. 125% würde zumindest genau zu Deinen unterschiedlichen Pixelzahlen passen.
Ich hatte an anderer Stelle auch gerade Probleme, wenn die Skalierung <> 100% ist.

Ich wurde durch ein Telefonat abgehalten. Inzwischen hat Uwe Raabe das ja auch schon geschrieben!

dummzeuch 3. Aug 2022 13:07

AW: Screen.width ist ungleich der Breite der Bildschirm-Auflösung
 
Nur so zur Ergänzung: Die Einstellungen findet man unter Windows 10 mit Rechtsklick auf den Desktop-Hintergrund und dann "Display Settings" bzw. "Anzeigeeinstellungen". Also eigentlich wie schon bei Windows XP. Der Dialog sieht allerdings deutlich anders aus.

TurboMagic 3. Aug 2022 21:32

AW: Screen.width ist ungleich der Breite der Bildschirm-Auflösung
 
Bleibt trotzdem noch die Frage, ob man nicht Mal auf eine neuere Delphi Version wechseln könnte...

himitsu 3. Aug 2022 21:45

AW: Screen.width ist ungleich der Breite der Bildschirm-Auflösung
 
Zitat:

Zitat von dummzeuch (Beitrag 1509695)
Die Einstellungen findet man unter Windows 10 mit Rechtsklick auf den Desktop-Hintergrund und dann "Display Settings" bzw. "Anzeigeeinstellungen".

Wenn du via RDP auf Windows drauf bist, dann fehlen da viele Einstellungen/Anzeigen,

aber es versteckt sich dann auch ein "Erweiterte Einstellungen"-Link, in welchem sich eine disablete ComboBox befndet, worin das Display-Format sich versteckt.



Alternativ guckt man wie die RDP-Einstellungen sind und bei Vollbild, schaut man dann noch in die Anzeigeeinstellungen des lokalen Monitors.


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:44 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