Zu viele Case?
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Zu viele Case?
Hi!
Kann es in einem Select/Case-Block möglich sein, dass es zuviele Cases gibt? Mein Compiler meldet "Case without Select" obwohl nur wenige Zeilen darüber das Select zu sehen ist.
Kann man das irgendwie übergehen, möglichst nicht mit If?
MfG, Mok
__________________________________________________
Thread verschoben
Allgemein>Anfänger
03.11.2008
RSBasic
Kann es in einem Select/Case-Block möglich sein, dass es zuviele Cases gibt? Mein Compiler meldet "Case without Select" obwohl nur wenige Zeilen darüber das Select zu sehen ist.
Kann man das irgendwie übergehen, möglichst nicht mit If?
MfG, Mok
__________________________________________________
Thread verschoben
Allgemein>Anfänger
03.11.2008
RSBasic
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
Bitte nicht gleich nerven wegen Übersichtlichkeit.
Wurde vom VD übernommen:
Wurde vom VD übernommen:
Code: Alles auswählen
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_Gadget
Select EventGadgetID()
Case #Listview_0
If GetGadgetState(#Listview_0)=1
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=9
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=13
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=38
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=69
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=78
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=81
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=90
SetGadgetState(#Listview_0,0)
EndIf
Case #Radio_0
Generic$ = "LightmappedGeneric"
Case #Radio_1
Generic$ = "UnlitGeneric"
Case #Radio_2
Generic$ = "VertexLitGeneric"
Case #CheckBox_0
status_checkbox_0 = GetGadgetState(#CheckBox_0)
If status_checkbox_0 = 1
selfillum = #True
Else
selfillum = #False
Case #String_2 ; hier wird gemotzt
Case #CheckBox_1
Case #Image_0
Beep_(400,200)
Beep_(600,200)
Beep_(800,200)
Beep_(1000,200)
Beep_(1200,300)
Case #CheckBox_3
status_checkbox_3 = GetGadgetState(#CheckBox_3)
If status_checkbox_3 = 1
DisableGadget(#String_2, 0)
bump = #True
Else
DisableGadget(#String_2,1)
bump = #False
EndIf
Case #Button_0
VMTBase$ = GetFilePart(ReplaceString(GetGadgetText(#String_0), "/", "\"))
VMTBasefinal$ = ReplaceString(VMTBase$, Chr(34),"")
Save$ = PathRequester(VMTBase$ +".vmt speichern unter...","C:\")
If Save$ = ""
MessageRequester("Fehler!","VMT konnte nicht gespeichert werden!",16)
Else
CreateFile(0,Save$+"\"+VMTBasefinal$+".vmt")
WriteStringN("// Made with VMT Maker 1.00 Beta")
WriteStringN(Generic$)
WriteStringN("{")
WriteStringN(Chr(34)+"$basetexture"+Chr(34)+" "+GetGadgetText(#String_0))
If selfillum = #True
WriteStringN(Chr(34)+"$selfillum"+Chr(34)+" "+Chr(34)+"1"+Chr(34))
EndIf
EndIf
Case #Button_1
End
EndSelect
EndIf
If EventID=#PB_Event_CloseWindow
Quit=1
EndIf
Until Quit=1
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
Re: Zu viele Case?
Nein. In diesem Fall sitzt der Bug vor der Tastatur.Mok hat geschrieben:Kann es in einem Select/Case-Block möglich sein, dass es zuviele Cases gibt?
Grüße ... Kiffi
P.S.: Du scheinst ziemlich viel Vertrauen in Deine Unfehlbarkeit als
Programmierer und sehr wenig Vertrauen in die 'Reife' des PB-Compilers zu
haben. Das habe ich schon bei Deiner letzten Frage bzgl. der Anzahl von
Items in einem Listicongadget herauslesen können. Mein Tipp: Glaub einfach
mal dem Compiler und untersuche Deinen Code selbstkritisch

P.S.2: If status_checkbox_0 = 1 <-- wo ist denn da das EndIf?
a²+b²=mc²
Code: Alles auswählen
Repeat
EventID=WaitWindowEvent()
If EventID=#PB_Event_Gadget
Select EventGadgetID()
Case #Listview_0
If GetGadgetState(#Listview_0)=1
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=9
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=13
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=38
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=69
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=78
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=81
SetGadgetState(#Listview_0,0)
ElseIf GetGadgetState(#Listview_0)=90
SetGadgetState(#Listview_0,0)
EndIf
Case #Radio_0
Generic$ = "LightmappedGeneric"
Case #Radio_1
Generic$ = "UnlitGeneric"
Case #Radio_2
Generic$ = "VertexLitGeneric"
Case #CheckBox_0
status_checkbox_0 = GetGadgetState(#CheckBox_0)
If status_checkbox_0 = 1
selfillum = #True
Else
selfillum = #False
EndIf ;<-- das hier fehlte !!!
Case #String_2 ; hier wird gemotzt
Case #CheckBox_1
Case #Image_0
Beep_(400,200)
Beep_(600,200)
Beep_(800,200)
Beep_(1000,200)
Beep_(1200,300)
Case #CheckBox_3
status_checkbox_3 = GetGadgetState(#CheckBox_3)
If status_checkbox_3 = 1
DisableGadget(#String_2, 0)
bump = #True
Else
DisableGadget(#String_2,1)
bump = #False
EndIf
Case #Button_0
VMTBase$ = GetFilePart(ReplaceString(GetGadgetText(#String_0), "/", "\"))
VMTBasefinal$ = ReplaceString(VMTBase$, Chr(34),"")
Save$ = PathRequester(VMTBase$ +".vmt speichern unter...","C:\")
If Save$ = ""
MessageRequester("Fehler!","VMT konnte nicht gespeichert werden!",16)
Else
CreateFile(0,Save$+"\"+VMTBasefinal$+".vmt")
WriteStringN("// Made with VMT Maker 1.00 Beta")
WriteStringN(Generic$)
WriteStringN("{")
WriteStringN(Chr(34)+"$basetexture"+Chr(34)+" "+GetGadgetText(#String_0))
If selfillum = #True
WriteStringN(Chr(34)+"$selfillum"+Chr(34)+" "+Chr(34)+"1"+Chr(34))
EndIf
EndIf
Case #Button_1
End
EndSelect
EndIf
If EventID=#PB_Event_CloseWindow
Quit=1
EndIf
Until Quit=1


- Mok
- BotHunter
- Beiträge: 1484
- Registriert: 26.12.2005 14:14
- Computerausstattung: MSI GX780R
Intel Core i5-2410M
Nvidia GT 555M
Windows 7 Home Premium 64 bit - Wohnort:
@Kiffi:
@RSBasic:
Jo, danke (Warum war dann da kein "EndIf missing"?)
Achso^^Kiffi hat geschrieben:Nein. In diesem Fall sitzt der Bug vor der Tastatur.
Ich weiß was arroganz ist, und versichere dir, dass ich es nicht bin! NIemand ist fehlerfrei, und das weiß ich!Kiffi hat geschrieben:Du scheinst ziemlich viel Vertrauen in Deine Unfehlbarkeit als
Programmierer
Stimmt net...Kiffi hat geschrieben:sehr wenig Vertrauen in die 'Reife' des PB-Compilers zu
haben.
@RSBasic:
Jo, danke (Warum war dann da kein "EndIf missing"?)
Win 7 Home Premium 64 bit | PureBasic 5.20 - x86 und x86-64 | Firefox [aktuelle stable-Version hier einfügen]
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl
"Jeder macht irgendwann mal Fehler, darum gibt's auch Bleistifte mit Radiergummi." --Carl