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 item_Modifie(Index,site.s, login.s, password.s)
IndexCourant = ListIndex(items()) ; mémorise la position actuelle de la liste
SelectElement(items(), Index)
items()\site = site
items()\login = login
items()\password = password
SelectElement(items(), IndexCourant) ; restitue la position de la liste
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, "Modifier")
SetGadgetFont(#button_editer, fontID2)
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 <> ""
SetGadgetItemText(#list_0, Index, a, 0) ; texte 1ere colonne modifié
SetGadgetItemText(#list_0, Index, b, 1) ; texte 2eme colonne modifié
SetGadgetItemText(#list_0, Index, c, 2) ; texte 3eme colonne modifié
item_Modifie(Index,site.s, login.s, password.s)
; 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
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
j'ai bien essayé avec ca mais je n'y arrive pas :
Code : Tout sélectionner
Global res.s
Procedure encode(txt.s, cle.s)
res.s=""
clefs.s=""
For n=0 To Len(txt)/Len(cle)
clefs.s + cle
Next
clefs=Right(clefs,Len(txt))
For n= 1 To Len(txt)
x=Asc(Mid(txt,n,1))-Asc(Mid(clefs,n,1))
If x<1 :x+255:EndIf
xx.s + Str(x)+" "
res + Chr(x)
Next
EndProcedure
Procedure decode(txt.s,cle.s)
res.s=""
clefs.s=""
For n=0 To Len(txt)/Len(cle)
clefs.s + cle
Next
clefs=Right(clefs,Len(txt))
For n= 1 To Len(txt)
x=Asc(Mid(txt,n,1))+Asc(Mid(clefs,n,1))
If x>256 :x-255:EndIf
res + Chr(x)
Next
EndProcedure
clef.s = ProgramParameter()
If clef="" : clef="Secret" : EndIf
texte.s="122 Ceci est un teste d'encodage"
encode(texte,clef);encod
Debug res
decode(res,clef);encod
Debug res
Code : Tout sélectionner
mdp.s = ReadPreferenceString("mdp", "")
OpenWindow(fen, 10, 10, 90, 26, #PB_Window_SystemMenu | #PB_Window_ScreenCentered, "saisie clé")
CreateGadgetList(WindowID())
StringGadget(2, 2, 2, 86, 22, mdp)
Repeat
serv.s = GetGadgetText(2)
Until WaitWindowEvent() = #PB_Event_CloseWindow
CloseWindow(fen)
;
;
;MessageRequester("code = ", serv)
en plus j'aurais aimé pouvoir cliquer sur l'adresse internet pour ouvrir la page (premiere colonne) avec :
Code : Tout sélectionner
HyperLinkGadget
SI VOUS AVEZ NE SERAIT-CE QUE DES EXEMPLES POUR COMPRENDRE LE MECANISME....
SOYEZ SYMPA, AIDEZ-MOI
C'EST MA FETE QUAND MEME (BONNE FETE AUSSI A TOUS LES PAPA)