afin d'apprendre le langage purebasic.
mais j'ai un problème avec l'utilisation de la fonction préférence
qui permet d'enregistrer les préférences de l'utilisateur.
mon but est d'enregistrer les couleurs d'un ColorRequester()
dans un fichier "couleursfenetre.prefs" mais lorsque j'ouvre mon
programme une 2eme fois la couleur ne s'affiche pas.
a la place j'ai du noir.et quand je ferme et relance mon programme
il y a d'autres couleurs aléatoires qui ne sont pas celles que j'ai choisis.
Code : Tout sélectionner
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;constantes
#chemin_BDD="c:\listecourse.db3"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;gadget
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;variables
ouvpref.l=0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;procedures
Procedure xcm(x.f)
x = x * (PrinterPageWidth()/21) ; 21cm A4
ProcedureReturn x
EndProcedure
Procedure ycm(x.f)
x = x * (PrinterPageHeight()/29.7) ; 29,7cm A4
ProcedureReturn x
EndProcedure
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;debut du programme
IncludePath "C:\Users\yumeria\Documents"
IncludeFile "test.pbf"
initouvre_fenetreprincipal()
ouvpref.l=OpenPreferences("couleursfenetre.prefs")
If ouvpref.l=0
CreatePreferences("couleursfenetre.prefs")
WritePreferenceLong("coulchoixrouge",255)
WritePreferenceLong("coulchoixvert",255)
WritePreferenceLong("coulchoixbleu",255)
ClosePreferences()
ElseIf ouvpref.l>0
coul1.l=ReadPreferenceLong("coulchoixrouge",0)
coul2.l=ReadPreferenceLong("coulchoixvert",0)
coul3.l=ReadPreferenceLong("coulchoixbleu",0)
SetWindowColor(#ouvre_fenetreprincipal,RGB(coul1.l,coul2.l,coul3.l))
ClosePreferences()
EndIf
UseSQLiteDatabase()
OpenDatabase(0,#chemin_BDD,"","")
If DatabaseQuery(0, "SELECT * FROM lcourse")
While NextDatabaseRow(0)
AddGadgetItem(#ListIcon_0,-1,GetDatabaseString(0, 1))
Wend
FinishDatabaseQuery(0)
EndIf
Repeat
event=WaitWindowEvent()
If event=#PB_Event_Gadget
Select EventGadget ()
Case #Button_0
texteitem$=GetGadgetText(#String_0)
DatabaseUpdate(0,"INSERT INTO lcourse(produit) VALUES('"+texteitem$+"')")
AddGadgetItem(#ListIcon_0,-1,GetGadgetText(#String_0))
Case #Button_1
For a=CountGadgetItems(#ListIcon_0) - 1 To 0 Step -1
If GetGadgetItemState(#ListIcon_0, a) = #PB_ListIcon_Checked
RemoveGadgetItem(#ListIcon_0,a)
EndIf
Next
EndSelect
EndIf
If event=#PB_Event_Menu
Select EventMenu()
Case #MenuItem_imprimer
yhaut = 300
xleft = 300
p=0
If PrintRequester()
If StartPrinting("Multipages av n°")
Font=ycm(((8*0.090)/2.5))
LoadFont(1,"Arial",Font)
If StartDrawing(PrinterOutput())
DrawingFont(FontID(1))
For n=0 To CountGadgetItems(#ListIcon_0) ; le nombre de ligne ici
yhaut=yhaut+(Font*1.5)
DrawText(xleft,yhaut,GetGadgetItemText(#ListIcon_0,n-1,0)) ; et ton texte gadget ici !
If yhaut>ycm(780*0.035)
p=p+1 ; 29.7cm/848pixels=0.035 - 21.0cm/600pixels=0.035
DrawText(xcm(500*0.035),ycm(800*0.035),Str(p)) ;numero de bas page droite
NewPrinterPage()
yhaut=300
EndIf
Next n
p=p+1
DrawText(xcm(500*0.035),ycm(800*0.035),Str(p)) ;numero de derniere page
StopDrawing()
EndIf
StopPrinting()
EndIf
EndIf
Case 1
Case 2
For y=0 To CountGadgetItems(#ListIcon_0)
texteitem$=GetGadgetItemText(#ListIcon_0,y)
DatabaseUpdate(0,"INSERT INTO lcourse(produit) VALUES('"+texteitem$+"')")
Debug texteitem$
Next
Case #MenuItem_2
couleurschoix=ColorRequester()
;SetWindowColor(#ouvre_fenetreprincipal,ColorRequester())
couleurschoix1.l=Red(couleurschoix)
couleurschoix2.l=Green(couleurschoix)
couleurschoix3.l=Blue(couleurschoix)
OpenPreferences("couleursfenetre.prefs")
WritePreferenceLong("coulchoixrouge",Red(couleurschoix1.l))
WritePreferenceLong("coulchoixvert",Green(couleurschoix2.l))
WritePreferenceLong("coulchoixbleu",Blue(couleurschoix3.l))
ClosePreferences()
EndSelect
EndIf
Until event=#PB_Event_CloseWindow
Code : Tout sélectionner
; Form Designer for Purebasic - 5.0
; Warning: this file uses a strict syntax, if you edit it, make sure to respect the Form Designer limitation or it won't be opened again.
Enumeration #PB_Compiler_EnumerationValue
#ouvre_fenetreprincipal
EndEnumeration
Enumeration #PB_Compiler_EnumerationValue
#Button_0
#Button_1
#ListIcon_0
#String_0
#String_1
EndEnumeration
Enumeration #PB_Compiler_EnumerationValue
#menu_couleurs
#MenuItem_2
#MenuItem_imprimer
EndEnumeration
Procedure Initouvre_fenetreprincipal()
OpenWindow(#ouvre_fenetreprincipal, 0, 0, 670, 470, "cours", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered)
CreateMenu(0, WindowID(#ouvre_fenetreprincipal))
MenuTitle("couleur")
MenuItem(#MenuItem_2,"definir une couleur")
MenuTitle("imprimer")
MenuItem(#MenuItem_imprimer,"imprimer")
ButtonGadget(#Button_0, 30, 100, 120, 50, "ajouter")
ButtonGadget(#Button_1, 330, 100, 120, 50, "retirer")
ListIconGadget(#ListIcon_0, 30, 170, 420, 270, "mes courses", 100, #PB_ListIcon_CheckBoxes)
StringGadget(#String_0, 30, 60, 120, 30, "tapez votre texte")
StringGadget(#String_1, 330, 60, 120, 30, "tapez votre texte")
EndProcedure