j'ai un petit probleme
je crée un element ensuite quand on double clique sur l'element on peux voir sa fiche mais j'aimerai ausi qu'on puisse modfier la fiche j'ai mis un bouton editer mais il marche tres mal
qui peux m'aider
ceci est un code d'exemple ne pas tenir compte de l'ecriture c'est un bordel .....
Code : Tout sélectionner
;constante des fenetres
Enumeration
#win_0
#win_1
#win_2
EndEnumeration
;Constante des gadgets
Enumeration
#list_0
#frame_0
#Text_nom
#string_nom
#text_login
#string_login
#text_passe
#string_passe
#button_ajouter
#button_quitter
#button_editer
EndEnumeration
; constante du menu et de la barre outil
Enumeration
#bar_Nouveau
#bar_charge
#bar_sauve
#bar_remove
#menu_vider
#menu_quite
EndEnumeration
Enumeration
#menu_champs
#menu_sortir
EndEnumeration
;fonts
Global fontID1
fontID1 = LoadFont( 0,"arial",11)
Global fontID2
fontID2 =LoadFont(2,"arial",12,#pb_font_bold)
;gestion des élements
Structure gestion_struct
site.s
login.s
password.s
EndStructure
NewList items.gestion_struct()
Procedure.b item_clear()
ClearList(Items())
EndProcedure
Procedure.b item_add(site.s,login.s,password.s)
If AddElement(items())
items()\site=site
items()\login=login
items()\password=password
EndIf
ProcedureReturn#true
EndProcedure
Procedure.l Item_Load(fichier.s)
If OpenPreferences(fichier)
Repeat
i+1
If PreferenceGroup("Item."+Str(i))
site.s = ReadPreferenceString("Site","")
login.s = ReadPreferenceString("Login","")
password.s = ReadPreferenceString("Password","")
Item_Add(site,login,password)
Else
Break
EndIf
ForEver
ClosePreferences()
ProcedureReturn i
EndIf
EndProcedure
Procedure.l Item_Save(fichier.s)
If CreatePreferences(fichier)
ForEach Items()
i+1
PreferenceGroup("Item."+Str(i))
WritePreferenceString("Site",Items()\site)
WritePreferenceString("Login",Items()\login)
WritePreferenceString("Password",Items()\password)
Next
ClosePreferences()
ProcedureReturn i
EndIf
EndProcedure
Procedure Open(append.b)
If append
ClearGadgetItemList(#list_0)
Else
Item_Clear()
EndIf
Item_Load("Passord.data")
ForEach Items()
line.s = Items()\site+Chr(10)+Items()\login+Chr(10)+Items()\password
AddGadgetItem(#list_0,-1,line)
Next
DisableToolBarButton(2,0)
DisableToolBarButton(3,0)
DisableMenuItem(4,0)
EndProcedure
Procedure SaveAs()
Item_Save("Passord.data")
EndProcedure
Procedure RemoveGadget()
i = 0
For element=0 To CountGadgetItems(#List_0)-1
If GetGadgetItemState(#List_0, element) & #PB_ListIcon_Checked
MessageRequester("Info ", "l'élément est effacé ", #MB_OK|#MB_ICONWARNING)
RemoveGadgetItem(#List_0,element)
EndIf
Next
EndProcedure
;procedure pour les actions des menus
Procedure annule_champs()
MessageRequester("Info ", "Les champs sont effacées ", #MB_OK|#MB_ICONWARNING)
SetGadgetText(#string_nom ,"")
SetGadgetText(#string_login,"")
SetGadgetText(#string_passe,"")
ActivateGadget(#string_nom)
EndProcedure
Procedure vide()
item_clear()
MessageRequester("Info ", "Vider la liste ", #MB_OK|#MB_ICONWARNING)
ClearGadgetItemList(#list_0)
DisableToolBarButton(2,1)
DisableToolBarButton(3,1)
DisableMenuItem(4,1)
EndProcedure
;procdure des fenetres
Procedure Main()
If OpenWindow(#win_0,0,0,640,540,#PB_Window_SystemMenu|#PB_Window_MinimizeGadget| #PB_Window_TitleBar |#PB_Window_ScreenCentered,"Gestion des mot de passe ")
If CreateToolBar(0,WindowID())
ToolBarStandardButton(#bar_Nouveau, #PB_ToolBarIcon_New)
ToolBarStandardButton(#bar_charge, #PB_ToolBarIcon_open)
ToolBarStandardButton(#bar_sauve, #PB_ToolBarIcon_save)
ToolBarStandardButton(#bar_remove, #PB_ToolBarIcon_Delete )
ToolBarToolTip(0,"Ajouter un élément à la liste")
ToolBarToolTip(1,"Charge une liste")
ToolBarToolTip(2,"Sauvegarde une liste")
ToolBarToolTip(3,"Efface un élément de la liste")
DisableToolBarButton(2,1)
DisableToolBarButton(3,1)
EndIf
If CreateMenu(0,WindowID())
MenuTitle("Edition")
MenuItem(#menu_vider,"Vider la liste ")
MenuBar()
MenuItem(#menu_quite,"Quitter")
DisableMenuItem(4,1)
EndIf
If CreateGadgetList(WindowID())
ListIconGadget(#list_0,5,30,630,485,"site web",270,#pb_listicon_checkboxes|#pb_listicon_gridlines)
AddGadgetColumn(#list_0,1,"login",150)
AddGadgetColumn(#list_0,2,"Mot de passe",206)
EndIf
SetGadgetFont(#list_0,fontID1)
EndIf
EndProcedure
Procedure creation()
If OpenWindow(#win_1,0,0,400,500, #PB_Window_TitleBar |#PB_Window_ScreenCentered,"Creation d'une fiche")
If CreateGadgetList(WindowID())
Frame3DGadget(#frame_0,10,10,380,470,"")
TextGadget(#text_nom,120,90,160,30,"Adresse du site web: ",#pb_text_center)
SetGadgetFont(#text_nom,fontID2)
StringGadget(#string_nom,55,120,290,30,"")
SetGadgetFont(#string_nom,fontID1)
TextGadget(#text_login,125,180,140,30,"Login :",#pb_text_center)
SetGadgetFont(#text_login,fontID2)
StringGadget(#string_login,55,210,290,30,"")
SetGadgetFont(#string_login,fontID1)
TextGadget(#text_passe,140,280,140,30,"Mot de passe : ",#pb_text_center)
SetGadgetFont(#text_passe, fontID2)
StringGadget(#string_passe,55,305,290,30,"")
SetGadgetFont(#string_passe,fontID1)
ButtonGadget(#button_ajouter,124,390,140,30,"AJOUTER")
SetGadgetFont(#button_ajouter,fontID2)
GadgetToolTip(#button_ajouter,"Ajouter un nouveau élément à la liste")
EndIf
If CreateMenu(1,WindowID())
MenuTitle("Edition")
MenuItem(#menu_champs,"Effacer les champs ")
MenuItem(#menu_sortir,"Annuler la fiche")
EndIf
Repeat
event=WaitWindowEvent()
Select event
Case #pb_eventmenu
Select EventMenuID()
Case #menu_champs:annule_champs()
Case#menu_sortir:MessageRequester("Info ", "Annulation de la fiche " + Chr(10) + "", #MB_OK|#MB_ICONWARNING)
fermer_window_1=1
EndSelect
Case#pb_eventgadget
Select EventGadgetID()
Case #button_ajouter
a.s= GetGadgetText(#string_nom)
b.s= GetGadgetText(#string_login)
c.s=GetGadgetText(#string_passe)
If a<>"" And b<>""And c<>""
item_add(a,b,c)
AddGadgetItem(#list_0,-1,a+Chr(10)+b+Chr(10)+c)
EndIf
fermer_window_1=1
DisableToolBarButton(2,0)
DisableToolBarButton(3,0)
DisableMenuItem(4,0)
EndSelect
EndSelect
Until fermer_window_1=1
CloseWindow(#win_1)
While WindowEvent():Wend
EndIf
EndProcedure
Procedure fenetre2(index)
If OpenWindow(#win_2,0,0,400,500, #PB_Window_TitleBar |#PB_Window_ScreenCentered,"Edition de la fiche")
If CreateGadgetList(WindowID())
Frame3DGadget(#frame_0,10,10,380,470,"")
TextGadget(#text_nom,120,90,160,30,"Adresse du site web: ",#pb_text_center)
SetGadgetFont(#text_nom,fontID2)
StringGadget(#string_nom,55,120,290,30,"")
SetGadgetFont(#string_nom,fontID1)
TextGadget(#text_login,125,180,140,30,"Login :",#pb_text_center)
SetGadgetFont(#text_login,fontID2)
StringGadget(#string_login,55,210,290,30,"")
SetGadgetFont(#string_login,fontID1)
TextGadget(#text_passe,140,280,140,30,"Mot de passe : ",#pb_text_center)
SetGadgetFont(#text_passe, fontID2)
StringGadget(#string_passe,55,305,290,30,"")
SetGadgetFont(#string_passe,fontID1)
ButtonGadget(#button_quitter,35,390,140,30,"Quitter")
SetGadgetFont(#button_quitter,fontID2)
ButtonGadget(#button_editer,220,390,140,30,"Editer")
SetGadgetFont(#button_editer,fontID2)
EndIf
SelectElement(items(),index)
SetGadgetText(#string_nom,items()\Site)
SetGadgetText(#string_login,items()\login)
SetGadgetText(#string_passe,items()\Password)
Repeat
event=WaitWindowEvent()
Select event
Case#pb_eventgadget
Select EventGadgetID()
Case #button_editer
i = 0
For element=0 To CountGadgetItems(#List_0)-1
If GetGadgetItemState(#List_0, element)
MessageRequester("Info ", "l'élément est effacé ", #MB_OK|#MB_ICONWARNING)
RemoveGadgetItem(#List_0,element)
EndIf
Next
a.s= GetGadgetText(#string_nom)
b.s= GetGadgetText(#string_login)
c.s=GetGadgetText(#string_passe)
If a<>"" And b<>""And c<>""
item_add(a,b,c)
AddGadgetItem(#list_0,-1,a+Chr(10)+b+Chr(10)+c)
EndIf
fermer_window_2=1
Case #button_quitter
fermer_window2=1
EndSelect
EndSelect
Until fermer_window2=1
CloseWindow(#win_2)
EndIf
EndProcedure
; boucle principale
main()
Repeat
event= WaitWindowEvent()
Select event
Case #pb_eventmenu
Select EventMenuID()
Case #bar_nouveau:creation()
Case#bar_charge:open(false)
Case#bar_sauve:saveas()
Case#bar_remove:RemoveGadget()
Case#menu_vider:vide()
Case #menu_quite:fermer_window_0=1
EndSelect
Case #PB_EventGadget
Select EventGadgetID()
Case #list_0
Select EventType()
Case #PB_EventType_LeftDoubleClick
Element = GetGadgetState(#list_0)
If Element>-1
fenetre2(Element)
EndIf
EndSelect
EndSelect
Case #pb_eventclosewindow
fermer_window_0=1
EndSelect
Until fermer_window_0=1
End