17.10.2011, 08:34
|
Frank M-F
LVF-Gelegenheitsschreiber
Beiträge: 55
Registriert seit: Oct 2011
2011
2011
DE
|
RE: Dialog nur auf einem Reiter
Die Lösung 2 habe ich dann wohl nicht ganz verstanden
Du meinst ich sammel alle Fehler an einer Stelle, und sorge dafür, dass der Dialog aus Unterprogramm 3 nur aufploppt wenn ich mich auf Registerkarte 3 befinde?
Wenn er dann aber aufgeploppt ist, muss ich den ja auch quittieren sonst bevor ich wieder einer andere Aktion ausführen kann.
Ich will aber weiterhin auf den Unterpanels von Programmen bei denen keine Fehler aufgetreten ist Events auslösen können - und den Dialog von Unterpanel 3 ignorieren können.
|
|
|
17.10.2011, 08:38
(Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2011 08:39 von GerdW.)
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Dialog nur auf einem Reiter
Hallo Frank,
Zitat:Ich will aber weiterhin auf den Unterpanels von Programmen bei denen keine Fehler aufgetreten ist Events auslösen können
Kurze Wiederholung meiner Antwort von Beitrag#10:
Zitat:Lösung 2, bei der du die Fehleranzeige nicht modal machst?
Zitat:Ich will aber weiterhin auf den Unterpanels von Programmen bei denen keine Fehler aufgetreten ist Events auslösen können - und den Dialog von Unterpanel 3 ignorieren können.
???
Da sollen "Dialoge" nur aufpoppen, wenn der zugehörige Tab angewählt ist. Du willst aber auch bei angezeigtem "Dialog" die Tabs umschalten können? Und was soll passieren, wenn auf dem neu gewählten Tab neue (oder auch alte, noch nicht quittierte) Fehlermeldungen anstehen?
Vielleicht solltest du dein gesamtes Fehlerhandling überdenken? Oder noch deutlicher und klarer formulieren?
|
|
|
17.10.2011, 08:48
(Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2011 08:52 von rolfk.)
|
rolfk
LVF-Guru
Beiträge: 2.305
Registriert seit: Jun 2007
alle seit 6.0
1992
EN
2901GG
Niederlande
|
RE: Dialog nur auf einem Reiter
(17.10.2011 08:34 )Frank M-F schrieb: Die Lösung 2 habe ich dann wohl nicht ganz verstanden
Du meinst ich sammel alle Fehler an einer Stelle, und sorge dafür, dass der Dialog aus Unterprogramm 3 nur aufploppt wenn ich mich auf Registerkarte 3 befinde?
Wenn er dann aber aufgeploppt ist, muss ich den ja auch quittieren sonst bevor ich wieder einer andere Aktion ausführen kann.
Ich will aber weiterhin auf den Unterpanels von Programmen bei denen keine Fehler aufgetreten ist Events auslösen können - und den Dialog von Unterpanel 3 ignorieren können.
Du rennst Dich da in irgendwas rein ohne wirklich gut nachzudenken. Definitionsgemäss ist ein Dialog ein Dialog, der den Benützer zur Interaktion zwingt bevor er weitermachen kann. Ansonsten ist es kein Dialog sondern allenfalls ein Floater. Alles in LabVIEW machbar aber was Du da so beschreibst, auch wenns noch nicht ganz deutlich ist, artet in eine Orgie von Unterpanels und Floatern, die alle was voneineinander wissen müssen, aus. Spätestens wenn Du den dritten oder vierten Reiter hinzufügst und alle anderen Methoden zum sovielsten Mal anpassen musst, wirst Du Dir die Haare ausreissen und allenfalls den Computer zum Fenster rausschmeissen.
Warum denn nicht etwas anderes machen? Beispielsweise ein rot unterlegter Textstring auf dem Panel der den Status des Reiters angibt. Das is ziemlich einfach durch eine Methode in Deinen SubPanels zu implementieren die dem Hauptpanel die Möglichkeit gibt dessen Status zu erfragen. Und dann allenfalls den OK Button disablen, solange ein SubPanel noch einen ungültigen Status hat.
Simpel gesagt: Du willst eben gerade keinen Dialog, da dieser definitionsgemäss den User zur Aktion in eben diesem Dialog zwingt. Und die Alternative Floater sollte SEHR gut überlegt sein. Floater arten meistens in ziemlich chaotischen Code aus, wenn man das nicht von Anfang an sehr gut designt und implementiert.
|
|
|
17.10.2011, 08:56
(Dieser Beitrag wurde zuletzt bearbeitet: 17.10.2011 08:57 von GerdW.)
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
RE: Dialog nur auf einem Reiter
Hallo Frank,
wozu dann die Dialog-Fenster? Warum nicht gleich den Quittier-Knopf auf jedem Unterpanel einblenden?
Zitat:Es laufen viele Unterprogramme parallel in einer Dauerschleife.
Ich hoffe, die blockieren sich nicht gegenseitig bei Fehlermeldungen...
|
|
|
17.10.2011, 13:43
|
TpunktN
LVF-Gelegenheitsschreiber
Beiträge: 217
Registriert seit: Jul 2011
2021
2011
EN
70***
Deutschland
|
RE: Dialog nur auf einem Reiter
Hallo Frank,
zwar bin ich auch LV Neuling, habe soetwas aber schon in Visual Basic als Problem gehabt.
Meine Lösung damals war ein transparentes Shape in jedem Reiter einzubauen und standartmäßig auszublenden. Wenn ein Fehler anliegt, wird das Shape aktiviert (dadurch kann ncihts innerhal angeklickt werden) und eine Fehlerbox (ebenfalls mit dem Shape erstellen) einblenden.
Soetwas ähnliches, wenn nicht sogar genau das Gleiche, ist in LabView sicherlich möglich. Wenn dir diese Art zusagt, hilft dir sicher wer, der sich mit LV auskennt
tn
Justieren ist dem Gerät sagen was es anzeigen soll, kalibrieren ist die Kontrolle dieser Anzeige. Eichen ist ein längerer Prüfprozess und darf nur das Eichamt!
|
|
|
17.10.2011, 14:49
|
M@rRy
LVF-Padawan
Beiträge: 273
Registriert seit: Aug 2011
7.1
2011
EN
Deutschland
|
RE: Dialog nur auf einem Reiter
Mahlzeit nochmal,
also ich finde deine Idee, oder das was du da vor hast, nicht so ganz Stimmig und glaube auch das du die Sache noch nicht bis zum Ende durchdacht hast. Aber solltest du es wirklich so machen wollen, das du ein Fehlerfenster für jeden Reiter hast, könntest du es ja uch so probieren (mir ist bewusst das das viel Aufwand ist, aber das bringt es nun einmal mit sich):
Du erstellst dein Hauptregister in denen später deine VIs laufen sollen, jede Registerkarte bekommt wiederrum ein eigenes Register mit zwei Registerkarten bei denen allerdings die Reiter nicht eingeblendet werden. Jetzt kannst du beigehen und zwischen dem einem Reiter, auf dem das VI läuft und dem zweiten Reiter, auf dem deine Fehlermeldung und ein Quittierknopf sind, hin und her switch und hast weiterhin die Möglichkeit im Hauptregister umher zu switchen wie du möchtest und dein komplettes Progamm steht nicht gezwungenermaßen still, sollte ein Fehler auftreten.
Kommt das deiner Vorstellung eventuell etwas näher?
Gruß
Daniel
PS: Warum kommt es mir eigentlich so vor das du ganz stark damit rechnest das da ein Fehler auftritt? Vielleicht wäre es sogar einfacher dafür zu sorgen das die nicht auftreten als dich auf die Meldung selbst zu konzentrieren.
Nur wer neugierig ist, lernt ständig dazu.
Mythos:
Mit LabView lassen sich gut Programme leichter entwickeln
Realität:
Mit LabView lassen sich gut und schlechte Programme leichter enwickeln!
|
|
|
20.11.2011, 16:01
|
Frank M-F
LVF-Gelegenheitsschreiber
Beiträge: 55
Registriert seit: Oct 2011
2011
2011
DE
|
Sichbarkeit von Dialogen
Kann ich einen Dialog(auch ein selbst erstelltes Dialog-SubVI), so aufrufen, dass es nur auf dem Frontpanel des "Dialog startenden VI's" zu sehen ist, und nicht per se auf dem Frontpanel des Main.vi ??
|
|
|
20.11.2011, 16:56
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
RE: Sichbarkeit von Dialogen
Was willst du?
Oder sind wir immer noch bei diesem Thread?
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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
20.11.2011, 17:17
|
Frank M-F
LVF-Gelegenheitsschreiber
Beiträge: 55
Registriert seit: Oct 2011
2011
2011
DE
|
RE: Sichbarkeit von Dialogen
Ja, ansich sind wir wieder da.
Ich versuchs nochmal:
Ich habe auf dem Frontpanel meines Main.vi ein Unterpanel.
Das Unterpanel zeigt das Frontpanel eines Sub.vi
In dem Sub.vi wird nun ein Dialog aufgerufen(weiters Sub.vi, nicht der vorgefertigte).
Das Dialogfenster erscheint nun freiverschiebbar auf dem Frontpanel meines Main.vi
Was ich will, ist das das Dialogfenster nur im Rahmen des Unterpanel erscheint und verschiebbar ist.
|
|
|
| |