msgbox OK/ Abbrechen abfragen

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

Moderator: Moderatoren

Thorsten_Z
*
Beiträge: 12
Registriert: Sa, 23.01.2010 12:24

msgbox OK/ Abbrechen abfragen

Beitrag von Thorsten_Z »

Moin Forum,
ich brauche mal wieder einen kleinen Anstoß. Wie frage ich bei einer Msgbox das "ok" bzw. "Abbrechen" Feld ab. Bei "ok" soll das Makro weiter laufen, und bei "Abbrechen" logischerweise die Prozedur beenden.
So hab ich es mir gedacht, aber es funktioniert nicht:

sub Loeschen()
Msgbox ("Wirklich Löschen?",1)
if msgbox = abbrechen then exit sub
else
... meine Prozedur...

end if
end sub

Wer kann mir eben auf die Sprünge helfen?
Danke und Gruß
Thorsten
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: msgbox OK/ Abbrechen abfragen

Beitrag von komma4 »

Thorsten_Z hat geschrieben:ich brauche mal wieder einen kleinen Anstoß.
F1 = Onlinehilfe, Basic: MsgBox-Funktion [Laufzeit]
Onlinehilfe hat geschrieben:Rückgabewert:
1 : OK
2 : Abbrechen
3 : Abbruch
4 : Wiederholen
5 : Ignorieren
6 : Ja
7 : Nein
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Thorsten_Z
*
Beiträge: 12
Registriert: Sa, 23.01.2010 12:24

Re: msgbox OK/ Abbrechen abfragen

Beitrag von Thorsten_Z »

Hallo komma4,
danke für die schnelle Antwort. Aber nun gibt er mir nen Basik-Syntaxfehler "Else/EndIF ohne IF" raus.
Was ist da los?

sub Loeschen()
Msgbox ("Wirklich Löschen?",1)
if msgbox = 2 then exit sub
else
... meine Prozedur...

end if
end sub

Gruß
Thorsten
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: msgbox OK/ Abbrechen abfragen

Beitrag von lorbass »

Onlinehilfe hat geschrieben:Beispiel:
Sub ExampleMsgBox
Dim sVar as Integer
sVar = MsgBox("Las Vegas")
sVar = MsgBox("Las Vegas",1)
sVar = MsgBox( "Las Vegas",256 + 16 + 2,"Titel im Dialog")
end sub
Gruß
lorbass
Thorsten_Z
*
Beiträge: 12
Registriert: Sa, 23.01.2010 12:24

Re: msgbox OK/ Abbrechen abfragen

Beitrag von Thorsten_Z »

Hallo Lorbass,
die Onlinehilfe ist mir wohl bekannt, hilft mir aber nicht bei meinem Problem. Der Rückgabewert für Ok ist 1 und für Abbrechen 2. Soweit bin ich ja schon. Jetzt funzt aber die ganze Prozedur nicht mehr (s. Fehlermeldung).

für Hinweise in dieser Richtung wäre ich sehr dankbar

Gruß
Thorsten
Thorsten_Z
*
Beiträge: 12
Registriert: Sa, 23.01.2010 12:24

Re: msgbox OK/ Abbrechen abfragen

Beitrag von Thorsten_Z »

Der Teufel scheint im Detail zu liegen, so funzt es

Code: Alles auswählen

sub Loeschen
IF Msgbox ("Wirklich Löschen?",1)= 2 then 
exit sub
Else 
msgbox(".. meine Prozedur...")
end if
end sub
Wer hätte gedacht, dass nach dem "then" ein absatz gehört.... Naja. Auf jedenfall Danke an die Helfer
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: msgbox OK/ Abbrechen abfragen

Beitrag von lorbass »

Thorsten_Z hat geschrieben:Wer hätte gedacht, dass nach dem "then" ein absatz gehört.
Nein, das war nicht dein Fehler. Es ist einfach ein Unterschied, ob du - wie in deinen beiden ersten Beiträgen - falsch schreibst

Code: Alles auswählen

Msgbox ("Wirklich Löschen?",1)
if msgbox = 2 then
oder - wie in deinem letzten Beitrag - richtig schreibst

Code: Alles auswählen

IF Msgbox ("Wirklich Löschen?",1)= 2 then 
Gruß
lorbass
DPunch
*******
Beiträge: 1112
Registriert: Mo, 02.11.2009 16:16
Wohnort: Marburg

Re: msgbox OK/ Abbrechen abfragen

Beitrag von DPunch »

lorbass hat geschrieben:
Thorsten_Z hat geschrieben:Wer hätte gedacht, dass nach dem "then" ein absatz gehört.
Nein, das war nicht dein Fehler.
Doch, das ist ein Syntaxfehler ;)

Schreibt man den "Dann"-Block in die gleiche Zeile wie die Bedingung, gilt der gesamte "If"-Block als abgeschlossen, ohne "End If".

a)
If 5=5 Then MsgBox "Richtig"

b)
If 5=5 Then
MsgBox "Richtig"
End If

Will man Variante a) mit einem "Else" kombinieren, führt das logischerweise zu einem Syntaxfehler, da der If-Block abgeschlossen ist und das "Else" zusammenhangslos im Code rumschwirrt.
Der Rest Deines Einwurfs ist natürlich trotzdem richtig ;)
Antworten