Rafraichir des StringGadget
Publié : dim. 23/déc./2007 18:52
Bonjour à tous.
Voici mon problème.
Je vous met mon code :
Donc comme écrit dans le code lui-même, le problème lorsque l'on valide avec le 2ème bouton (celui du bas), c'est qu'on ne reste pas au niveau du 2ème "Frame_3D" >Trucs 2 mais que l'on revient en haut du programme.
Et si on a déplacé la fenêtre, elle se remet aux coordonnées d'origine (au passage comment palier à ce problème?).
Normal étant donné que c'est comme si on fermait le programme et qu'on l'ouvrait à nouveau.
Donc existe t'il une technique pour rafraichir les StringGadget?
Et y a t'il moyen d'optimiser mon code, parce qu'avec 10000 variables ç'est peut-être répétitif?
Peut-on colorer le code en purebasic dans ce forum?
Bye.
Voici mon problème.
Je vous met mon code :
Code : Tout sélectionner
; Windows
Enumeration
#Window_principale
EndEnumeration
; Gadgets
Enumeration
#ScrollArea_0
#Frame3D_01
#String_var01
#Button_1
#Frame3D_02
#String_var02
#Button_2
EndEnumeration
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+ Création du fichier "maConfig.ini" +
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
; On ouvre l'interface et si le fichier "maConfig.ini" n'existe pas on le créer avec des valeurs par défaut.
CreatePreferences("maConfig.ini")
WritePreferenceString("var01", "Truc 1 par défaut.")
WritePreferenceString("var02", "Truc 2 par défaut.")
ClosePreferences()
;-+++++++++ DEBUT DES PROCEDURES
; A mettre impérativement au dessus de "Procedure OpenWindow_principale()" sinon cela ne fonctionne pas
Procedure Lecture()
OpenPreferences("maConfig.ini")
; On lit le fichier ".ini" et si une variable est vide on rempli le "StringGadget" avec une valeur par défaut.
Global var01$ = ReadPreferenceString("var01", "Truc 1 par défaut.")
Global var02$ = ReadPreferenceString("var02", "Truc 2 par défaut.")
ClosePreferences()
EndProcedure
Procedure OpenWindow_principale()
If OpenWindow(#Window_principale, 385, 0, 400, 400, "Mon super prog ;)", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
If CreateGadgetList(WindowID(#Window_principale))
ScrollAreaGadget(#ScrollArea_0, 5, 5, 385, 385, 388, 970, 10, #PB_ScrollArea_Single) ;>
Frame3DGadget(#Frame3D_01, 10, 20, 340, 250, "Trucs 1")
StringGadget(#String_var01, 20, 60, 310, 20, var01$)
ButtonGadget(#Button_1, 135, 220, 100, 20, "Valider")
Frame3DGadget(#Frame3D_02, 10, 290, 340, 280, "Trucs 2")
StringGadget(#String_var02, 20, 320, 310, 20, var02$)
ButtonGadget(#Button_2, 135, 530, 100, 20, "Valider")
CloseGadgetList()
EndIf
EndIf
EndProcedure
;-+++++++++ FIN DES PROCEDURES
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
;+ Ouverture du programme +
;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Lecture()
OpenWindow_principale()
; La boucle magique
Repeat
Event = WaitWindowEvent()
Select Event
Case #PB_Event_Gadget
Select EventGadget()
; Si on appuie sur les différent boutons Valider, on réécrit le fichier "maConfig.ini" avec les valeurs des StringGadget.
Case #Button_1, #Button_2
;- Réécriture
CreatePreferences("maConfig.ini")
WritePreferenceString("var01", GetGadgetText(#String_var01))
WritePreferenceString("var02", GetGadgetText(#String_var02))
ClosePreferences()
;
; --------------- LE PROBLEME EST ICI
;
;Pour raffraichir les "StringGadget" les nouvelles valeurs voici comment je procède :
; On lit à nouveau le fichier "maConfig.ini" pour avoir les nouvelles valeurs de var01$ et var02$.
Lecture()
; Et on ferme et ré-ouvre le programme avec les nouvelles valeurs.
; Inconvénient on ne reste pas au niveau du 2ème "Frame_3D" >Trucs 2< mais on revient au début de >Trucs 1< :(((
OpenWindow_principale()
EndSelect
EndSelect
Until Event = #PB_Event_CloseWindow
Et si on a déplacé la fenêtre, elle se remet aux coordonnées d'origine (au passage comment palier à ce problème?).
Normal étant donné que c'est comme si on fermait le programme et qu'on l'ouvrait à nouveau.
Donc existe t'il une technique pour rafraichir les StringGadget?
Et y a t'il moyen d'optimiser mon code, parce qu'avec 10000 variables ç'est peut-être répétitif?
Peut-on colorer le code en purebasic dans ce forum?
Bye.