Rückgabewert abfragen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

toni
***
Beiträge: 66
Registriert: Mi, 03.01.2007 10:26

Rückgabewert abfragen

Beitrag von toni »

Hallo,

Ich rufe einen Starbasic Dialog mit den Schaltflächen OK und abbrechen auf (1). Nun möchte ich auswerten, welchen Button der Anwender geklickt hat:

Code: Alles auswählen

Dim Mldg 
     Mldg = MsgBox("Mit dieser Aktion gehen die von Ihnen" & CHR(10) & _
                   "eingegebenen Daten verloren.",1 , "Eingabeprüfung")

    Select Case Mldg.Execute()
           Case 1 
             MsgBox "ok"
           Case 0 
             MsgBox "abbrechen"
    End Select
Ich weis nicht so recht auf welches Object ich die Execute-Methode anwenden soll. Der Code funktioniert so nicht.

Kann mir jemand weiter helfen?

Gruss

Thomas
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag von Stephan »

Ich weis nicht so recht auf welches Object ich die Execute-Methode anwenden soll
Auf garkeins. Die MsgBox-Funktion ist eine Funktion im Namensinne und gibt deshalb, wie jede Funktion, einen Rückgabewert (hier Mldg) zurück. Die MsgBox ist hingegen kein Basic-Dialog.

Code: Alles auswählen

Mldg = MsgBox("Mit dieser Aktion gehen die von Ihnen" & CHR(10) & _
                   "eingegebenen Daten verloren.",1 , "Eingabeprüfung") 

    Select Case Mldg
           Case 1 
             MsgBox "ok" 
           Case 2 
             MsgBox "abbrechen" 

End Select


Gruß
Stephan
toni
***
Beiträge: 66
Registriert: Mi, 03.01.2007 10:26

Beitrag von toni »

Danke, das hatte ich auch schon versucht. Allerdings hatte ich beim Abbrechen auf die 0 und nicht auf die 2 abgefragt.

Gruss

Thomas
Schwedenbitter
**
Beiträge: 47
Registriert: So, 25.06.2006 13:03
Wohnort: Finsterwalde, Brandenburg

Re: Rückgabewert abfragen

Beitrag von Schwedenbitter »

Hallo,

irgenwie muss das doch aber gehen! Ich habe einen Dialog gebastelt und die Buttons über die Eigenschaften Art der Schaltfläche = OK festgelegt. Dazu habe ich dann folgenden Code geschrieben:

Code: Alles auswählen

Sub Abfrage
	A_Init_Dlg
	If MyDlg.Execute() <> mbOK Then
		Neu_Text
	End If
End Sub
Ich kenne mbOK aus Delphi und irgendwie scheint auch Basic damit etwas anfangen zu können. Jedenfalls bekomme ich keiner Fehlermeldung. Paradoxer Weise klappt aber = mbOK nicht, obwohl es gerade der OK-Button ist. Will sagen: der Code in der If-Abfrage wird ausgeführt, wenn OK geklickt wird...

Was mache ich denn noch falsch?
Und was bedeutet die Eigenschaft Standardschaltfläche (Ja oder Nein) bei einem Button?

Gruß, Alex
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Re: Rückgabewert abfragen

Beitrag von ykcim »

Hallo,

wenn Du mbOK so ein setzt kann es zu keiner Fehlermeldung kommen. Für Starbasic ist der Wert einfach leer. Der Rückgabewert von MyDlg.excute() ist entweder 1 (für OK) oder 2 (für Abbrechen). Achso und 0 wenn der Dialog über das Kreuz oben rechts geschlosssen wird.

Wenn der Schalterstandardschaltfläche auf ja steht reagiert dieser Button auf die Eingabetaste. Also sollten nie zwei Buttons oder mehr diesen Status haben.

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
Antworten