AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Workarea verändern bei mehreren Bildschirmen (AppBar)
Thema durchsuchen
Ansicht
Themen-Optionen

Workarea verändern bei mehreren Bildschirmen (AppBar)

Ein Thema von DGS · begonnen am 27. Mär 2008 · letzter Beitrag vom 27. Mär 2008
Antwort Antwort
DGS

Registriert seit: 10. Jul 2004
65 Beiträge
 
Delphi 6 Enterprise
 
#1

Workarea verändern bei mehreren Bildschirmen (AppBar)

  Alt 27. Mär 2008, 02:49
Moi.

Ich baue eine eigene AppBar. Diese soll auf meinen zweiten Monitor Platz finden.

Das Problem:
Alles, was Workarea ändert bezieht sich auf die primäranzeige.
Wie kann man es bei einem anderen Monitor einstellen?

Besonders mit
SystemParametersInfo(SPI_SETWORKAREA , 0, @r, 0); geht es nicht, da mir irgendwie die Ansteurung der Anzeige fehlt.

Leider ist
Screen.Monitors[1].WorkAreaRect Read-Only. Setzen kann ich den Wert nicht.

Gibt es was, um auf den Zweitmonitor zuzugreifen?
( nutze Delphi 6 )
Vorschläge für sinnvolle Signatur bitter per PN
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Workarea verändern bei mehreren Bildschirmen (AppBar)

  Alt 27. Mär 2008, 04:59
Hallo,

Zitat von msdn:
To change the work area of a monitor, call SystemParametersInfo with SPI_SETWORKAREA and pvParam pointing to a RECT structure that is on the desired monitor. If pvParam is NULL, the work area of the primary monitor is modified. Using SPI_GETWORKAREA always returns the work area of the primary monitor. To get the work area of a monitor other than the primary monitor, call GetMonitorInfo.
Thomas
  Mit Zitat antworten Zitat
DGS

Registriert seit: 10. Jul 2004
65 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Workarea verändern bei mehreren Bildschirmen (AppBar)

  Alt 27. Mär 2008, 12:24
Hab zwar immernoch nicht verstanden wie der die monitore dabei unterscheiden soll, werds aber versuchen.

Was mich halt störrt: im RECT speichert man ja nur die Grösse der Workarea, nicht auf welchem Bildschirm diese liegen soll.

*edit:
OK, scheinbar findet Windows dann selbstständig raus welche Anzeige gemeint ist und setzt die Workarea richtig.

Hat sich damit erledigt.
Vorschläge für sinnvolle Signatur bitter per PN
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#4

Re: Workarea verändern bei mehreren Bildschirmen (AppBar)

  Alt 27. Mär 2008, 13:09
Zitat von DGS:
*edit:
OK, scheinbar findet Windows dann selbstständig raus welche Anzeige gemeint ist und setzt die Workarea richtig.

Hat sich damit erledigt.
Hat Tom doch genau richtig zitiert und die MSDN schreibt es doch auch eindeutig:
MSDN von Tom
To change the work area of a monitor, call SystemParametersInfo with SPI_SETWORKAREA and pvParam pointing to a RECT structure that is on the desired monitor.
  Mit Zitat antworten Zitat
DGS

Registriert seit: 10. Jul 2004
65 Beiträge
 
Delphi 6 Enterprise
 
#5

Re: Workarea verändern bei mehreren Bildschirmen (AppBar)

  Alt 27. Mär 2008, 13:23
Ich wusste halt nicht dass Windows selbst rausfindet, welcher Monitor gemeint ist.

Also erst schaut der Anhand der Koordinaten nach, welche Anzeige gemeint ist und ändert dann nur für diese den Workarea, ohne die Workarea der anderen Anzeige zu beeinflußen.

ich frag mich nur was passieren würde, wenn man ein RECT so wählt, dass der über beide Bildschirme sich erstreckt.
Vorschläge für sinnvolle Signatur bitter per PN
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#6

Re: Workarea verändern bei mehreren Bildschirmen (AppBar)

  Alt 27. Mär 2008, 13:46
Zwei Möglichkeiten:

1. er gibt einen Fehler zurück (invalid parameter o.ä.)
2. er wendet das jeweilige Rechteck auf den Monitor an, auf dem der grösste Teil des Rechtecks liegt (wie bei der Funktion zur Ermittlung des Monitors auf dem das Fenster liegt. Er meldet immer den Monitor mit dem grössten Fensterteil. Sieht man auch gut in der Taskleiste, wann er wechselt).

Am besten wäre es einfach mal das ganze aus zu probieren.
  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:49 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