MsgBox ist anstrengend

jetzt hab ich sechs Stunden damit verbracht einen fehler zu suchen.
Dann hab ich zufllig eine MsgBox deaktiviert, seitdem luft das programm.

Aber was soll man sonst machen, wenn man den User darber informieren muss, dass Abspeichern angesagt wre?

Muss ich mir jetzt eine eigene MsgBox bauen?

Was ist denn genau der Fehler? Was klappt nicht mit MsgBox?

Ansonsten schau dir doch noch die MessageDialog Klasse an…

Ach das kann man gar nicht beschreiben.

Ich hab ja zig MSgBox im Programm und plötzlich läuft das Programm zweimal durch eine Routine, ändert einen Wert eines textfiels eigenmächtig auf leeren String (ich hab alle befehle Textfield1.text="" im Programm deaktiviert und auch alle wo von einer Variablen zugewiesen wurde, trotzdem war der wert auf einmal “”

Und dann ists immer wieder abgestürzt.

Unregelmäßig

Und seit die MsgBox weg ist, wie ein alter VW-Motor, luft und luft und luft

Schon mal einen BreakPoint gesetzt und Schritt für Schritt durch die Routinen gegangen bei gleichzeitiger Beobachtung der Felder?

Ja hab ich, aber das reagiert auch unregelmig.

Das mit dem Messagedialog funktioniert ganz gut, nur, wie krieg ich das ding wieder weg?

d.close oder so funktioniert nicht

ich möchte ja nur einen Button drin haben: “Zur kenntnis genommen” und keine Auswahl … und danach solls wieder weg gehen.

So etwa?

[code] Dim d as New MessageDialog //declare the MessageDialog object
d.icon=MessageDialog.GraphicCaution //display warning icon
d.ActionButton.Caption=“Okidoki”
d.CancelButton.Visible=False //show the Cancel button
d.Message=“Es ist an der Zeti zu speichern…”
call d.ShowModal //display the dialog

//Und weiter gehts[/code]

habe das 1.1 übernommen - macht anscheinend das Selbe, wie MsgBox

[code] If LabbelegNr.text=“Vorhandener Beleg” and BankBeleg.Text<>“B” then
BSaldo.visible=true
PbBankSaldo.visible= true
Buchfeld.FillColor=Hellbraun
BankSald=rs.field(“Banksaldo”).value
Bankdat=rs.field(“BankDate”).value
BankSaldoermitteln
Bsaldo.Text= centTxt(Cint00(Bsaldo.text)+Cint00(Betrag.text))

    Dim d as New MessageDialog                  //declare the MessageDialog object
    d.icon=MessageDialog.GraphicCaution         //display warning icon
    d.ActionButton.Caption="OK"
    d.CancelButton.Visible=False                 //show the Cancel button
    d.Message="Abspeichern muss ma aber dann auch noch, gell, sonst wirds kein Bankbeleg!"
    call d.ShowModal
    
    
    
  elseif LabbelegNr.text="Vorhandener Beleg" and BankBeleg.Text="B" then
    BSaldo.visible=false
    PbBankSaldo.visible= false
    Buchfeld.FillColor=Mittelblau
    BankBeleg.Text=""
    
    Dim d as New MessageDialog                  //declare the MessageDialog object
    d.icon=MessageDialog.GraphicCaution         //display warning icon
    d.ActionButton.Caption="OK"
    d.CancelButton.Visible=False                 //show the Cancel button
    d.Message="Neu Abspeichern ist angesagt, sonst bleibts ein Bankbeleg!"
    call d.ShowModal
    
  else[/code]

Das sind im Grunde die identischen Aufruftexte, aber in einem Fall kann ich den Button drücken und das Msg-Fenster geht weg, in anderem Fall, bleibt es da hängen und geht nicht weg…

Ja und das auch noch unregelmig
Manchmal geht ein paarmal und dann hngt es …

Hm, schwer so vom Schiff aus zu sagen. Mein Bauchgefühl sagt mir, dass da im Kontext etwas nicht stimmt - also im Code ausserhalb dieses Blocks.

Wenn ich das Ganze im Einzelschritt verfolge, dann kehrt das Programm , nachdem ich den Button gedrückt habe genau wieder zur ersten zeile zurück (ohne Zwischenschritt stehts wieder auf Dim d as New MessageDialog und geht durch die sechs Zeilen durch.

Das hatte ich mit einer MsgBox auch schon einmal.

Wenn man die Msgbox raushaut, läufts

Mein Bauchgefühl sagt mir, dass da XOJO nicht unbeteiligt dran ist.

Na ja, eine Msgbox ndert ja den Focus und deaktiviert das aktuelle Fenster. Danach wird es wieder aktiviert und focus kommt zurck.

Wenn du jetzt Code hast in den GotFocus/LostFocus bzw. Activate/Deactivate events hast, dann wird der ausgefhrt und ndert vielleicht was.

Mein Bauchgefühl sagt mir, dass da XOJO unbeteiligt dran ist.

Wahrscheinlich wird es so sein.

Ein Green horn wie ich macht natürlich oft Kanten rein, die jemand Erfahrener vermeidet.

Ich habe alles umgekrempelt, jetzt läuft es wieder.

Wenn ich wüsste, was ich falsch gemacht habe, könnt ich wenigstens sagen, ich hab was gelernt :slight_smile: