===== CpScreen.Top ===== Ab Version 3.1.1 build 390 ist in Cockpit-XP die Option integriert, gezielt Informationen über die angeschlossenen Anzeigen an einem Multi-Monitor System abzufragen. Diese lassen sich anschließend nutzen, um Elemente vom Typ TForm nicht nur auf dem Hauptmonitor anzuzeigen. Angenommen, am Rennbahnrechner sind 3 Monitore angeschlossen. Einer liefert eine FullHD-Auflösung (1920 x 1080 px), ein weiterer hat eine Auflösung von 1024 x 768 px und Monitor Nummer 3 löst mit 1280 x 1024 px auf. In Windows sind die 3 Geräte als erweiterter Desktop konfiguriert. Die Monitore sind nebeneinander angeordnet. Sie zeigen also nicht alle das gleiche Bild sondern der Desktop dehnt sich über die gesamte Breite alle Monitore aus. Die Gesamtbreite dieser Konfiguration beträgt 1.920 + 1.024 + 1.280 = 4.224 Pixel. Die Gesamthöhe beträgt 1.080 Pixel. Hier gibt die größte Anzeige das Maß vor. \\ ==== Syntax ==== ^ Befehl | CpScreen.Top | ^ Funktion | Liefert die obere Position des gewählten Monitors im gesamten Bereich eines erweiterten Desktops in Pixel | ^ Typ | Integer | ^ ab | **//3.1.1 build 390//** | \\ ===== Codebeispiel ===== \\ Dieses Beispiel schließt alle Befehle des CpScreen-Objektes ein und ist daher bei allen Befehlen gleich. \\ const CrLf = Chr(13) + Chr(10) var monitor : Integer; msg : String; begin // Variable initialisieren msg := ''; // Systeminformationen abfragen msg := 'Anzahl Monitore: ' + IntToStr(CpScreen.ScreenCount) + CrLf + 'Desktop Breite: ' + IntToStr(CpScreen.DesktopWidth) + ' px' + CrLf + 'Desktop Höhe: ' + IntToStr(CpScreen.DesktopHeight) + ' px' + CrLf; // Systeminformationen als Meldung cpShowMessage(msg); // Variable neu initialisieren msg := '' + '--------------' + CrLf; // Details für alle am System vorhandenen Monitore abfragen for monitor := 0 to CpScreen.ScreenCount - 1 do begin // Monitor einstellen CpScreen.SelectScreen := monitor; // Meldung generieren msg := 'Monitor Nr: ' + IntToStr(monitor) + CrLf + '--------------' + CrLf + 'Name: ' + CpScreen.Name + CrLf + 'Tag: ' + IntToStr(CpScreen.Tag) + CrLf + 'Links: ' + IntToStr(CpScreen.Left) + CrLf + 'Oben: ' + IntToStr(CpScreen.Top) + CrLf + 'Breite: ' + IntToStr(CpScreen.Width) + CrLf + 'Höhe: ' + IntToStr(CpScreen.Height) + CrLf + '--------------' + CrLf ; end; // Meldung anzeigen cpShowMessage(msg); end. \\ Im ersten Teil fragt der Code erst einmal die Anzahl angeschlossener Monitore ab und liefert dann Gesamtbreite und -höhe des Windows Desktops. Das Resultat erscheint als Meldung. {{ :cockpit-xp:addon:befehlsreferenz:cpwiki-cpscreen-monitorinfos-alle.png?nolink |}} Vergleicht man die Anzahl der Monitore, die der Befehl [[:cockpit-xp:addon:befehlsreferenz:screencount|CpScreen.ScreenCount]] liefert mit dem Ergebnis, welches [[:cockpit-xp:addon:befehlsreferenz:cpcountofmonitor|cpCountOfMonitor]] ausgibt, wundert man sich im ersten Moment, denn man erhält eine Differenz von einem Monitor! [[:cockpit-xp:addon:befehlsreferenz:cpcountofmonitor|cpCountOfMonitor]] liefert als Ergebnis die Anzahl der angeschlossenen Zusatzmonitore, die im ''ConfigCenter -> Basis Einstellungen -> Allgemein'' konfiguriert sind. Der Hauptmonitor wird unterschlagen. Im nächsten Schritt fragt der Code die Detailinformationen für jeden einzelnen der angeschlossenen Monitore ab. Wichtig: der Index der Auflistung beginn mit dem Wert ''0''. Aus diesem Grund muss für die Schleife die Anzahl der ermittelten Monitore um den Wert ''-1'' verringert werden. An dem hier getesteten System befindet sich aktuell nur ein Monitor mit FullHD-Auflösung. Die linke obere Ecke befindet sich an Position 0, 0 px. Breite und Höhe sind 1920 x 1080 px. {{ :cockpit-xp:addon:befehlsreferenz:cpwiki-cpscreen-datenmonitor-0.png?nolink |}} \\ So sieht es zu Hause an meiner Rennbahn aus. 1 Hauptmonitor mit FullHD und 6 kleine USB-Monitore mit je 800 x 480 px. Sie Log-Datei sieht dann so aus. {{ :cockpit-xp:addon:befehlsreferenz:cpwiki-cpscreen-lps-log.png?nolink |}} \\ ---- [[cockpit-xp:start|Start]] - [[cockpit-xp:faq|FAQ]] - [[cockpit-xp:glossar|Glossar]] - [[cockpit-xp:sitemap|Sitemap]] - [[cockpit-xp:impressum|Impressum]]