Entwickler-Ecke

Sonstiges (Delphi) - Zwischen zwei Monitoren "umschalten"


Tarry - Mo 28.01.08 22:47
Titel: Zwischen zwei Monitoren "umschalten"
Hallo,
ich suche für mein Pixeltestprogramm ---> hier [http://www.delphi-forum.de/topic_Pixeltest+und+reparatur_80256.html]
nach einer Möglichkeit zwischen zwei Monitoren umzuschalten, also ne Art Radiobox in der ich dann während der Laufzeit zwischen den beiden Monitoren wechseln kann.

Gruß
Tarry


alias5000 - Mo 28.01.08 22:52

Ja, wenn du dir über Screen.Monitors einfach die Koordinaten der Bildschirme holst?


Tarry - Mo 28.01.08 23:01

user profile iconalias5000 hat folgendes geschrieben:
Ja, wenn du dir über Screen.Monitors einfach die Koordinaten der Bildschirme holst?


Das scheint die richtige funktion zu sein, danke ;)
Aber wie wechsel ich jetzt mit meiner Form auf Screen 2?
und wo sehe ich wie viele Bildschirme installiert sind?

Gtuß
Tarry


alias5000 - Mo 28.01.08 23:14

Schau dich dazu einfachmal in der Klasse TScreen um. Delphi Hilfe/Code Insight.

Gruß
alias5000


Xentar - Mo 28.01.08 23:15

user profile iconTarry hat folgendes geschrieben:
user profile iconalias5000 hat folgendes geschrieben:
Ja, wenn du dir über Screen.Monitors einfach die Koordinaten der Bildschirme holst?


Das scheint die richtige funktion zu sein, danke ;)
Aber wie wechsel ich jetzt mit meiner Form auf Screen 2?
und wo sehe ich wie viele Bildschirme installiert sind?

Gtuß
Tarry


zur 1. Frage: Einfach die Form.Left und Form.Top auf den anderen Bildschirm verschieben ;)

2. Frage:
Hm.. Gibts nicht Screen.Count oder Screen.Monitors.Count oder sowas?


delphi10 - Di 29.01.08 02:07

Hallo

So hab ich es gemacht:

Quelltext
1:
2:
If Screen.MonitorCount > 1 then
MakeFullyVisible(Screen.Monitors[Monitor*]);

*)
Monitor = 0 = linker
Monitor = 1 = rechter Monitor
Jenachdem wie man die Kabel angeschlossen hat.

Ich muss jetzt schlafen
Gruss Delphi10


Tarry - Di 29.01.08 14:29

user profile icondelphi10 hat folgendes geschrieben:
Hallo

So hab ich es gemacht:

Quelltext
1:
2:
If Screen.MonitorCount > 1 then
MakeFullyVisible(Screen.Monitors[Monitor*]);

*)
Monitor = 0 = linker
Monitor = 1 = rechter Monitor
Jenachdem wie man die Kabel angeschlossen hat.

Ich muss jetzt schlafen
Gruss Delphi10


Danke ;), scheint zu funzen, werde es gleich mal einbauen.

Gruß
Tarry


Kroko - Di 29.01.08 14:34

lasse aber den/die Monitor/e auswählen, bei mir steht zBsp: ein TFT- neben einem Röhrenbildschirm, :shock:


Kroko - Di 29.01.08 14:37

lasse aber den/die Monitor/e auswählen, bei mir steht zBsp: ein TFT- neben einem Röhrenbildschirm, :shock: ,
rechts , links, oben und uten haben nichts mit dem Kabel gemein, sondern wie man es in Windoofs festgelegt hat!


Tarry - Di 29.01.08 14:41

user profile iconKroko hat folgendes geschrieben:
lasse aber den/die Monitor/e auswählen, bei mir steht zBsp: ein TFT- neben einem Röhrenbildschirm, :shock: ,
rechts , links, oben und uten haben nichts mit dem Kabel gemein, sondern wie man es in Windoofs festgelegt hat!


Jo, es geht ja nur darum den Bildschirm manuell wechseln zu können.
Ist halt nen Pixeltestprogramm und sollte daher auch auf beide Monitore anwendbar sein ;)

Tarry

PS: Also wer zwei Monitore hat ---> Bitte mal mein Prog testen, ich kanns leider nicht :(


Xentar - Di 29.01.08 14:56

user profile iconTarry hat folgendes geschrieben:
user profile iconKroko hat folgendes geschrieben:
lasse aber den/die Monitor/e auswählen, bei mir steht zBsp: ein TFT- neben einem Röhrenbildschirm, :shock: ,
rechts , links, oben und uten haben nichts mit dem Kabel gemein, sondern wie man es in Windoofs festgelegt hat!


Jo, es geht ja nur darum den Bildschirm manuell wechseln zu können.
Ist halt nen Pixeltestprogramm und sollte daher auch auf beide Monitore anwendbar sein ;)

Tarry

PS: Also wer zwei Monitore hat ---> Bitte mal mein Prog testen, ich kanns leider nicht :(


Tuts noch nicht..
Hab hier zwei Monitore - deine Anwendung wird aber nur auf dem Hauptbildschirm angezeigt.

Ich kann damit aber generell keine Anwendungen maximiert über beiede Bildschirme anzeigen (brauch ich auch nicht), kann also damit zusammenhängen.


Kroko - Di 29.01.08 15:01

bei mir klappt es M1 liegt links M2 rechts!


Xentar - Di 29.01.08 15:08

Wie hast du die denn eingestellt?

Hab bei mir Monitor 1 rechts, Monitor 2 (primär) links, und das ganze über den NVidia Treiber als "DualView" laufen.
Vielleicht hat es auch was damit zu tun, dass die Monitore hier unterschiedliche Auflösungen haben?

Ansonsten ein Vorschlag von mir, wie man das "Problem" umgehen könnte:
Mach ein frei verschiebbares Start-Formular. Dieses schiebt man sich auf den Monitor, den man teesten möchte, klickt dann auf Start, und dann geht das eigentliche Testform auf (Position = OwnerFormCenter).


Kroko - Di 29.01.08 15:10

user profile iconXentar hat folgendes geschrieben:
Wie hast du die denn eingestellt?

H...

Von links nach rechts!
Wie schreibst Du denn?


zuma - Di 29.01.08 15:20

klappt bei mir auch, nur wenn ich auf den 2ten Monitor umschalte, werden die Labels nicht mehr angezeigt (auch nach erneutem Klick im Popupmenu nicht) ...
somit kann man nur gucken, aber nicht reparieren, farbe wechseln, etc


Xentar - Di 29.01.08 15:48

user profile iconKroko hat folgendes geschrieben:
user profile iconXentar hat folgendes geschrieben:
Wie hast du die denn eingestellt?

H...

Von links nach rechts!
Wie schreibst Du denn?

Auch von links nach rechts ;)

Hab mir grad mal den Thread über das Programm angesehen, und dabei etwas von einem Menüpunkt zum Umschalten des Monitors gelesen.
Sorry, ich dachte, die Software soll direkt beim Start auf allen Monitoren angezeigt werden - Denkfehler / nicht gelesen.

Neues Problem:
Ich hab Monitor 2 als primären.
Wenn ich die Anwendung starte, ist aber zuerst M1 angeklickt (obwohl die Anwendung auf M2 läuft)

Ist nicht wirklich schlimm, aber wollts mal erwähnen.


Tarry - Di 29.01.08 16:18

user profile iconXentar hat folgendes geschrieben:
user profile iconKroko hat folgendes geschrieben:
user profile iconXentar hat folgendes geschrieben:
Wie hast du die denn eingestellt?

H...

Von links nach rechts!
Wie schreibst Du denn?

Auch von links nach rechts ;)

Hab mir grad mal den Thread über das Programm angesehen, und dabei etwas von einem Menüpunkt zum Umschalten des Monitors gelesen.
Sorry, ich dachte, die Software soll direkt beim Start auf allen Monitoren angezeigt werden - Denkfehler / nicht gelesen.

Neues Problem:
Ich hab Monitor 2 als primären.
Wenn ich die Anwendung starte, ist aber zuerst M1 angeklickt (obwohl die Anwendung auf M2 läuft)

Ist nicht wirklich schlimm, aber wollts mal erwähnen.



Ja, das weiß ich auch noch nicht, wie ich das beheben kann...
Gibt es eine Möglichkeit die Nummer des Primär Monitors herauszufinden?

EDIT: Habs mit "if Screen.Monitors[1].Primary" lösen können.


Das Problem mit den Labels bei verschiedenen Auflösung müsste in der neuen Version behoben sein (Vers. 1.2.5.0).


Gruß
Tarry