SaveFileRequester bei abbruch wird programm beendet
-
- Beiträge: 62
- Registriert: 01.03.2008 05:43
- Wohnort: Hamm
- Kontaktdaten:
SaveFileRequester bei abbruch wird programm beendet
Hi,
Ich habe folgendes problem:
wenn ich den saveFileRequester aufrufe, und auf abbrechen gehe, möchte ich , dass das programm nicht beendet wird, sondern einfach mit allen einstellungen weiterläuft, gibt es da irgendeine möglichkeit das gerade zu biegen??
Ich habe folgendes problem:
wenn ich den saveFileRequester aufrufe, und auf abbrechen gehe, möchte ich , dass das programm nicht beendet wird, sondern einfach mit allen einstellungen weiterläuft, gibt es da irgendeine möglichkeit das gerade zu biegen??
Hast warscheinlich ein fehler in dein Code. SaveFileRe... beendet von sich aus nicht das Programm
Code wäre hilfreich...
Code wäre hilfreich...
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
-
- Beiträge: 62
- Registriert: 01.03.2008 05:43
- Wohnort: Hamm
- Kontaktdaten:
Code: Alles auswählen
make_config:
StandardFile$ = "C:\autoexec.cfg"
Pattern$ = "Config (*.cfg)|*.cfg"
Pattern = 0
File$ = SaveFileRequester("Bitte Pfad zu cstrike\cfg angeben!!", StandardFile$, Pattern$, Pattern)
If File$
CreateFile(0,File$)
WriteStringN(0, "//------------------------------------------------------------------------------------------------------------")
WriteStringN(0, "//Autoexec.cfg generated with icecrushers Counter-Strike Source Configurator")
WriteStringN(0, "//All Rights Reserved 2008 Copyright by icecrusher")
WriteStringN(0, "//------------------------------------------------------------------------------------------------------------")
WriteStringN(0, "")
WriteStringN(0, "")
WriteStringN(0,"cl_updaterate "+Chr(34)+StringField(GetGadgetText( #String_24) +Chr(34), k, ""))
WriteStringN(0,"cl_cmdrate "+Chr(34)+StringField(GetGadgetText( #String_26) +Chr(34), k, ""))
WriteStringN(0,"rate "+Chr(34)+StringField(GetGadgetText( #String_30) +Chr(34), k, ""))
If GetGadgetState(#CheckBox_10)
WriteStringN(0,Chr(13)+Chr(10)+ "cl_righthand 0")
Else
WriteStringN(0,Chr(13)+Chr(10)+ "cl_righthand 1")
EndIf
If GetGadgetState(#Checkbox_11)
WriteStringN(0, "net_graph 3")
WriteStringN(0, "net_graphpos 2")
Else
WriteStringN(0, "net_graph 0")
EndIf
If GetGadgetState(#Checkbox_12)
WriteStringN(0, "hud_fastswitch 1")
Else
WriteStringN(0, "hud_fastswitch 0")
EndIf
If GetGadgetState(#Checkbox_13)
WriteStringN(0, "m_filter 1")
Else
WriteStringN(0, "m_filter 0")
EndIf
If GetGadgetState(#Checkbox_14)
WriteStringN(0, "cl_dynamiccrosshair 0")
Else
WriteStringN(0, "cl_dynamiccrosshair 1")
EndIf
If GetGadgetState(#Checkbox_16)
WriteStringN(0, "bind \ toggleconsole")
WriteStringN(0, "con_enable 1")
Else
WriteStringN(0, "con_enable 0")
EndIf
If GetGadgetState(#Checkbox_18)
WriteStringN(0, "fps_max 101")
Else
WriteStringN(0, "fps_max 60")
EndIf
If GetGadgetState(#Checkbox_20)
WriteStringN(0, "violence_hgibs 1")
WriteStringN(0, "violence_agibs 1")
WriteStringN(0, "violence_hblood 1")
WriteStringN(0, "violence_ablood 1")
Else
WriteStringN(0, "violence_hgibs 0")
WriteStringN(0, "violence_agibs 0")
WriteStringN(0, "violence_hblood 0")
WriteStringN(0, "violence_ablood 0")
EndIf
If GetGadgetState(#Checkbox_28)
WriteStringN(0, "cl_allowdownload 1")
Else
WriteStringN(0, "cl_allowdownload 0")
EndIf
If GetGadgetState(#Checkbox_36)
WriteStringN(0, "r_3dsky 0")
Else
WriteStringN(0, "r_3dsky 1")
EndIf
If GetGadgetState(#Checkbox_37)
WriteStringN(0, "r_renderoverlayfragment 0")
Else
WriteStringN(0, "r_renderoverlayfragment 1")
EndIf
If GetGadgetState(#Checkbox_38)
WriteStringN(0, "r_dynamic 0")
Else
WriteStringN(0, "r_dynamic 1")
EndIf
If GetGadgetState(#Checkbox_39)
WriteStringN(0, "r_shadows 0")
Else
WriteStringN(0, "r_shadows 1")
EndIf
If GetGadgetState(#Checkbox_40)
WriteStringN(0, "r_worldlights 0.9")
Else
WriteStringN(0, "r_worldlights 1")
EndIf
If GetGadgetState(#Checkbox_41)
WriteStringN(0, "r_cheapwaterend 1")
WriteStringN(0, "r_cheatwaterstart 1")
Else
WriteStringN(0, "r_cheapwaterend 0")
WriteStringN(0, "r_cheapwaterstart 0")
EndIf
If GetGadgetState(#Checkbox_42)
WriteStringN(0, "r_mmx 1")
WriteStringN(0, "r_sse 1")
WriteStringN(0, "r_sse2 1")
WriteStringN(0, "r3dnow 1")
Else
WriteStringN(0, "r_mmx 0")
WriteStringN(0, "r_sse 0")
WriteStringN(0, "r_sse2 0")
WriteStringN(0, "r3dnow 0")
EndIf
If GetGadgetState(#Checkbox_43)
WriteStringN(0, "mat_forcehardwaresync 0")
Else
WriteStringN(0, "mat_forcehardwaresync 1")
EndIf
If GetGadgetState(#Checkbox_44)
WriteStringN(0, "mat_bumpmap 0")
Else
WriteStringN(0, "mat_bumpmap 1")
EndIf
If GetGadgetState(#Checkbox_45)
WriteStringN(0, "mat_specular 0")
Else
WriteStringN(0, "mat_specular 1")
EndIf
If GetGadgetState(#Checkbox_46)
WriteStringN(0, "mat_antialias 0")
Else
WriteStringN(0, "mat_antialias 1")
EndIf
If GetGadgetState(#Checkbox_47)
WriteStringN(0, "mat_filterlightmaps 0")
Else
WriteStringN(0, "mat_filterlightmaps 1")
EndIf
If GetGadgetState(#Checkbox_48)
WriteStringN(0, "mat_clipz 1")
Else
WriteStringN(0, "mat_clipz 0")
EndIf
If GetGadgetState(#Checkbox_49)
WriteStringN(0, "mat_reducefillrate 1")
Else
WriteStringN(0, "mat_reducefillrate 0")
EndIf
If GetGadgetState(#Checkbox_50)
WriteStringN(0, "mat_forceaniso 0")
Else
WriteStringN(0, "mat_forceaniso 1")
EndIf
If GetGadgetState(#Checkbox_51)
WriteStringN(0, "mat_vsync 0")
Else
WriteStringN(0, "mat_vsync 1")
EndIf
If GetGadgetState(#Checkbox_52)
WriteStringN(0, "mat_trilinear 1")
Else
WriteStringN(0, "mat_trilinear 0")
EndIf
If GetGadgetState(#Checkbox_53)
WriteStringN(0, "cl_smooth 1")
Else
WriteStringN(0, "cl_smooth 0")
EndIf
If GetGadgetState(#Checkbox_54)
WriteStringN(0, "cl_forcepreload 1")
WriteStringN(0, "sv_forcepreload 1")
Else
WriteStringN(0, "cl_forcepreload 0")
WriteStringN(0, "sv_forcepreload 0")
EndIf
If GetGadgetState(#Checkbox_55)
WriteStringN(0, "cl_ejectbrass 0")
Else
WriteStringN(0, "cl_ejectbrass 1")
EndIf
If GetGadgetState(#Checkbox_55)
WriteStringN(0, "rope_wind_dist 0")
WriteStringN(0, "rope_smooth 0")
WriteStringN(0, "rope_subdiv 0")
Else
WriteStringN(0, "rope_wind_dist 1")
WriteStringN(0, "rope_smooth 1")
WriteStringN(0, "rope_subdiv 1")
EndIf
WriteStringN(0, "")
WriteStringN(0, "")
WriteStringN(0, "//------------------------------------------------------------------------------------------------------------")
WriteStringN(0, "//End of Config file")
WriteStringN(0, "//------------------------------------------------------------------------------------------------------------")
MessageRequester("Config erfolgreich gespeichert!", "Ihre config wurde im folgendem Verzeichniss gespeichert:"+Chr(10)+File$, 0)
EndIf
SaveFileReq... liefert ein leerstring zurück bei abbruch.
FF 
Code: Alles auswählen
temp$ = SaveFileRequester("Save", "", "*.cfg", 0)
If temp$
file$ = temp$
Else
file$ = "default.cfg"
EndIf
Debug file$

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
-
- Beiträge: 62
- Registriert: 01.03.2008 05:43
- Wohnort: Hamm
- Kontaktdaten:
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> *edit* irgendwie komme ich darauf jetzt nicht ganz klar grrr
ohne deinen code jetzt zu lesen...
du hast die Abbruchbedingung des SaveFileRequesters nicht korrekt überprüft.
wie mk sagte, bei Abbruch kommt ein Leerstring zurück.
also musst du auf den Leerstring reagieren.
ob du stattdessen einen string mit dem inhalt "default.cfg" zurückgibst,
damit dein proggi ne default config lädt,
oder ob du nur so sicher zurückspringst, dass keine altwerte überschrieben werden,
und du an einer sinnvollen stelle dein proggi wiederaufnimmst, bleibt völlig dir überlassen.
ohne deinen code jetzt zu lesen...
du hast die Abbruchbedingung des SaveFileRequesters nicht korrekt überprüft.
wie mk sagte, bei Abbruch kommt ein Leerstring zurück.
also musst du auf den Leerstring reagieren.
ob du stattdessen einen string mit dem inhalt "default.cfg" zurückgibst,
damit dein proggi ne default config lädt,
oder ob du nur so sicher zurückspringst, dass keine altwerte überschrieben werden,
und du an einer sinnvollen stelle dein proggi wiederaufnimmst, bleibt völlig dir überlassen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
-
- Beiträge: 62
- Registriert: 01.03.2008 05:43
- Wohnort: Hamm
- Kontaktdaten:
- HeX0R
- Beiträge: 3042
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Das sieht mir stark nach einer Subroutine aus.
Ohne abschliessendes Return kommst du da nicht mehr zurück und dein Programm dürfte sich beenden.
Auch ein Grund, warum man Subroutinen eigentlich heutzutage nicht mehr verwendet.
Ohne abschliessendes Return kommst du da nicht mehr zurück und dein Programm dürfte sich beenden.
Auch ein Grund, warum man Subroutinen eigentlich heutzutage nicht mehr verwendet.
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
- hardfalcon
- Beiträge: 3447
- Registriert: 29.08.2004 20:46
Schau dir mal die letzten Zeilen deines geposteten Codeschnipsels an. Da wird einfach in ne Datei reingeschrieben, die gar nicht geöffnet/erstellt ist, wenn beim SaveFileRequester vom Benutzer abgebrochen wurde.
Kein Wunder dass dein Programm dann abstürzt, das hättest du auch selber rausfinden können, wenn du es mal aus der IDE raus mit dem Debugger gestartest hättest (einfach Code in der IDE laden, nachschaun, ob der Debugger aktiviert ist, und F5 drücken).
Kein Wunder dass dein Programm dann abstürzt, das hättest du auch selber rausfinden können, wenn du es mal aus der IDE raus mit dem Debugger gestartest hättest (einfach Code in der IDE laden, nachschaun, ob der Debugger aktiviert ist, und F5 drücken).