AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi 2. Monitor ansteuern
Thema durchsuchen
Ansicht
Themen-Optionen

2. Monitor ansteuern

Ein Thema von brucki_it8 · begonnen am 16. Nov 2004 · letzter Beitrag vom 31. Okt 2007
Antwort Antwort
brucki_it8

Registriert seit: 16. Nov 2004
2 Beiträge
 
#1

2. Monitor ansteuern

  Alt 16. Nov 2004, 12:51
Hallo,

habe eine Matrox G450 Dual-Head Grafikkarte und kann damit unter Win2000 auch eine Mehrfachanzeige einrichten, d. h. ich sehe auf dem (normalen) Monitor die linke Hälfte des Desktops und auf einem TV, der über Scart/Composite an den 2. Ausgang der Grafikkarte angeschlossen ist, die rechte Hälfte. In Delphi (6) liefert mir der Aufruf Screen.MonitorCount aber immer den Wert 1.

Eigentlich möchte ich, dass der Desktop usw. ganz normal (also nicht nur die linke Hälfte) auf dem 1. Monitor angezeigt wird und nur bestimmte Formulare auf dem 2. Monitor bzw. TV. Ist das in Delphi möglich und wie?

MfG

brucki_it8
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#2

Re: 2. Monitor ansteuern

  Alt 16. Nov 2004, 12:56
Du hast nämlich nur einen Monitor.
Der erstreckt sich halt über beide Bildschirme. Das ist IMHO der große Nachteil der Matrox-Lösung für mehrere Monitore.
  Mit Zitat antworten Zitat
brucki_it8

Registriert seit: 16. Nov 2004
2 Beiträge
 
#3

Re: 2. Monitor ansteuern

  Alt 18. Nov 2004, 22:02
Hallo,

das Thema hat sich erledigt. Man muss in der Dual-Head Einstellung bei den Eigenschaften für die Mehrfachanzeige "getrennte Auflösungen und Farbpaletten für beide Anzeigen" wählen (man kann später dann trotzdem die gleiche Auflösung und Farbzahl für den 2. Monitor einstellen falls benötigt). Nur dann sieht man (nach Neustart) in den Einstellungen der Anzeige-Eigenschaften zusätzliche Optionen, die man wählen kann, z. B. die Anordnung der beiden Monitore (horizontal oder vertikal) und "Windows-Desktop auf dem 2. Monitor erweitern". Wenn man letztere Option aktiviert, erhält man das gewünschte Ergebnis: Der Windows-Desktop bleibt wie gewohnt auf dem 1. Monitor, und wenn man die Maus über dessen rechten Bildschirmrand (bei entsprechender horizontaler Anordung der Monitore) bewegt, erscheint sie auf dem 2. Bildschirm. Dann erhält man in Delphi mit "Screen.MonitorCount" auch den Wert 2 und kann Formulare mit "Left := Screen.Monitors[1].Left" gezielt auf dem 2. Monitor anzeigen.
Es ist also kein Nachteil der Matrox-Lösung für mehrere Monitore, sondern man muss nur die richtigen Einstellungen vornehmen!
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#4

Re: 2. Monitor ansteuern

  Alt 18. Nov 2004, 22:15
jep diesen hurt hab ich auch auf unserem 4fach matrox system gehabt

man kann die verwaltung durch windoof ( normal ) lassen, dann hat man 4 monis
oder halt schon von der hardware aus ( wohl nur bei matrox ) einen riesigen monitor mit riesiger auflösung ( 4 x 1024 z.b. brei ) dem windows zur verfügung stellen

falls es die grafikkarte macht, hat man dann noch diese effekte:

das hintergrundbild erstreckt sich komplett von links bis rechts und es wird nicht auf jedem display das bild getrennt und neu angezeigt (logisch ist ja auch ein einziger breiter screen)

und 2. hat man die taskleiste auch so breit kann evtl ein wenig schlecht für die benutzung sein wenn man 4 monitore hat ( meine wenigkeit @ work )

ausserdem kann man eine reihenfolgen änderung oder positionsänderung oder auch unterschiedliche auflösungen nur mit der windows verwaltung herzaubern
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Robert_G
(Gast)

n/a Beiträge
 
#5

Re: 2. Monitor ansteuern

  Alt 18. Nov 2004, 22:15
Hoi, das klingt doch gut.
Ich hatte mal auf Arbeit eine G550, die ließ sich nicht dazu überreden als 2 GraKas gelistet zu werden bzw. 2 "richtige" Monitore anzusteuern.
Ich dachte, die 450'er hätte das gleiche Problem, wenn nicht steht einem 3. dritten Moni nix im Wege (die 450'er gibt's ja auch als PCI )

btw: die Bildschärfe bei Matrox ist echt genial, nur die mangelnde 3D-Leistung steht einer Matrox als Pirimäre GraKa im Wege.
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#6

Re: 2. Monitor ansteuern

  Alt 18. Nov 2004, 22:26
bei den neueren G440 usw hat man im 3D bereich mehr leistung als bei den 200ern
wir haben im geschäft alle sorten..
ich hab die G200 mit 4 monis und da kannste unreal turnament (1 classic) fast nicht zocken
auf der neuen 400er mit 4 TFTs DVI ausgang kannste das ultra flüssig zocken

aber ich denke wenn man so ein multimonitor system sein eigen nennt, dann macht man auch primär keine spiele, oder man hat das ensprechende equippment für CAD oderso

ich hab zuhause 2x dual monitor betrieb ohne matrox ( alles DVI )
bin super zufrieden da ich für den primären monitor immer eine aktuelle AGP geforce hab und für den rest billige PCI DVI karten
( gibts ja auch gforce karten mit DVI und PCI )

bei DVI ists ja eh egal was man für nen hersteller nimmt für die karte.. weils ja sowieso im digitalen transfer keine DA oder AD wandler gibt, wo die graka scharf sein muss.

hab sogar bei den alten matrox G200 eher das problem das mir die 2D beschleunigung sehr sehr hinterher hinkt.. übles fenster ruckeln beim verschieben usw.. da ist ne billige gforce mit DVI um längen vorzuziehen..
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
BlueEarl

Registriert seit: 30. Okt 2007
2 Beiträge
 
#7

Re: 2. Monitor ansteuern

  Alt 31. Okt 2007, 00:19
Guten Abend alle miteinander.

Echt cooles Forum habt ihr hier, wäre ich nur früher darauf gestoßen. ^^

Na ja, zu meinem Problem. Hab zwar etwas herumgestöbert, aber (noch) keine handfesten Lösungsansätze gefunden.

Aufbau/Konzept:

Von einem Rechner aus werden 2 bzw. 4 LCD-Monitore über HDMI bzw DVI abgesteuert. Beim Setup wird auch alles ordnungsgemäß eingestellt, Desktop auf 2./3./4. Monitor erweitern, Monitore nebeneinander anordnen, Frequenz einstellen usw., Programm (in Delphi7 geschrieben) plaziert seine Objekte auch akurat auf allen Monitoren, paßt alles wunderbar. Und in der Regel läuft das System auch (theoretisch) bis alle Ewigkeiten.

Problem:

1) Manchmal kommt es vor, daß der Kunde einen der Monitore ausschaltet / nach dem PC einschaltet / HDMI/DVI-Kabel im laufenden Betrieb absteckt oder umsteckt oder weiß der Geier was noch alles gemacht wird. Auf jeden Fall verliert Windows den entsprechenden Monitor, und man muß manuell wieder den Desktop erweitern (meistens reicht das alleine schon aus, aber eben nicht immer). Schlimmstenfalls muß neu gestartet werden (wenn z.B. der Monitor nicht angeschlossen war beim Systemstart, dann hat man gar nicht die Option zum Desktop erweitern.

2) Auf der Messe ist ein anderes Problem aufgetreten. Es wurde ein LCD-Monitor mit 2 HDMI-Eingängen von zwei verschiedenen Rechnern angesteuert. Den HDMI-Eingang kann man mit der Fernbedienung umschalten. Umschalten von Eingang A auf Eingang B funktionert, PC-Bild wird angezeigt, zurückschalten auf Eingang A bringt blauen Bildschirm (= kein Eingang). Schaue ich mir in Rechner A die Systemstreuerung an, steht unter Monitor "Plug&Play Monitor (Getrennt)". Bisher haben wir hier neu gestartet, weiß noch nicht, ob das Gerät deaktivieren und wieder aktivieren da Abhilfe schafft.



Was ich brauche sind nach Möglichkeit automatisierte Erkennung von Monitoren samt deren Auflösung, Positioniereungen und Frequenzen, vorallem aber die Möglichkeit die oben genannten getrennten/verlorenen Monitore wieder einzubinden, am besten ohne Neustart.

Aktueller Stand meines Wissens:

Screen.MonitorCount
> gibt mir die Anzahl der aktiven Monitore zurück
>> ist für mein Problem wunderbar geeignet

Screen.Monitor[x].Bla
> Vermutlich Position vom x. Monitor bezogen auf linke obere Ecke des 0. Monitors
>> werde ich morgen nochmal testen, u.a. ob man die Position einfach so verändern kann

procedure für Auflösung und Frequenz von Daniel B
>> Muß ich mir auch noch genauer anschauen, vorallem weil ich gezielt einen Monitor umstellen können will (bzw. alle Monitore gleichzeitig, haben alle dieselben Werte bis auf die Positionierung)

(Erkennung und) Aktivierung eines Monitors durch Windows
>> Bisher noch kein Ansatz


Wäre echt Klasse, wenn sich hier ein Lösungsweg finden ließe.
Fremdprogramme (also praktisch alles außer Delphi) sind eher weniger erwünscht, mein Bruder hat zwar in AutoIt was programmiert, das will der Chef aber nicht haben.

Schon mal vielen Dank im Voraus für eure Antworten und nachträglich für die Antworten, die ich hier schon gefunden habe.




P.S.: Der Chef hat demnächst ein System mit 8 Monitoren in Planung, sollte also (wenn überhaupt) nach Möglichkeit nicht ein Neustart pro Monitor werden. ^^

P.P.S.: Im Laufe der Zeit hat sich bei mir eine recht stattliche procedure- und function-Sammlung angehäuft, wie z.B. eine allgemeine, try-except-gekapselte Laderoutine für Stringlisten. Viele Funktionen sind "gewachsen" und insofern nicht optimal aufgebaut, manche habe ich sogar doppelt drin (unter anderen Namen), müßte ich noch bereinigen und dokumentieren *würg*. Aber mal gemäß dem Fall, daß ich das alles hinter mir habe, wie und wo könnte ich dieses denn online stellen? Ist noch keine DLL sondern ein einfaches DataModule-Unit.

[edit]
P.P.P.S.: Sehe grad, daß ich das hier als Reply gepostet habe. Es fällt ja auch unter den Titel, von daher wollte ich keinen eigenen Beitrag aufmachen. Bin ein Freund von eher wenigen Beiträgen.
[/edit]
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#8

Re: 2. Monitor ansteuern

  Alt 31. Okt 2007, 01:08
Hallo und herzlich Willkommen in der DP!

Zu den Boardregeln gehört es u.a. zu jeder Frage einen eigenen Beitrag aufzumachen, damit die anderen durch die Suche auch entsprechend die dazu interessanten Beiträg finden.

Zu der Aktivierung/Deaktivierung: Grundsätzlich hängt ein Neustart etc von Windows/dem Treiber ab, ob er dieses braucht und erzwingt oder nicht.

Und wenn beim Hochfahren etc der Monitor nicht angeschlossen war oder er abgezogen war bzw. ein KVM Switch ihn nicht am Rechner hatte, dann schlägt der DDC Kanal entsprechend fehl und die Folge ist ein Plug-n-Pray Monitoreintrag. Dieses Verhalten ist vollkommen normal und lässt sich nur durch KVMs in der entsprechenden Preisklasse beheben, welche die DDC Daten kopieren, speichern und zurückliefern.

Zum aktivieren/deaktivieren der Monitore mal ein Thread
  Mit Zitat antworten Zitat
BlueEarl

Registriert seit: 30. Okt 2007
2 Beiträge
 
#9

Re: 2. Monitor ansteuern

  Alt 31. Okt 2007, 11:56
Zitat von Muetze1:
Hallo und herzlich Willkommen in der DP!
Danke schön.

Zitat von Muetze1:
Zu den Boardregeln gehört es u.a. zu jeder Frage einen eigenen Beitrag aufzumachen, damit die anderen durch die Suche auch entsprechend die dazu interessanten Beiträg finden.
Ok, sorry, hatte gestern Abend nicht mehr den Nerv mir noch die Regeln durchzulesen, hole ich aber noch nach. Soll ich mit dem Thema jetzt noch einen eigenen Beitrag aufmachen? Obwohl dein Link ja meine Frage zur Gänze zu beantworten scheint...

Zitat von Muetze1:
Zu der Aktivierung/Deaktivierung: Grundsätzlich hängt ein Neustart etc von Windows/dem Treiber ab, ob er dieses braucht und erzwingt oder nicht.

Und wenn beim Hochfahren etc der Monitor nicht angeschlossen war oder er abgezogen war bzw. ein KVM Switch ihn nicht am Rechner hatte, dann schlägt der DDC Kanal entsprechend fehl und die Folge ist ein Plug-n-Pray Monitoreintrag. Dieses Verhalten ist vollkommen normal und lässt sich nur durch KVMs in der entsprechenden Preisklasse beheben, welche die DDC Daten kopieren, speichern und zurückliefern.
Ein KVM-Switch hängt nicht dazwischen. Die Grafikkarte (GeForce 8600) hat 2 DVI-Ausgänge, danach kommt Kabel und dann auch schon ein Monitor. Betriebssystem ist Windows XP, das Motherboard unterstützt 2 (P5N-E SLI) bzw. 4 (weiß ich jetzt leider nicht mehr auswendig was das war, trage ich aber noch nach) PCI-E Grafikkarten. Aktueller Stand ist, wenn ich einen (sekundären) Monitor nach Systemstart anstöpsle muß ich den Rechner neu starten damit ich ihn aktivieren kann. Darum werde ich vermutlich nicht herum kommen, muß ich mir eben noch einen Mechanismus überlegen damit ich nicht in einer Dauer-Neustartschleife hänge falls mal ein Fehler auftritt.

Wenn der Monitor (eigentlich ein 42-Zoll-Fernseher) beim Systemstart schon dran hängt und richtig erkannt wird, wird er auch als Plug&Play erkannt.

Eine Frage hätte ich noch, was ist ein DDC-Kanal? Kommunikationsschiene zwischen System und Monitor?

Zitat von Muetze1:
Zum aktivieren/deaktivieren der Monitore mal ein Thread
Klasse, vielen herzlichen Dank, das sieht schon mal gut aus, werde ich gleich mal testen. Kann allerdings etwas dauern, bis ich soweit bin, muß mich noch erst in die Struktur reinarbeiten, in der Gegend bin ich (noch) nicht so fit.

Muß mal schauen, ob das auch bei Problem 2 hilft. ^^
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#10

Re: 2. Monitor ansteuern

  Alt 31. Okt 2007, 13:18
Zitat von BlueEarl:
Soll ich mit dem Thema jetzt noch einen eigenen Beitrag aufmachen? Obwohl dein Link ja meine Frage zur Gänze zu beantworten scheint...
Das Hauptthema passt hier rein, aber du hattest ja noch Fragen die eher ein neues Thema waren. Aber wenn die Frage sich hiermit schon grösstenteils klärt, wird dies auch nicht mehr nötig sein...

Zitat von BlueEarl:
Aktueller Stand ist, wenn ich einen (sekundären) Monitor nach Systemstart anstöpsle muß ich den Rechner neu starten damit ich ihn aktivieren kann.
Das ist normales Treiberverhalten. Der Treiber versucht über DDC herauszufinden, ob ein Monitor angeschlossen ist am sekundären Ausgang (primärer geht er standardmässig von aus). Dies macht er beim initialisieren des Grafikkartentreibers und von daher deaktiviert er den zweiten Ausgang meistens. Gleiches gilt ja auch für TV Out, etc. Manche Grafikkartentreiber bieten mit ihren mitgelieferten Einstellungs-Centern die Möglichkeit nachträglich zu definieren: "Schau nochmal nach" oder auch "da ist einer".

Zitat von BlueEarl:
Eine Frage hätte ich noch, was ist ein DDC-Kanal? Kommunikationsschiene zwischen System und Monitor?
Display Data Channel. Ja, es ist die Kommunikationsschnittstelle von GraKa und Monitor. Darüber kann der Monitor seinen Namen, Typ, Bildschirmfrequenzen etc mitteilen.
  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 18:52 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