zweiten Monitor "unkompliziert" ansprechen

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
Latze
Beiträge: 60
Registriert: Sa 4. Jul 2009, 09:11
OS, Lazarus, FPC: Win7 / Linux (Lazarus 1.4.0)
CPU-Target: 32Bit/64Bit

zweiten Monitor "unkompliziert" ansprechen

Beitrag von Latze »

Hallo,

gibt es einen Möglichkeit, einen zweiten Monitor zu nutzen, ohne vorher an Windows Einstellungen ändern zu müssen?

Hintergrund: Ich möchte ein kleines Programm schreiben, mit dem man eine Liste von Bildern, für Vorträge und ähnliches, an einen Beamer schicken kann. Es soll dabei auch ein Laie in der Lage sein, nach einer kurzen Einführung, das System zu bedienen. Also Beamer anschließen und den Rest erledigt das Programm, wenn die Bilder in der Liste sind.

Ideal wäre auch, wenn die Auflösungen unterschiedlich sein können, damit man am Rechner die gewohnte Optik hat und auf dem Beamer die ideale Auflösung nutzen kann.

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: zweiten Monitor "unkompliziert" ansprechen

Beitrag von carli »

Screen.MonitorCount,
Screen.Monitors[i].BoundsRect abfragen (oder left, top, width, height)
Und dann ein Präsentationsfenster auf den Bildschirm mit Screen.Monitors[i].Primary=false ausdehnen

MAC
Beiträge: 770
Registriert: Sa 21. Feb 2009, 13:46
OS, Lazarus, FPC: Windows 7 (L 1.3 Built 43666 FPC 2.6.2)
CPU-Target: 32Bit

Re: zweiten Monitor "unkompliziert" ansprechen

Beitrag von MAC »

ich hab zwar keine Ahnung wie mans direkt macht, aber indirekt könnte man doch die liste von Bildern in eine TImageList speichern, zuvor muss man rauskriegen was das größte bild ist und dann Imagelist.Heigh und Weight so setzen.
Dass Bild dann aus der Imagelist auf ein Image schreiben Imagelist1.GetBitmap(deinIndex,DeinImage.Picture.Bitmap);
Und beim Image kannst du ja per einstellung skalieren lassen...

Code: Alles auswählen

Signatur := nil;

Ralph59
Beiträge: 145
Registriert: So 22. Mär 2009, 07:48
OS, Lazarus, FPC: WIN 11 (momentan )
CPU-Target: 64 und 32Bit
Wohnort: Hessen
Kontaktdaten:

Re: zweiten Monitor "unkompliziert" ansprechen

Beitrag von Ralph59 »

Hallo,

was carli sagt, sollte wohl gehen, du kannst mit screen... shon sehr einfach einen bestimmten festgesetzten Monitor zuweisen,

auch sind zum Anzeigen durchaus Möglichkeiten wie die Nutzung eines einzelnen images und der Möglichkeit image.Loadfromfile und der gleichen eine Ausgabe recht einfach möglich.

So könntest du ein Verzeichis, dass vorher ausgewählt wurde automatisch nach Bildern durchsuchen und je nach Tasten oder Button Druck ein neues Bild aus dem Verzeichnis anzeigen.

Aber, das Problem wird eher sein, was passiert, wenn einer den Beamer anschließt, beim Laptop z.B. hast du immer die Möglichkeit zu wählen, ob der Monitor das selbe Bild wie dein inter Monitor sein soll Hotkey [fn]+...
Wenn Du einen Monitor an einen PC anschließt, dann ist auch nicht sicher, welche ID der Monitor bekommt, vielleicht hängen ja schon 2 Monitore am System?

Es besteht jedoch die Möglichkeit, mit (wie von carli beschrieben) Screen.MonitorCount vielleicht eine Endliche Anzahl von radioButtons aufzubauen, so dass der Benutzer über den jeweiligen RadioButton den Monitor auswählt, und du dann mit (auch wie von carli beschrieben) screen,Monitors[i] den entsprechenden Monitor auswählst.
Die Auflösung des Monitors bekommst du dann mit Screen.Monitors[i].Height und Screen.Monitors[i].Width

Bei der RadioGroup könntest du deinen eigenen Monitor auslassen mit Screen.ActiveForm.Monitor.MonitorNum, wobei dann nur noch die zusätzlichen im System vorhandenen Monitore als freie Monitore angezeigt würden.

Mit freundlichem Gruß

Ralph
Fehler sind wie Berge, man steht auf dem Gipfel seiner eigenen und redet über die der anderen.

Latze
Beiträge: 60
Registriert: Sa 4. Jul 2009, 09:11
OS, Lazarus, FPC: Win7 / Linux (Lazarus 1.4.0)
CPU-Target: 32Bit/64Bit

Re: zweiten Monitor "unkompliziert" ansprechen

Beitrag von Latze »

Danke für die Antworten,

die Bilder darstellen ist nicht das Problem, ich hatte gehofft, dass es eine Methode gibt, mit der man einheitlich den zweiten Bildschirm aktivieren und nutzen kann, ohne dass man erst den Bildschirm von Hand erweitern muss. Bei mir wird zum Beispiel nur der zweite Bildschirm durch Screen.MonitorCount nur erkannt, wenn ich vorher den Desktop erweitere.

Also vom Prinzip her: Monitor anschließen, Programm starten und die Bilderliste erstellen. Das Programm konfiguriert die Bildschirme und gibt auf dem ersten Monitor die Bilderliste mit den ganzen Optionen und auf dem zweiten Monitor das eigentliche Bild mit einem zweiten Form aus. Ich glaube aber, dass ich mir das besser abschminken kann.


Gruß
Lars
Wer glaubt, etwas zu sein, hat aufgehört, etwas zu werden.

Euklid
Lazarusforum e. V.
Beiträge: 2808
Registriert: Fr 22. Sep 2006, 10:38
OS, Lazarus, FPC: Lazarus v2.0.10, FPC 3.2.0
Wohnort: Hessen
Kontaktdaten:

Re: zweiten Monitor "unkompliziert" ansprechen

Beitrag von Euklid »

Latze hat geschrieben:die Bilder darstellen ist nicht das Problem, ich hatte gehofft, dass es eine Methode gibt, mit der man einheitlich den zweiten Bildschirm aktivieren und nutzen kann, ohne dass man erst den Bildschirm von Hand erweitern muss. Bei mir wird zum Beispiel nur der zweite Bildschirm durch Screen.MonitorCount nur erkannt, wenn ich vorher den Desktop erweitere.


Ich nehme an, hier musst Du über die Windows-API gehen - glaube kaum, dass Lazarus hier eine einheitliche Lösung anbietet. Bzgl. der API hilft Dir vielleicht diese Seite weiter: http://wiki.lazarus.freepascal.org/Windows_API_units

Alternativ findest Du vielleicht einen Konsolenbefehl, mit dem man den zweiten Bildschirm aktivieren kann. Diesen könntest Du dann von Deinem Programm aus aufrufen.

Viele Grüße, Euklid

carli
Beiträge: 657
Registriert: Sa 9. Jan 2010, 17:32
OS, Lazarus, FPC: Linux 2.6.x, SVN-Lazarus, FPC 2.4.0-2
CPU-Target: 64Bit

Re: zweiten Monitor "unkompliziert" ansprechen

Beitrag von carli »

Bisher mussten das alle Vortragshaltenden selber einstellen, dass sie den Desktop erweitern wollen. Ich kenne keinen Fall, wo das nicht vorher gemacht werden musste, um den erweiterten Desktop zu nutzen.

Latze
Beiträge: 60
Registriert: Sa 4. Jul 2009, 09:11
OS, Lazarus, FPC: Win7 / Linux (Lazarus 1.4.0)
CPU-Target: 32Bit/64Bit

Re: zweiten Monitor "unkompliziert" ansprechen

Beitrag von Latze »

Ich kenne es auch nicht aber ich denke mir, dass es unter bestimmten Umständen möglich ist sein sollte. Ist eben nur die Frage, ob die ganzen Dokus das her geben und wie sicher die Geschichte dann läuft.

Na ja, einen Versuch war es wert. ;) Danke nochmal.
Wer glaubt, etwas zu sein, hat aufgehört, etwas zu werden.

Antworten