Bildschirmauflösung des Monitors mit der Hauptarbeitsfläche
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Bildschirmauflösung des Monitors mit der Hauptarbeitsfläche
Hallo,
zum Thema Bildschirmauflösung ist hier ja schon so einiges gepostet worden.
Leider konnte ich mein Problem noch nicht lösen.
Meine Applikation soll auf fremden PCs laufen mit mir unbekannten Bildschirmauflösungen.
Die Anzeige soll bildschirmfüllend sein (d.h. auch die Taskleiste überdecken). Ausblenden möchte
ich die Taskleiste jedoch nicht, da ich keine Eigenschaften des PCs manipulieren möchte (der
Nutzer soll über die Windows-Taste immer die Möglichkeit haben, ein anderes Programm in den
Vordergrund zu holen und meine Applikation zu minimieren).
Nun lese ich die Größe der Hauptarbeitsfläche aus, die jedoch nicht der Größe des Bildschirms entspricht,
sondern bereits um die Taskleiste (Größe unbekannt) subtrahiert wurde. Lese ich die Bildschirmauflösung aller
Monitore aus, weiß ich nicht, welche dieser Auflösungen zu dem Hauptmonitor gehört, auf dem
meine Applikation angezeigt wird. Ich bräuchte also eine Zuordnung, welche Auflösung
zu dem Hauptmonitor gehört, um dann entsprechend die Größe des Frontpanels bildschirmfüllend einzustellen
und ggfs. Scrollleisten einzublenden.
Ich hoffe, ihr könnt mir helfen.
Vielen Dank.
08.04.2014, 14:41 (Dieser Beitrag wurde zuletzt bearbeitet: 08.04.2014 14:42 von GerdW.)
RE: Bildschirmauflösung des Monitors mit der Hauptarbeitsfläche
Hallo ahe,
Zitat:Nun lese ich die Größe der Hauptarbeitsfläche aus, die jedoch nicht der Größe des Bildschirms entspricht, sondern bereits um die Taskleiste (Größe unbekannt) subtrahiert wurde. Lese ich die Bildschirmauflösung aller Monitore aus, weiß ich nicht, welche dieser Auflösungen zu dem Hauptmonitor gehört, auf dem meine Applikation angezeigt wird. Ich bräuchte also eine Zuordnung, welche Auflösung zu dem Hauptmonitor gehört, um dann entsprechend die Größe des Frontpanels bildschirmfüllend einzustellen und ggfs. Scrollleisten einzublenden.
Du kannst sowohl die Hauptarbeitsfläche bestimmen als auch die Monitorauflösung. Du musst dir also nur eine kleine Routine programmieren, die die Monitorauflösung bestimmt, die nur geringfügig größer als die Hauptarbeitsfläche ist!
Sowohl in X- als auch Y-Richtung kann man heute doch bestimmte Auflösungen voraussetzen: typische Angaben wären also 720, 768, 800, 900, 1024, 1080, 1280, 1440, 1600, 1920…
P.S.: Lass doch mal die unnötigen Zeilenumbrüche weg…
RE: Bildschirmauflösung des Monitors mit der Hauptarbeitsfläche
In einem Punkt widersprichst du dir:
Du willst programmatisch nichts an den Einstellungen der Task-Leiste ändern. Dein Main-VI soll aber den gesamten Bildschirm (inkl. Taskleiste) ausfüllen. Was machst du jetzt, wenn der User die Taskleiste immer im Vordergrund hält (Standardeinstellung)? Ein Teil deines VI ist also immer verdeckt.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
RE: Bildschirmauflösung des Monitors mit der Hauptarbeitsfläche
Ich muss mich mal in diese Thema mit einklinken, weil ich vor nahezu dem gleichen Problem stehe ^^
Nachdem mein Datenlogger astrein funktioniert, hat mich der Ehrgeiz gepackt
Mein VI soll (wenn es irgenwann mal fertig ist) auf einem PC gestartet werden und über 2 Monitore angezeigt werden. Einer ist direkt am PC angeschlossen (1024x768) und ein weiterer hängt in einem Netzwerk mit unbekannter Auflösung (dabei handelt es sich um einen Monitor mit PC-Einschub, also hat er wohl eine eigene Inteligenz).
Jetzt probiere ich erstmal das Frontpanel so zu gestalten, das auf jedem Monitor die Anzeige des FP angepasst wird. Also Bildschirmfüllend und die Elemente sollen an die gegebene Auflösung angepasst werden.
Ich weiß nicht ob es verständlich ist, was ich mir da zusammen geschrieben habe, aber ich hoffe doch es kann mir jemand helfen.
Zumindest soweit, das wenn ich den Monitor am PC ersetze (beispielsweise durch einen mit Full-HD) die Anzeige weiterhin passend ist.
Oder gibt es Probleme wenn von 4:3 auf 16:9 umgestellt wird?
Ich hab auch nur die Studentenversion, weshalb ich leider auch keine EXE mehr compilieren kann.
In den VI-Einstellungen evtl. ein Fehler?
Ich hab den ersten Entwurf mal angehängt. Ich hoffe wirklich auf eure Kompetenz
RE: Bildschirmauflösung des Monitors mit der Hauptarbeitsfläche
Hallo Wolf,
für einen Monitor mit nur 1024×768 Pixel ist dein VI (bzw. dessen FP) aber ziemlich groß…
- Es reicht nicht aus, nur die FP-Größe anzupassen.
- Tipp: Ich lege den FP-Origin immer in die linke obere Ecke, das hilft ungemein bei späteren Berechnungen der Bildschirmposition. Und es gibt eine PropertyNode dafür…
- Tipp: Man kann FP-Elemente an die Bildschirmgröße (besser: Pane-Größe) angepasst skalieren lassen. Wenn man das global einstellt, sieht es fast immer schei*e aus…
- Tipp: Man erstellt einzelne Panes mit Splitterbars. Den einzelnen Panes dann gezielt Skalierungswünsche mitgeben. Im Extremfall einzelne FP-Elemente pro Pane…
- Tipp: Es gibt AppNotes bei NI zum Einsatz von Panes/Splitterbars. Diese und die LV-Hilfe lesen…
RE: Bildschirmauflösung des Monitors mit der Hauptarbeitsfläche
Das ging ja schnell.
Das Fp ist deshalb so groß, weil ich es auf dem Laptop in 1920x1080 gestaltet habe, da siehts eigentlich ganz gut aus.
Nur auf anderen Monitoren mehr als bescheiden, bzw. ist nicht alles sichtbar, es wird dann rechts und links abgeschnitten einfach.
Den Origin nach links oben zu verschieben macht Sinn. (Warum bin ich nicht selber drauf gekommen?! )
Zu deinen anderen Tipps:
Anzeige
16.04.2014, 07:50 (Dieser Beitrag wurde zuletzt bearbeitet: 16.04.2014 07:52 von GerdW.)
RE: Bildschirmauflösung des Monitors mit der Hauptarbeitsfläche
Hallo Wolf,
wenn du die Zielgröße des FP kennst (hier 1024×768), dann solltest du das VI auch in dieser Größe erstellen!
Tipp:
- In den VI-Eigenschaften die minimale FP-Größe auf 1000×750 einstellen (dies dürfte dann inkl. Fensterrahmen gut auf diesen Mini-Monitor passen). Dann kann man das FP-Fenster immer auf die Zielgröße zusammenschieben und weiß sofort, wie es auf dem Zielsystem aussehen wird…
Zu den anderen Tipps und deinem Bahnhof: LV-Hilfe lesen! Stichworte: Panel, Panes, SplitterBars… (Hilfe->Building the FP->How-To…)
RE: Bildschirmauflösung des Monitors mit der Hauptarbeitsfläche
Zitat:Zu den anderen Tipps und deinem Bahnhof: LV-Hilfe lesen! Stichworte: Panel, Panes, SplitterBars… (Hilfe->Building the FP->How-To…)
Ich weiß schon was du damit meintest, aber alles neue Begriffe. Da muss ich erstmal hinterkommen was das alles so kann...
Der Tipp mit der minimalen FP-Größe ist gut, ABER dann bin ich ja nur auf dem einen Zielsystem. Was ist wenn ich die Ansicht parallel auf einem 2. Monitor sehen will der eine andere Auflösunng hat?!Dazu müsste ich ja irgendwie erreichen, das sich das alles anpasst... Ich lese und probier nochmal ein bisschen rum... danke!
27.04.2014, 19:14 (Dieser Beitrag wurde zuletzt bearbeitet: 28.04.2014 07:06 von Lucki.)
RE: Bildschirmauflösung des Monitors mit der Hauptarbeitsfläche
(16.04.2014 07:35 )WeisserWolf1185 schrieb: In den VI-Einstellungen evtl. ein Fehler?
Habe das VI auch mal laufen lassen. Was mir auffällt: In den VI-Eigenschaften hast du konfiguriert: "Fensterposition bei Ausführung - maximal". Was Du aber mit den Eigenschaftsknoten programmiert hast, ist exakt das Gleiche noch mal, also überflüssig.
Die Veränderung der FP-Größe ist nicht unkritisch, wie bereits von den anderen gesagt. Wenn die Elemente mit skaliert werden, gibt es häufig Disproportionen, und das Allerschlimmste ist, dass das beim Schließen des Programms nicht immer exakt rückgäng gemacht wird. Das z.B habe ich selbst erlebt: Bei mehrmaligen Öffnen und Schließen des Programms bewegen sich einige Elemente immer um einige Pixel, so daß sie sich bei mehrmaligen Öffnen und Schließen von ihrer ursprünglichen Position immer weiter entfernen. Wenn Du also solche Experimente machst: Das Wichtigste ist, vorher das Original-VI an einer anderen Stelle gespeichert zu haben. Ein anderes Problem ist, dass, wenn die Elemente vergrößert werden, die zugehörigen Schiften, wie überhaupt alle Schriften, nicht mitvergrößert werden.
Das Perfide an der Element-Bewegung war auch: Das FP, bei dem das passierte, war dicht mit Elementen vollgepackt. Bei einer einfacheren Demo, mit der ich mich an die Hotline von NI hätte wenden wollen, trat es hingegen nicht auf.
Das empfohlene Gruppieren von Elementen hilft auch nur bedingt weiter: Man kann nur gleichrangige Elemente gruppieren, nicht aber z.B die Elemente eines Clusters mit dem Cluster selbst.