![]() |
Wie kann mit D7 die Bildschirmauflösung ermittelt werden ?
Moin,
1.) wie kann ich mit Delphi 7.0 Prof. die Bildschirmauflösung eines oder mehrere Monitore ermitteln ? 2.) Wie kann ich mit Delphi 7.0 Prof. die Anzahl der angeschlossenen Monitore ermitteln ? Danke vorab für wertvolle Infos. Gruss, der Skatspieler |
Re: Wie kann mit D7 die Bildschirmauflösung ermittelt werden
Bei einem Monitor auf jeden Fall so:
![]() |
Re: Wie kann mit D7 die Bildschirmauflösung ermittelt werden
Schau dir Folgendes an
Delphi-Quellcode:
GetSystemMetrics()
Code:
Interessante Parameter:
SM_CXScreen SM_CYScreen SM_CMONITORS |
Re: Wie kann mit D7 die Bildschirmauflösung ermittelt werden
Moin, Moin.
Schau dir auch TScreen an, da gibt es mit Screen.WorkArea..., Screen.Monitor... etc. auch eine ganze Reihe von Informationen :wink: |
Re: Wie kann mit D7 die Bildschirmauflösung ermittelt werden
Erstmal danke für die Tipps.
Den ersten Tipp habe ich schon verwertet. Allerdings ist mein Compilat auf dem 2. Monitor plaziert, dieses gibt aber die Auflösungsdaten vom ersten Monitor zurück. Ich muss mir heute abend dazu einige Gedanken machen, wie ich den Monitorstatus (1. + 2. Monitor) abfrage bzw. feststelle. Gruss, der blaue Planet |
Re: Wie kann mit D7 die Bildschirmauflösung ermittelt werden
Siehe dazu
![]() Es gibt genug Mirror-Driver, somit nicht davon ausgehen, dass es nur Monitor 1 und 2 gibt in einem Dual Screen System. Diese können mit ![]() |
Re: Wie kann mit D7 die Bildschirmauflösung ermittelt werden
Die Beiträge von #2 - #4 haben mich schonmal ein gutes Stück weitergebracht.
Ich kann die Anzahl der Monitore ermitteln mit Screen.MonitorCount Ich kann einen Index auf die Monitor-Nr erzeugen wobei man dabei aufpassen muss dass man Monitor Nr -1 nimmt, da Zählung der Monitor Nr. ab 0 beginnt. Über den Index bekomme ich auch die verschiedenen Auflösungen und Farbtiefe der Monitore korrekt angezeigt. Soweit so gut, letztes ungelöstes Problem ist aber folgendes: Wie finde ich heraus auf welchen Monitor sich das Compilat aktuell befindet ? Das Compilat soll den aktuellen Monitor bzw. die aktuelle Monitor Nr. ermitteln. Ich könnte zwar den Umweg über Form1.Left gehen. Auf den Monitor 0 (erster Monitor) steht Left auf 1 wenn ich das Compilat dort korrekt ausrichte oder es steht, wenn ich es auf den 2. Monitor korrekt ausrichte bei -1023. Allerdings finde ich die Umrechnung mit den Left-Werten recht müssig. Ich möchte einfach, dass das Programm mir ermittelt, dass es sich auf den ersten (0+1) oder auf den zweiten Monitor (1+1) oder einem weiteren Monitor (x+1) befindet. Normalerweise müsste es doch möglich sein, den aktuellen Monitor korrekt zu indizieren und zu ermitteln. Vorschläge ? Danke vorab für eure Unterstützung. Gruss, der Skatspieler |
Re: Wie kann mit D7 die Bildschirmauflösung ermittelt werden
Eine Anwendung hiedenen fenster haben, welche sich auf verschiedenen Monitoren befinden können.
Mit Screen.MonitorFromWindow() kannst du für jedes Fenster den Monitor ermitteln |
Re: Wie kann mit D7 die Bildschirmauflösung ermittelt werden
Hallo mkinzler,
was muss ich bei deinem Beispiel in die Klammer eintragen, wenn das Fenster z. B. Form1 ist ? Ich habe aber eine andere Lösung für mein Problem gefunden. ;-) Meine Lösung sieht wie folgt aus: Wert := Screen.ActiveForm.Monitor.MonitorNum + 1; // +1 da Zählung der Monitore ab 0 beginnt ! Gruss, der Skatspieler |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:46 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