Code : Tout sélectionner
#file.s = "infos.txt"
#boutton = 1
#gadget = 3
#gadget_nbr = 3
#text = 6
#save = 9
#ok = 12
#annul = 13
EOL.s = Chr(13) + Chr(10)
Global user.s, pswd.s, prov.s
Global checked.b, pourcentage.b, option1.b
;user = "lionel"
;pswd = "020585"
;prov = "pop.free.fr"
Procedure save_data()
If CreateFile(1,#file)
WriteByte(Len(user))
For i = 1 To Len(user): WriteByte(255 - Asc(Mid(user,i,1))): Next i
WriteByte(Len(pswd))
For i = 1 To Len(pswd): WriteByte(255 - Asc(Mid(pswd,i,1))): Next i
WriteByte(Len(prov))
For i = 1 To Len(prov): WriteByte(255 - Asc(Mid(prov,i,1))): Next i
WriteByte(checked)
WriteByte(pourcentage)
WriteByte(GetGadgetState(#save))
CloseFile(1)
ProcedureReturn(1)
Else
ProcedureReturn(0)
EndIf
EndProcedure
Procedure load_data()
If OpenFile(1, #file)
user = "": pswd = "": prov = ""
u = ReadByte(): For i = 1 To u: user = user + Chr(255-ReadByte()): Next i
u = ReadByte(): For i = 1 To u: pswd = pswd + Chr(255-ReadByte()): Next i
u = ReadByte(): For i = 1 To u: prov = prov + Chr(255-ReadByte()): Next i
checked = ReadByte()
pourcentage = ReadByte()
option1 = ReadByte()
CloseFile(1)
ProcedureReturn(1)
Else
ProcedureReturn(0)
EndIf
EndProcedure
If OpenWindow(0, 0, 0, 260, 310, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_TitleBar, "Anti-spam - Option")
If CreateGadgetList(WindowID())
;save_data()
load_data()
TextGadget(0, 10, 10, 250, 20, "Nom d'utilisateur : " + user)
ButtonGadget(#boutton, 30, 30, 100, 25, "Modifier")
TextGadget(2, 10, 80, 150, 20, "Niveau de filtrage :")
CheckBoxGadget(#gadget+0, 30, 100, 130, 20, "Filtrage assuré (100%)")
CheckBoxGadget(#gadget+1, 30, 120, 130, 20, "Filtrage strict ( 75%)")
CheckBoxGadget(#gadget+2, 30, 140, 60, 20, "autre :")
If checked
SetGadgetState(checked,1)
Else
SetGadgetState(#gadget+1,0): checked = #gadget+1
EndIf
StringGadget(#text, 100, 140, 40, 20, "")
SetGadgetText(#text, Str(pourcentage))
TextGadget(7, 150, 143, 350, 20, "(pourcentage)")
TextGadget(8, 10, 180, 150, 15, "Autres options :")
CheckBoxGadget(#save, 30, 200, 300, 15, "Conserver les mails supprimés.")
TextGadget(10, 50, 215, 350, 15, "(si on n'est pas totalement sur que le mail")
TextGadget(11, 50, 230, 350, 15, "est bien un spam)")
SetGadgetState(#save,option1)
ButtonGadget(#ok, 40, 270, 80, 25, "OK")
ButtonGadget(#annul, 140, 270, 80, 25, "Annuler")
EndIf
EndIf
Repeat
Event = WaitWindowEvent()
Event2 = EventGadgetID()
If Event = #PB_Event_Gadget
; gestion des checkbox
If (Event2 >= #gadget And Event2 < #gadget + #gadget_nbr)
For i = 0 To #gadget-1
SetGadgetState(#gadget+i,0)
Next i
SetGadgetState(Event2,1): checked = Event2
EndIf
If Event2 = #boutton
user = InputRequester("Configuration", "Nom d'utilisateur : ", user)
pswd = InputRequester("Configuration", "Mot de passe : ", pswd)
prov = InputRequester("Configuration", "Adresse du Provider : (ex: pop.free.fr)", prov)
SetGadgetText(0,"Nom d'utilisateur : " + user)
EndIf
If Event2 = #text
If Val(GetGadgetText(#text)) < 0 :SetGadgetText(#text,Str( 0)): EndIf
If Val(GetGadgetText(#text)) > 100 :SetGadgetText(#text,Str(100)): EndIf
EndIf
If Event2 = #ok
If user <> "" And pswd <> "" And prov <> ""
y = save_data()
If y = 0: y = MessageRequester("Attention", "Une erreur s'est produite durant la sauvegarde de vos paramètres." + EOL + "Le programme va être quitter !", #PB_MessageRequester_Ok): End: EndIf
End
Else
y = MessageRequester("Attention", "Les données sont incomplètes." + EOL + "Veuillez saisir votre login, mot de passe et l'adresse de votre provider.", #PB_MessageRequester_Ok)
EndIf
EndIf
If Event2 = #annul
End
EndIf
EndIf
Until Event = #PB_EventCloseWindow; si on appui sur la croix, on ferme le programme
End