Hallo Rolf.
Quote by rh
with Delphi I have two values to be considered
tScreen.DesktopLeft (top)
tScreen.WorkAreaLeft (top)
Which one is the right one?
I don't have any idea because I don't have a dual screen...
Irgendwie hatten wir dieses Thema doch schon mal
Ich habe gerade mal schnell ein kleines Tool geschrieben (natürlich in Delphi), das die beiden Werte
anzeigt. Da ich normalerweise immer mit einem 2fach oder 3fach Screen arbeite bin ich schon sehr oft über diese Probleme gestoßen.
Das Tool zeigt euch an wie euer System den Dual-Screen verwaltet, das ist nicht immer gleich!!!
Wenn XP den DUAL-Screen steuert, gibt der Screen.Desktop... die komplette Breite an....
Sprich bei einem Desktop mit 2x Monitor a 768x1024 erhälst Du bei Deskstop:
768 x 2048 (eben den kompletten Bereich, also sollte man dann auch den "Left-Wert" von dem Screen.DesktopLeft nehmen! Bei 3 x Monitor a 768 x 1024 hast Du dann schon 3072 pixel.
Dagegen ist die "Workarea" eben egal ob 1, 2 oder 3 Monitore immer nur 768x1024!
Es sei denn Du hast wie ich eine Schnellstartleiste von 45pixel links angedockt, das wird dann bei dem
Wert im Workarea abgezogen, aber nicht bei dem Desktop-Werten, diese sind immer für alle Monitore auf dem Desktop!
Aber jetzt kommt noch was ganz gemeines
In einer Terminalsession und bei vielen Grafikkartentreibern, steuert der Treiber das selbst
Dann ist die Workarea (abzügl. der Schnellstartleisten usw.) immer genauso breit wie der Desktopwert!
Kann man einfach austesten mit dem Tool von mir oder man merkt es schon beim Doppelklick auf dem oberen Fensterrahmen. Vergrößert er nur das Fenster auf den aktiven Monitor, dann steuert meist Windows das Dual-System, springt er mit dem Fenster über alle Monitore ist es eine Terminalsession (RDP) oder der Grafikkartentreiber steuert den Screen.
Ich hoffe ich hab da ein bissle Licht ins Dunkle gebracht, ich vertausche das auch immer wieder
Sorry, das ich es nicht ins Englische übersetzt habe (hatte keine Zeit dazu).
Gruß
Thorsten