Cancel
Showing results for 
Search instead for 
Did you mean: 

Interaktion mit einem Dialog und Übernahme der Eingabe

Creator
Creator

Hallo liebe Community,

 

ich weiß es ist wahrscheinlich simpel, aber ich komme alleine nicht weiter.

 

Ich möchte meinen Dialog im Modell beim Starten der Simulation öffnen. Dann soll der User eine Eingabe machen und Übernehmen klicken. Die Eingabe soll als Wert in der Methode "Anfahren" eingesetzt werden. Und dann erst soll die Methode "Anfahren" starten. Wenn der User keine Eingabe macht soll ein Fehler angezeigt werden.

Der eingegebene Wert soll in die Variable "Anzahl_WT" eingesetzt werden.

 

Aktuell bekomme ich es nicht hin, dass der Dialog startet und ich eine Eingabe machen kann. Wahrscheinlich sind die Methoden innerhalb der self.callback Methode des Dialogs auch falsch... :-(

 

Vielen Dank für eure Hilfe.

5 REPLIES

Betreff: Interaktion mit einem Dialog und Übernahme der Eingabe

Gears Phenom Gears Phenom
Gears Phenom

Hallo FM87,

init-Methode:

EinfacherDialog.öffnen(-1, -1)
EventController.stop(false)
waituntil Anzahl_WT > 0 prio 1
EventController.start root.Anfahren

Im Dialog hast Du das Textfeld deaktiviert, dann kann man nichts eingeben:

grafik.png

Dialog-Callback (Achtung: Du hast hier in SimTalk 2.0 programmiert aber die Methode nicht auf SimTalk 2.0 eingestellt!):

param action: string

switch action
case "Open"
	?.setzeTitel("Wert", "0")	-- TODO: add code for the "Open" action here
case "Apply"
case "selfCB", "CBAnfahren"
Anzahl_WT := str_to_num(?.holeWert("Wert")) if (Anzahl_WT <= 0) then messageBox("Fehler! Anzahl_WT muss > 0 sein!", 1, 1) end case "Close" end

Sollte so funktionieren (die Methode Anfahren hat aber noch Fehler)
Alex

____________________________________________________________
Alex Dilg, Consultant at SimPlan AG (www.SimPlan.de)
This post was good and/or helpful to you? Please provide some Kudos, thank you!

Betreff: Interaktion mit einem Dialog und Übernahme der Eingabe

Creator
Creator

Hallo AlexD,

 

vielen Dank. Jetzt funktioniert es. Super.

Kannst du mir n bisschen Background Infos geben, warum in der Init Methode .öffnen(-1,-1) und nicht .öffneDialog() verwendet werden soll?

Und warum muss ich in der Callback-Methode ?.setzeTitel("Wert", "0") verwenden und einen zusätzlichen CB case anlegen?

 

Programmierung ist echt nicht meine Stärke, da quäle ich mich voll ab. :-(

Betreff: Interaktion mit einem Dialog und Übernahme der Eingabe

Gears Phenom Gears Phenom
Gears Phenom

Hi,

Du hattest einfach nur "öffneDialog" geschrieben, das bezieht sich dann (weil nichts konkretes angegeben war) auf das Netzwerk, in dem die aufrufende Methode liegt. Mit "öffneDialog" wird der Standarddialog von Bausteinen geöffnet; mit "öffnen" wird ein selbst erstellter Benutzerdialog geöffnet (und das ist eine Methode des Dialog-Bausteins, muss also auf eine passende Objektreferenz folgen: "EinfacherDialog.öffnen(-1,-1)"). Das "-1,-1" sind Parameter, die die Position des Benutzerdialogs auf dem Bildschirm festlegen und Standardwerte, die ich hier eigentlich immer benutze.

"setzeTitel" ist einfach der Befehl, den man benutzen muss, um Text in ein Texteingabefeld zu schreiben. Und Du hast einen Callback für das Texteingabefeld definiert und einen für Deinen (eigenen) "Übernehmen"-Button. Ich habe daher sicherheitshalber in beiden Fällen schon den eingegebenen Wert überprüft (also der eine Callback wird ausgelöst, wenn man etwas im Dialog einträgt, der andere beim "Übernehmen"); wäre nicht zwingend nötig gewesen.

Noch ein Hinweis: wenn es nur um diesen einen Wert geht, wäre vielleicht

Anzahl_WT := str_to_num(prompt("Bitte Wert >0 eintragen"))

die einfachere Lösung gewesen.

VG Alex

____________________________________________________________
Alex Dilg, Consultant at SimPlan AG (www.SimPlan.de)
This post was good and/or helpful to you? Please provide some Kudos, thank you!

Betreff: Interaktion mit einem Dialog und Übernahme der Eingabe

Creator
Creator

Mahlzeit zusammen,

 

ich habe eine Anfrage zu meinem Dialog bzw. genauer gesagt zum Textfeld.

Was muss ich tun, damit im Textfeld eine Eingabe erfolgen kann, wenn ich ein Pack-and-Go Modell erstelle??

Aktuell ist dann das Feld gesperrt, obwohl das Kontrollkästchen aktiviert ist. Aber dann funktioniert das Modell nicht. :-(

Für schnelle Hilfe bin ich sehr dankbar.

 

Gruß Felix

Betreff: Interaktion mit einem Dialog und Übernahme der Eingabe

Gears Esteemed Contributor Gears Esteemed Contributor
Gears Esteemed Contributor
das Modell ist eingeschränkt auf die Viewer-Lizenz, damit sind Eingaben in Dialoge nicht möglich.
Steffen Bangsow
freelance simulation specialist  
web: www.bangsow.eu
mail: steffen@bangsow.net