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!
ich habe folgendes Problem und komme nicht weiter. Ich hoffe, dass Ihr mir einen Tipp oder Ansatz geben könnt.
Wenn ich auf dem Frontpanel ein Pfadelement mit Suchschaltfläche platziere und im laufenden Betrieb auf die Suchschaltfläche klicke erscheint ein Dateidialog. Diesen möchte ich aus LabVIEW heraus beliebig verschieben bzw. den Ort an dem dieser erscheint vorher Angeben können.
Welche Möglichkeiten gibt es da? Ich habe keinen Eigenschaftsknoten gefunden der diese Möglichkeit bietet.
Ich denke der Standarddialog erscheint immer auf dem Hauptarbeitsplatz (bei mehr als einem Monitor) und dort zentriert. Wüsste jetzt auch nicht wie man das ändern könnte, außer sich selbst einen Dialog zu schreiben, den man an beliebiger Stelle aufpoppen lassen kann.
Die Frage ist dann halt nur, ob sich der (Programmier-)Aufwand lohnt... oder ob man damit leben kann.
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
@SeBa: Fast richtig. Der Dialog erscheint auf dem Monitor auf dem das FP läuft. Edit: Zentriert auf dem Bereich des FP, der sich auf dem Monitor befindet, auf welchem der "Anker" des FP gerade liegt.
@Ome: Ich denke SeBa hat recht, wenn er sagt, dass es in solch einem Fall das Beste ist, sich selbst einen Dialog als SubVI zu basteln. Das Fenster kannst du dann beliebig skalieren und verschieben. Der Aufwand lohnt sich aus meiner Sicht immer, da man sich soetwas einmal erstellt und dann in seiner Bilbliothek abspeichert um es bei Bedarf nicht nochmal erstellen zu müssen.
Du findest dazu auch diverse Beispiele hier im Forum, inkl. BeispielVI's.
' schrieb:@SeBa: Fast richtig. ... Glaub ich dir einfach mal, ohne 2ten Monitor ist das eh schwer zu beurteilen
... Der Aufwand lohnt sich aus meiner Sicht immer, da man sich soetwas einmal erstellt und dann in seiner Bilbliothek abspeichert um es bei Bedarf nicht nochmal erstellen zu müssen. ... Kommt drauf an, ob man es wirklich braucht und wie einfach/schnell man es auch selbst realisieren kann. Ein schicker Dateidialog der da aufpoppt wo man will und nicht in der Mitte des aktiven FP... wenn man zuviel Zeit auf solche Gimmicks verwendet, gibts manchmal Ärger mit dem Zeitplan. -> Bei mir würde das als Nice-2-Have ganz am Schluss kommen. Gerade weil es ja etwas ist das man 1zu1 austauschen können sollte.
Du findest dazu auch diverse Beispiele hier im Forum, inkl. BeispielVI's. ... Stimmt. Glaub letzte Woche haben wir ein Panel2Mouse VI gebastelt.
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
Das ist blöd das es nicht einfach geht Das Problem ist das es kein „nice-2-have“ ist sondern notwendig, da neben dem Dialog auch die Bildschirmtastatur zum Einsatz kommt und sich beide Fenster sonst überschneiden.
Die Bildschirmtastatur starte ich zurzeit über Systembefehl ausführen.
Ich hatte gehofft, dass mittels .net auf den Windows-Dateidialog zugegriffen werden kann, so dass ich darüber Zugriff auf den Erscheinungsort. Nur leider kenne ich mich mit .net nicht wirklich aus.
Bei .Net kann ich leider gar nicht mehr helfen... Aber wie gesagt: stöber einfach mal ein bisschen im Forum und du findest sicherlich noch das eine oder andere BeispielVI, das du herunterladen kannst.
Oder jemand von den .Net-profis hier hat da eine Idee....
Rein theoretisch weiß ich wie man die Fensterposition setzt... wie man das aber dann per .NET in LV macht...
Es gibt auch noch die Möglichkeit per user32.dll die SetWindowPos() zu benutzen, aber... wie bekommt man das WindowHandle mit LV..?
Fragen über Fragen...
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!
26.01.2010, 15:33 (Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2010 15:34 von RoLe.)
' schrieb:Es gibt auch noch die Möglichkeit per user32.dll die SetWindowPos() zu benutzen, aber... wie bekommt man das WindowHandle mit LV..?
Bei NI.COM (und vermutlich auch hier im Forum) gibt es schon lange das LVWUTIL32.
Eine Sammlung von Windows-API Funktionen, die den WindowHandle, MoveWindow usw. für LabVIEW einlesen, mit einer eigenen DLL.
Ein .NET Paket habe ich noch nicht gesehen.
Im .NET gibt es diese Funktionen sicher auch.
Nur ein Dialog (+ Dialoge vom LV-Pfadelement) und die Bildschirmtastatur sind keine "normale" Fenster, da geht das nicht so einfach, wenn überhaupt.
Ich würde das alles mit LabVIEW machen. (Dann braucht es auch das LVWUTIL32 nicht)
Mit Suchen findest du eine Bildschirmtastatur die in LabVIEW erstellt wurde und den Pfaddialog kannst du auch selber machen. Da dann alles in LV ist, ist die Positionierung der einzelnen Fenster dann einfach(er).
.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
' schrieb:Bei NI.COM (und vermutlich auch hier im Forum) gibt es schon lange das LVWUTIL32.
Stimmt. Das hab ich sogar mal runtergeladen... aber noch nie benutzt
Gruß SeBa
Dieser Beitrag soll weder nützlich, informativ noch lesbar sein.
Er erhebt lediglich den Anspruch dort wo er ungenau ist, wenigstens eindeutig ungenau zu sein.
In Fällen größerer Abweichungen ist es immer der Leser, der sich geirrt hat.
Rette einen Baum!
Diesen Beitrag nur ausdrucken, wenn unbedingt nötig!