P peternmb Well-Known Member Licensed User Longtime User Nov 19, 2023 #1 Hallo, ich komme einfach nicht weiter. In meiner App kann zwischen 3 verschiedenen CustomDialogen zur Eingabe von Daten gewählt werden. Aber die App marschiert schon weiter bevor die Dialoge beendet sind, dann fehlen da natürlich deren Eingaben. Wie kann ich es erreichen, dass es erst weitergeht wenn der Eingabedialog beendet ist? hier mein gekürztes Beispiel: B4X: Copy Wait For Msgbox_Result (Result As Int) If Result = DialogResponse.POSITIVE Then formular1 'CustomDialog Else If Result = DialogResponse.NEGATIVE Then formular2 'CustomDialog Else formular3 'CustomDialog End If Wait For ??? 'hier geht der Code mit der Verarbeitung der Daten dann weiter
Hallo, ich komme einfach nicht weiter. In meiner App kann zwischen 3 verschiedenen CustomDialogen zur Eingabe von Daten gewählt werden. Aber die App marschiert schon weiter bevor die Dialoge beendet sind, dann fehlen da natürlich deren Eingaben. Wie kann ich es erreichen, dass es erst weitergeht wenn der Eingabedialog beendet ist? hier mein gekürztes Beispiel: B4X: Copy Wait For Msgbox_Result (Result As Int) If Result = DialogResponse.POSITIVE Then formular1 'CustomDialog Else If Result = DialogResponse.NEGATIVE Then formular2 'CustomDialog Else formular3 'CustomDialog End If Wait For ??? 'hier geht der Code mit der Verarbeitung der Daten dann weiter
JOTHA Well-Known Member Licensed User Longtime User Nov 19, 2023 #2 peternmb said: DialogResponse.POSITIVE Click to expand... Ich habe dieses Problem nicht, wenn ich alle drei Möglichkeiten einbinde nach folgendem Muster: B4X: Copy If Result = XUI.DialogResponse_POSITIVE Then ... Else If Result = XUI.DialogResponse_CANCEL Then ... Else If Result = XUI.DialogResponse_NEGATIVE Then ... End If
peternmb said: DialogResponse.POSITIVE Click to expand... Ich habe dieses Problem nicht, wenn ich alle drei Möglichkeiten einbinde nach folgendem Muster: B4X: Copy If Result = XUI.DialogResponse_POSITIVE Then ... Else If Result = XUI.DialogResponse_CANCEL Then ... Else If Result = XUI.DialogResponse_NEGATIVE Then ... End If
S strupp01 Active Member Licensed User Longtime User Nov 19, 2023 #3 Probiere es mal hier mit B4X: Copy Dim Result As Int Result = Msgbox2("Möchten Sie wirklich diese Kategorie löschen ?", "Sicherheitsabfrage", "Löschen", "Abbruch", "",Null) If Result = DialogResponse.POSITIVE Then Die Abfrage muss natürlich auf dein Programm angepasst werden.
Probiere es mal hier mit B4X: Copy Dim Result As Int Result = Msgbox2("Möchten Sie wirklich diese Kategorie löschen ?", "Sicherheitsabfrage", "Löschen", "Abbruch", "",Null) If Result = DialogResponse.POSITIVE Then Die Abfrage muss natürlich auf dein Programm angepasst werden.
Alexander Stolte Expert Licensed User Longtime User Nov 19, 2023 #4 strupp01 said: Probiere es mal hier mit Click to expand... Probiere du es mal mit xui.Msgbox2Async, da wird dir sogar in der beschreibung fertiger code zum Kopieren mitgeliefert. B4X: Copy Dim sf As Object = xui.Msgbox2Async("Delete file?", "Title", "Yes", "Cancel", "No", Null) Wait For (sf) Msgbox_Result (Result As Int) If Result = xui.DialogResponse_Positive Then Log("Deleted!!!") End If
strupp01 said: Probiere es mal hier mit Click to expand... Probiere du es mal mit xui.Msgbox2Async, da wird dir sogar in der beschreibung fertiger code zum Kopieren mitgeliefert. B4X: Copy Dim sf As Object = xui.Msgbox2Async("Delete file?", "Title", "Yes", "Cancel", "No", Null) Wait For (sf) Msgbox_Result (Result As Int) If Result = xui.DialogResponse_Positive Then Log("Deleted!!!") End If
JOTHA Well-Known Member Licensed User Longtime User Nov 19, 2023 #5 Alexander Stolte said: Probiere du es mal mit xui.Msgbox2Async Click to expand... ... das habe ich schon vorausgesetzt, das es mit XUI.Msgbox2Async gemacht wird ... ;-)
Alexander Stolte said: Probiere du es mal mit xui.Msgbox2Async Click to expand... ... das habe ich schon vorausgesetzt, das es mit XUI.Msgbox2Async gemacht wird ... ;-)
P peternmb Well-Known Member Licensed User Longtime User Nov 19, 2023 #6 Bisher verwende ich Msgbox2Async - was ist bei XUI.Msgbox2Async anders? Das Problem scheint allerdings doch etwas komplexer zu sein. Bei einer Auswahlmöglichkeit werden hintereinander 2 CustomDialoge aufgerufen und genau dort ist das Problem. Bei den einfachen Varianten funktioniert es, bei den 2 Dialogen nicht mehr.
Bisher verwende ich Msgbox2Async - was ist bei XUI.Msgbox2Async anders? Das Problem scheint allerdings doch etwas komplexer zu sein. Bei einer Auswahlmöglichkeit werden hintereinander 2 CustomDialoge aufgerufen und genau dort ist das Problem. Bei den einfachen Varianten funktioniert es, bei den 2 Dialogen nicht mehr.
Alexander Stolte Expert Licensed User Longtime User Nov 19, 2023 #7 peternmb said: Bisher verwende ich Msgbox2Async - was ist bei XUI.Msgbox2Async anders? Click to expand... Ist genau das gleiche, nur das es in B4A, B4I und B4J funktioniert. Und es gibt in der Beschreibng code der threads wie diese verhindert. peternmb said: Bei einer Auswahlmöglichkeit werden hintereinander 2 CustomDialoge aufgerufen und genau dort ist das Problem. Bei den einfachen Varianten funktioniert es, bei den 2 Dialogen nicht mehr. Click to expand... Verstehe nicht das Problem, wenn du zuerst die 1. MSGBox anzeigst, ein wait for hinzufügst, diesen auswertest und dann erst die 2. MSGBox anzeigst.
peternmb said: Bisher verwende ich Msgbox2Async - was ist bei XUI.Msgbox2Async anders? Click to expand... Ist genau das gleiche, nur das es in B4A, B4I und B4J funktioniert. Und es gibt in der Beschreibng code der threads wie diese verhindert. peternmb said: Bei einer Auswahlmöglichkeit werden hintereinander 2 CustomDialoge aufgerufen und genau dort ist das Problem. Bei den einfachen Varianten funktioniert es, bei den 2 Dialogen nicht mehr. Click to expand... Verstehe nicht das Problem, wenn du zuerst die 1. MSGBox anzeigst, ein wait for hinzufügst, diesen auswertest und dann erst die 2. MSGBox anzeigst.
P peternmb Well-Known Member Licensed User Longtime User Nov 19, 2023 #8 jetzt bin ich in der Problemsuche schon etwas weiter gekommen Ist eine App, die über Jahre immer mehr erweitert wurde und entsprechend verschachtelt ist.... Vor dem CustomDialog wird ein Panel mit einer Dateiauswahl in einem ListView und 3 Buttons (übernehmen, löschen, abbrechen) aufgerufen. Wie kann ich erreichen, dass meine App erst weitermacht wenn einer der Buttons geklickt wurde? Ich habe versucht das ebenfalls in einem CustomDialog zu zeigen doch da kann ich das ListView nicht auswerten. Oder gibt es dafür eine bessere Alternative?
jetzt bin ich in der Problemsuche schon etwas weiter gekommen Ist eine App, die über Jahre immer mehr erweitert wurde und entsprechend verschachtelt ist.... Vor dem CustomDialog wird ein Panel mit einer Dateiauswahl in einem ListView und 3 Buttons (übernehmen, löschen, abbrechen) aufgerufen. Wie kann ich erreichen, dass meine App erst weitermacht wenn einer der Buttons geklickt wurde? Ich habe versucht das ebenfalls in einem CustomDialog zu zeigen doch da kann ich das ListView nicht auswerten. Oder gibt es dafür eine bessere Alternative?
Alexander Stolte Expert Licensed User Longtime User Nov 19, 2023 #9 peternmb said: Oder gibt es dafür eine bessere Alternative? Click to expand... [B4X] Input dialogs with XUI Views B4XDialog from XUI Views library can show simple dialogs, template based dialogs and custom dialogs. The example projects demonstrate the various template dialogs: https://www.b4x.com/android/forum/threads/b4x-xui-views-cross-platform-views-and-dialogs.100836/ This example focuses on... www.b4x.com
peternmb said: Oder gibt es dafür eine bessere Alternative? Click to expand... [B4X] Input dialogs with XUI Views B4XDialog from XUI Views library can show simple dialogs, template based dialogs and custom dialogs. The example projects demonstrate the various template dialogs: https://www.b4x.com/android/forum/threads/b4x-xui-views-cross-platform-views-and-dialogs.100836/ This example focuses on... www.b4x.com
P peternmb Well-Known Member Licensed User Longtime User Nov 19, 2023 #10 gibt es vielleicht auch eine Alternative ohne im bestehenden Code viel verändern zu müssen? Ich würde das Dateiauswahlpanel gerne so belassen.
gibt es vielleicht auch eine Alternative ohne im bestehenden Code viel verändern zu müssen? Ich würde das Dateiauswahlpanel gerne so belassen.
JOTHA Well-Known Member Licensed User Longtime User Nov 19, 2023 #11 peternmb said: ... dass meine App erst weitermacht wenn einer der Buttons geklickt wurde? Click to expand... Nur mal so als spontane Idee: Du könntest dem Button nach dem Klicken eine Eigenschaft (z.B. eine andere Farbe) zuweisen und dann diese Eigenschaft abfragen mit ... Code: Copy If Button1.Color = Colors.Black Then (code) End if
peternmb said: ... dass meine App erst weitermacht wenn einer der Buttons geklickt wurde? Click to expand... Nur mal so als spontane Idee: Du könntest dem Button nach dem Klicken eine Eigenschaft (z.B. eine andere Farbe) zuweisen und dann diese Eigenschaft abfragen mit ... Code: Copy If Button1.Color = Colors.Black Then (code) End if
P peternmb Well-Known Member Licensed User Longtime User Nov 19, 2023 #12 JOTHA said: Nur mal so als spontane Idee: Du könntest dem Button nach dem Klicken eine Eigenschaft (z.B. eine andere Farbe) zuweisen und dann diese Eigenschaft abfragen mit ... Code: Copy If Button1.Color = Colors.Black Then (code) End if Click to expand... Klingt interessant - ich glaube aber, dass der Ablauf vorher schon weitergeht oder ich müsste das dann irgendwie in eine Schleife packen... Muss ich Morgen am Rechner testen, jetzt sitze ich am Tablet ??
JOTHA said: Nur mal so als spontane Idee: Du könntest dem Button nach dem Klicken eine Eigenschaft (z.B. eine andere Farbe) zuweisen und dann diese Eigenschaft abfragen mit ... Code: Copy If Button1.Color = Colors.Black Then (code) End if Click to expand... Klingt interessant - ich glaube aber, dass der Ablauf vorher schon weitergeht oder ich müsste das dann irgendwie in eine Schleife packen... Muss ich Morgen am Rechner testen, jetzt sitze ich am Tablet ??
P peternmb Well-Known Member Licensed User Longtime User Nov 21, 2023 #13 funktioniert so leider nicht. Ich habe jetzt die entsprechnde Routine in eine eigene sub ausgelagert und die Ablaufreihenfolge angepasst - hätte ich vielleicht gleich so machen sollen
funktioniert so leider nicht. Ich habe jetzt die entsprechnde Routine in eine eigene sub ausgelagert und die Ablaufreihenfolge angepasst - hätte ich vielleicht gleich so machen sollen