AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Vertikalen Monitor-Versatz ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Vertikalen Monitor-Versatz ermitteln

Ein Thema von blackfin · begonnen am 23. Mai 2010 · letzter Beitrag vom 23. Mai 2010
Antwort Antwort
blackfin
(Gast)

n/a Beiträge
 
#1

Vertikalen Monitor-Versatz ermitteln

  Alt 23. Mai 2010, 14:33
Hallo Experten,

ich suche schon eine Weile eine Möglichkeit, den vertikalen Versatz eines angeschlossenenen Monitors per Code zu ermitteln.

Grund:
Ich habe zwei Monitore an meinem PC, einen Hauptmonitor mit der Auflösung 1680x1050 und einen zweiten Touchscreen links daneben mit 1920x1080.
(links deswegen, weil ich Linkshänder bin und so besser mit dem Ding umgehen kann ).
Der zweite, grössere ist aber über die Bildschirm-Einstellungen (absichtlich) vertikal nach unten verschoben, um beim Fenster-Verschieben zwischen
den beiden Monitoren einen nicht so grossen Versatz zu erhalten (aufgrund der Auflösungs-Differenz und der unterschiedlichen Stellhöhe der Monitore).

Nun habe ich damit aber ein Problem: Die Position 0 auf dem Desktop bezieht sich auf den Hauptmonitor und ist beim zweiten Monitor im negativen Bereich.
Wenn ich nun ein Fenster der Breite 800 auf den zweiten Monitor mit MoveWindow auf X,Y (-800,0) positioniere, ist das Fenster in der Höhe nicht ganz sichtbar, da die kleinste Y-Koordinate des zweiten Monitors nicht 0 ist, sondern negativ dem Versatz entspricht, den man in den Bildschirm-Auflösungen eingestellt hat.
Der X-Wert stimmt. (Die X-Koorinaten liegen beim linken Monitor ja auch im negativen Bereich, aber da gibt es keinen Versatz und es ist leicht zu ermitteln)

Gibt es eine Möglichkeit in Delphi, den vertikalen Versatz des Monitors zu ermitteln, um die Fensterpositionen korrekt anzupassen?
Ich habe das richtige wohl noch nicht ergooglen können


P.S.:
Ich habe meine Monitor-Einstellungen mal als Screenshot zur Verdeutlichung angehängt.

Edit: Logik-Fehler in der Beschreibung korrigiert

grüssle,

Fin
Miniaturansicht angehängter Grafiken
monitor_res_win7_395.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

Re: Vertikalen Monitor-Versatz ermitteln

  Alt 23. Mai 2010, 14:58
In Delphi gibt es TMonitor und dazu passend eine fertige Instanz "Monitors" in der Instanz Screen (von TScreen) in der Unit Forms.

Delphi-Quellcode:
Screen.MonitorCount
Screen.Monitors[i].Top
Über Top, Left und Co. kommst du nun an die Positionen ran.
$2B or not $2B
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#3

Re: Vertikalen Monitor-Versatz ermitteln

  Alt 23. Mai 2010, 15:08
Was??? So einfach....?
Ohmann...ich bin ein Blindfisch! Schande über mich
Manchmal ist es echt dumm, wenn man im MSDN rumsucht, ohne zuerst das einfach Zeugs von Delphi zu benutzen...

Danke!!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

Re: Vertikalen Monitor-Versatz ermitteln

  Alt 23. Mai 2010, 15:17
Nja, das MSDN hätte im Endefekt auch irgendwann geholfen (TMonitor nutzt diese ja auch)

PS: Wenn ich mich nicht Irre, dann gibt es irgendwo auch sowas wie ein MoveToMonitor.
$2B or not $2B
  Mit Zitat antworten Zitat
blackfin
(Gast)

n/a Beiträge
 
#5

Re: Vertikalen Monitor-Versatz ermitteln

  Alt 23. Mai 2010, 15:33
Naja, was soll ich sagen...es gibt wohl Tage, da sieht man die Funktion vor lauter Hilfen nicht...
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:31 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