un petit programme pour les contacts.
voila
@++

Code : Tout sélectionner
; Mes contact version 01
; écris par jbernard - copyright 2007
; Les constantes
; Fenetres
Enumeration
#Fenetre_main
#Fenetre_ajouter
EndEnumeration
;Gadgets
Enumeration
#Liste_amie
#Bouton_nouveau
#Bouton_sauver
#bouton_effacer
#bouton_info
#cadre
#text_pseudo
#champ_pseudo
#text_prenom
#champ_prenom
#text_age
#champ_age
#text_ville
#champ_ville
#text_mail
#champ_mail
#bouton_ajouter
#bouton_annule
#file
#BarreEtat
EndEnumeration
;procedure pour ajouter un ou une ami(e) à la liste
Structure Gestion
Pseudo.s
Prenom.s
Age.s
Ville.s
Email.s
EndStructure
Global NewList Amis.Gestion()
Procedure.b Effacer_liste()
ClearList(Amis())
ProcedureReturn l
EndProcedure
; Creation de la liste chainée
Procedure.b ajoute_amis()
LastElement(Amis())
If AddElement(Amis())
Amis()\Pseudo=GetGadgetText(#champ_pseudo)
Amis()\Prenom=GetGadgetText(#champ_prenom)
Amis()\Age=GetGadgetText(#champ_age)
Amis()\Ville=GetGadgetText(#champ_ville)
Amis()\Email=GetGadgetText(#champ_mail)
AddGadgetItem(#Liste_amie,-1,Amis()\pseudo+Chr(10)+Amis()\Prenom+Chr(10)+Amis()\age+Chr(10)+Amis()\ville+Chr(10)+Amis()\Email)
Resultat = CountGadgetItems(#Liste_amie);<---------------------------- ici --------------------------
StatusBarText(#BarreEtat, 0, "nombre de contacte: "+Str(Resultat));<---------------------------- ici --------------------------
EndIf
ProcedureReturn l
EndProcedure
;Procedure d'effacement d'un nom de la liste
Procedure Supprimer_nom()
Protected i,total_item.l
total_item=CountGadgetItems(#Liste_amie)-1
For i=total_item To 0 Step -1
If GetGadgetItemState(#Liste_amie,i)&#PB_ListIcon_Checked
RemoveGadgetItem(#Liste_amie,i)
SelectElement(Amis(),i)
DeleteElement(Amis())
EndIf
Next i
Resultat = CountGadgetItems(#Liste_amie);<---------------------------- ici --------------------------
StatusBarText(#BarreEtat, 0, "nombre de contacte: "+Str(Resultat));<---------------------------- ici --------------------------
EndProcedure
; procedure de sauvegarde du fichier
Procedure sauver()
ResetList(Amis())
CreateFile(#file,"Contact.dat")
ForEach Amis()
WriteStringN(#file,Amis()\Pseudo)
WriteStringN(#file,Amis()\Prenom)
WriteStringN(#file,Amis()\Age)
WriteStringN(#file,Amis()\Ville)
WriteStringN(#file,Amis()\Email)
Next
CloseFile(#file)
EndProcedure
;Procedure des fenetres
; Fenetre principale
Procedure main()
If OpenWindow(#Fenetre_main,0,0,640,350," Mes Contacts version 01-2007",#PB_Window_MinimizeGadget|#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_TitleBar)
If CreateGadgetList(WindowID(#Fenetre_main))
ListIconGadget(#Liste_amie,10,50,620,280,"Pseudo :",150,#PB_ListIcon_GridLines|#PB_ListIcon_CheckBoxes)
AddGadgetColumn(#Liste_amie,1,"Prénom:",100)
AddGadgetColumn(#Liste_amie,2,"Age:",50)
AddGadgetColumn(#Liste_amie,3,"Ville:",195)
AddGadgetColumn(#Liste_amie,4,"Email:",200)
ButtonGadget(#Bouton_nouveau,10,10,120,30,"Ajouter un contact")
ButtonGadget(#Bouton_sauver,150,10,120,30,"Sauver la liste")
ButtonGadget(#Bouton_effacer,290,10,120,30,"Effacer un contact")
ButtonGadget(#bouton_info,435,10,120,30,"Information")
CreateStatusBar(#BarreEtat, WindowID(#Fenetre_main))
Resultat = CountGadgetItems(#Liste_amie)
StatusBarText(#BarreEtat, 0, "nombre de contacte: "+Str(Resultat))
EndIf
EndIf
EndProcedure
;Fenetre ajouter un ami ou une amie
Procedure ajouter()
If OpenWindow(#Fenetre_ajouter,0,0,320,340,"Ajouter un nouveau contact",#PB_Window_TitleBar|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Fenetre_ajouter))
Frame3DGadget(#cadre,10,10,300,280,"")
TextGadget(#text_pseudo,90,25,120,30,"Pseudo :",#PB_Text_Center)
StringGadget(#champ_pseudo ,45,45,220,20,"")
TextGadget(#text_prenom,90,75,120,30,"Prenom :",#PB_Text_Center)
StringGadget(#champ_prenom,45,95,220,20,"")
TextGadget(#text_age,90,125,120,30,"Age :",#PB_Text_Center)
StringGadget(#champ_age,135,145,25,20,"",#PB_String_Numeric)
TextGadget(#text_ville,90,175,120,30,"Ville :",#PB_Text_Center)
StringGadget(#champ_ville,45,195,220,20,"")
TextGadget(#text_mail,90,225,120,30,"Email :",#PB_Text_Center)
StringGadget(#champ_mail,45,245,220,20,"")
ButtonGadget(#bouton_ajouter,20,300,120,30,"Ajouter")
ButtonGadget(#bouton_annule,180,300,120,30,"Annuler")
ProcedureReturn #True
EndIf
EndIf
EndProcedure
;Boucle du programme
main()
;Chargement de la liste au demarrage du programme
If OpenFile(#file,"Contact.dat")<>0
ResetList(Amis())
OpenFile(#file,"Contact.dat")
While Eof(#file)=0
If AddElement(Amis())
Amis()\Pseudo=ReadString(#file)
Amis()\Prenom=ReadString(#file)
Amis()\Age=ReadString(#file)
Amis()\Ville=ReadString(#file)
Amis()\Email=ReadString(#file)
AddGadgetItem(#Liste_amie,-1,Amis()\pseudo+Chr(10)+Amis()\Prenom+Chr(10)+Amis()\age+Chr(10)+Amis()\ville+Chr(10)+Amis()\Email)
EndIf
Wend
CloseFile(#file)
EndIf
; programation de la gestion des evenements des fenetres
Repeat
Select WaitWindowEvent ()
Case #PB_Event_Gadget
Select EventGadget()
Case #Bouton_nouveau:ajouter()
Case#bouton_sauver:sauver()
Case #bouton_effacer:Supprimer_nom()
Case #bouton_info:MessageRequester("Information","Contact crée par Jbernard copyright 2007",#PB_MessageRequester_Ok)
Case #bouton_ajouter:ajoute_amis()
CloseWindow(#Fenetre_ajouter)
Case #bouton_annule
CloseWindow(#Fenetre_ajouter)
EndSelect
Case #PB_Event_CloseWindow
Select EventWindow()
Case #Fenetre_main
Quit=#True
EndSelect
EndSelect
Until Quit
End
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
yep c'est facile tu cree ta statuebar
ensuite tu lui met la fonction
qui renvoie le nombre d'element dans un listicongadget et le tour et jouer
.
@++
Code : Tout sélectionner
CreateStatusBar(#BarreEtat, WindowID)
Code : Tout sélectionner
CountGadgetItems(#Gadget)

@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
[quote="venom"]yep c'est facile tu cree ta statuebar
ensuite tu lui met la fonction
qui renvoie le nombre d'element dans un listicongadget et le tour et jouer
.
ce qui donne ceux-ci
@++
Code : Tout sélectionner
CreateStatusBar(#BarreEtat, WindowID)
Code : Tout sélectionner
CountGadgetItems(#Gadget)

ce qui donne ceux-ci
Code : Tout sélectionner
Resultat = CountGadgetItems(#Liste_amie)
StatusBarText(#BarreEtat, 0, "nombre de contacte: "+Str(Resultat))
@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Code repris de Bernard13, revus par Lna et Venon.... etc..
Code : Tout sélectionner
;---------------------------------------------------------------------------------------------------------------
;Gestion de mes Adresses (Forme basique de gestion de fichiers) *
;Code repris de Bernard13, revus par Lna et Venon.... Et commenté par Cris
;
; Je me suis contenté de le comprendre, remettre en forme et d'y ajouter des éléments
; pour en faire un fichier d'adresse avec une fontion qui doit s'y trouver la "Modification"...
; Pour moi il aura présenté l'avantage d'avoir dans un seul code toute une série d'éléments
; qui utilisent le PureBasic pour la gestion de fenêtres, de boutons, de listes chainées etc...
; Et même, quoiqu'en dise Cris, une certaine conception de programme (court)...
;------------------------------------------------------------------------------------------------------------------
;
;Constantes
Enumeration
#Fenetre_main
#Fenetre_ajouter
EndEnumeration
Enumeration
#Liste
#cadre_0
#text_Nom
#String_Nom
#text_Prenom
#String_Prenom
#text_Adresse
#String_Adresse
#text_CodePostal
#String_CodePostal
#text_Ville
#String_Ville
#text_Telephone
#String_Telephone
#bouton_valide
#bouton_annule
#file
EndEnumeration
Enumeration
#menu_Ajoute
#menu_Modifier
#menu_Effacer
#menu_Sauver
#menu_Quitter
EndEnumeration
; procedure pour la creation d'un élement de la liste
Structure Gestion
Nom.s
Prenom .s
Adresse.s
CodePostal.s
Ville.s
Telephone.s
EndStructure
Global NewList Amies.Gestion(), Modification
Modification=0
Procedure.b Ajoute_Amies()
If AddElement (Amies())
Amies()\Nom= GetGadgetText ( #String_Nom )
Amies()\Prenom= GetGadgetText (#String_Prenom )
Amies()\Adresse= GetGadgetText (#String_Adresse )
Amies()\CodePostal= GetGadgetText ( #String_CodePostal )
Amies()\Ville=GetGadgetText(#String_ville)
Amies()\Telephone=GetGadgetText(#String_Telephone)
AddGadgetItem ( #Liste ,-1,Amies()\Nom+ Chr (10)+Amies()\Prenom+ Chr (10)+Amies()\Adresse+Chr(10)+Amies()\CodePostal+Chr(10)+Amies()\Ville+Chr(10)+Amies()\Telephone)
EndIf
ProcedureReturn l
EndProcedure
Procedure RemoveGadget() ; **** Effacer un ****
Protected i.l,total_item.l
total_item=CountGadgetItems(#Liste)-1 ; pour compter l'élément 0
For i=total_item To 0 Step -1
If GetGadgetItemState(#Liste, i) & #PB_ListIcon_Checked
RemoveGadgetItem(#Liste,i) ; Efface l'élément du ListIconGadget
SelectElement(Amies(),i)
DeleteElement(Amies()) ; Efface l'élément de la liste chainée
EndIf
Next i
EndProcedure
Procedure Sauver()
CreateFile ( #file , "Mes_Amies" ) ;
ForEach Amies()
WriteStringN ( #file ,Amies()\Nom)
WriteStringN ( #file ,Amies()\Prenom)
WriteStringN ( #file ,Amies()\Adresse)
WriteStringN ( #file ,Amies()\CodePostal)
WriteStringN ( #file, Amies()\Ville)
WriteStringN ( #file, Amies()\Telephone)
Next
CloseFile ( #file)
EndProcedure
; Procedure des fenetres
Procedure Main_0()
If OpenWindow(#Fenetre_main,0,0,570,335," Carnet d'adresses",#PB_Window_MinimizeGadget|#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_TitleBar)
If CreateMenu(0,WindowID(#Fenetre_main))
MenuTitle("Fichier")
MenuItem(#menu_Ajoute,"Ajoute une Fiche")
MenuItem(#menu_Modifier,"Modifier une Fiche")
MenuItem(#menu_Effacer,"Effacer une Fiche")
MenuItem(#menu_Sauver,"Sauvergarde la liste")
MenuItem(#menu_Quitter,"Quitter")
EndIf
If CreateGadgetList(WindowID(#Fenetre_main))
ListIconGadget(#Liste,10,20,550,280,"Nom :",100,#PB_ListIcon_GridLines|#PB_ListIcon_CheckBoxes)
AddGadgetColumn(#Liste,1,"Prénom:",100)
AddGadgetColumn(#Liste,2,"Adresse:",100)
AddGadgetColumn(#Liste,3,"C. Postal:",40)
AddGadgetColumn(#Liste,4,"Ville:",100)
AddGadgetColumn(#Liste,5,"Telephone:",100)
EndIf
EndIf
;Chargement du fichier au demarrage du programme
If OpenFile ( #file , "Mes_Amies" )<>0
ResetList (Amies())
OpenFile ( #file , "Mes_Amies" )
While Eof ( #file )=0
If AddElement (Amies())
Amies()\Nom= ReadString ( #file )
Amies()\Prenom= ReadString ( #file )
Amies()\Adresse= ReadString ( #file )
Amies()\CodePostal= ReadString ( #file )
Amies()\Ville=ReadString(#file)
Amies()\Telephone=ReadString(#file)
AddGadgetItem ( #Liste ,-1,Amies()\Nom+Chr (10)+Amies()\Prenom+Chr (10)+Amies()\Adresse+Chr(10)+Amies()\CodePostal+Chr(10)+Amies()\Ville+Chr(10)+Amies()\Telephone)
EndIf
Wend
CloseFile ( #file )
EndIf
EndProcedure
Procedure Nouvelle() ; ************* Ouverture de la Fenêtre d'ajout de donnée *************
If OpenWindow(#Fenetre_ajouter,0,0,320,300,"Nouvelle Adresse",#PB_Window_TitleBar|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Fenetre_ajouter))
Frame3DGadget(#cadre_0,10,10,300,250,"", #PB_Frame3D_Double)
If Modification=1 ; Réaffectation des Txt$ pour chaque champs
total_item=CountGadgetItems(#Liste)-1
For i=1 To Taille
Txt$(i)=""
Next i
Else
For i=1 To Taille
Txt$(i)=""
Next i
EndIf
TextGadget(#text_Nom,15, 25, 50,20,"Nom :") :StringGadget(#String_Nom, 80, 25,120,20, Txt$(1) )
TextGadget(#text_prenom,15, 55, 50,20,"Prénom :") :StringGadget(#String_prenom, 80, 55,120,20,Txt$(2))
TextGadget(#text_Adresse,15, 85, 50,20,"Adresse :") :StringGadget(#String_Adresse, 80, 85,120,20,Txt$(3))
TextGadget(#text_CodePostal,15,115, 80,20,"Code Postal :"):StringGadget(#String_CodePostal,80,115, 40,20, Txt$(4),#PB_String_Numeric )
TextGadget(#text_Ville,15,145, 50,20,"Ville :") :StringGadget(#String_Ville, 80,145,120,20,Txt$(5))
TextGadget(#text_Telephone,15,175, 80,20,"Telephone :") :StringGadget(#String_Telephone, 80,175,120,20,Txt$(6))
ButtonGadget(#bouton_valide, 20,275,120,20,"Valider")
ButtonGadget(#bouton_annule,180,275,120,20,"Annuler")
EndIf
EndIf
; ************* Après la saisie de la fenêtre Ajoute une adresse ************
Repeat
Select WaitWindowEvent () ; Traite les boutons....
Case #PB_Event_Gadget
Select EventGadget ()
Case #bouton_valide
If Modification=1
Else
Ajoute_Amies() ; Ajoute une adresse
EndIf
Fermer_window1=1
Case #bouton_annule ; Annule l'entrée
fermer_window1=1
EndSelect
EndSelect
Until fermer_window1=1
CloseWindow ( #Fenetre_ajouter ) ; Fermeture de la fenêtre ajoute...
EndProcedure
; **** Boucle du programme ****
Main_0()
Repeat
Select WaitWindowEvent ()
Case #PB_Event_Menu ;
Select EventMenu()
Case #menu_Ajoute :Nouvelle() ; Procédure nouvelle adresse...
Case #menu_Modifier : Modification=1
Case #menu_Effacer :RemoveGadget(); Procédure pour effacer une adresse marquée
Case #menu_Sauver :Sauver() ; Procédure pour SAUVER le fichier
Case #menu_Quitter : ; Procédure pour QUITTER et SAUVER
fermer_window0=1
EndSelect
Case #PB_Event_CloseWindow
fermer_window0=1
EndSelect
Until fermer_window0=1
Sauver()
End
Mille excuse.... C'est cette version qui est la bonne....
Code : Tout sélectionner
;---------------------------------------------------------------------------------------------------------------
;Gestion de mes Adresses (Forme basique de gestion de fichiers) * V00.00
;Code repris de Bernard13, revus par Lna et Venon.... Et commenté par Cris..
;
; Je me suis contenté de le comprendre, remettre en forme et d'y ajouter des éléments
; pour en faire un fichier d'adresse avec une fontion qui doit s'y trouver la "Modification"...
; Pour moi il aura présenté l'avantage d'avoir dans un seul code toute une série d'éléments
; qui utilisent le PureBasic pour la gestion de fenêtres, de boutons, de listes chainées etc...
; Et même, quoiqu'en dise Cris, une certaine conception de programme (court)...
;------------------------------------------------------------------------------------------------------------------
;
; Constantes
;
Enumeration
#Fenetre_main
#Fenetre_ajouter
EndEnumeration
Enumeration
#Liste
#cadre_0
#text_Nom
#String_Nom
#text_Prenom
#String_Prenom
#text_Adresse
#String_Adresse
#text_CodePostal
#String_CodePostal
#text_Ville
#String_Ville
#text_Telephone
#String_Telephone
#bouton_valide
#bouton_annule
#file
EndEnumeration
Enumeration
#menu_Ajoute
#menu_Modifier
#menu_Effacer
#menu_Sauver
#menu_Quitter
EndEnumeration
; procedure pour la creation d'un élement de la liste
Structure Gestion
Nom.s
Prenom .s
Adresse.s
CodePostal.s
Ville.s
Telephone.s
EndStructure
Global NewList Amies.Gestion(), Modification
Modification=0
Procedure.b Ajoute_Amies()
If AddElement (Amies())
Amies()\Nom= GetGadgetText ( #String_Nom )
Amies()\Prenom= GetGadgetText (#String_Prenom )
Amies()\Adresse= GetGadgetText (#String_Adresse )
Amies()\CodePostal= GetGadgetText ( #String_CodePostal )
Amies()\Ville= GetGadgetText(#String_Ville)
Amies()\Telephone= GetGadgetText(#String_Telephone)
AddGadgetItem ( #Liste ,-1,Amies()\Nom+ Chr (10)+Amies()\Prenom+ Chr (10)+Amies()\Adresse+Chr(10)+Amies()\CodePostal+Chr(10)+Amies()\Ville+Chr(10)+Amies()\Telephone)
EndIf
ProcedureReturn
EndProcedure
Procedure RemoveGadget() ; **** Effacer un ****
Protected i.l,total_item.l
total_item=CountGadgetItems(#Liste)-1 ; pour compter l'élément 0
For i=total_item To 0 Step -1
If GetGadgetItemState(#Liste, i) & #PB_ListIcon_Checked
RemoveGadgetItem(#Liste,i) ; Efface l'élément du ListIconGadget
SelectElement(Amies(),i) ; Slectionne la Liste...
DeleteElement(Amies()) ; Efface l'élément de la liste chainée
EndIf
Next i
EndProcedure
Procedure Sauver()
If CreateFile ( #file , "Mes_Amies" ) ;
ForEach Amies()
WriteStringN ( #file ,Amies()\Nom)
WriteStringN ( #file ,Amies()\Prenom)
WriteStringN ( #file ,Amies()\Adresse)
WriteStringN ( #file ,Amies()\CodePostal)
WriteStringN ( #file, Amies()\Ville)
WriteStringN ( #file, Amies()\Telephone)
Next
CloseFile ( #file)
Else
MessageRequester("Information","Impossible de créer le fichier!")
EndIf
EndProcedure
; Procedure des fenetres
Procedure Main_0()
If OpenWindow(#Fenetre_main,0,0,570,335," Carnet d'adresses",#PB_Window_MinimizeGadget|#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_TitleBar)
If CreateMenu(0,WindowID(#Fenetre_main)) ; Le Menu
MenuTitle("Fichier")
MenuItem(#menu_Ajoute,"Ajoute une Fiche")
MenuItem(#menu_Modifier,"Modifier une Fiche")
MenuItem(#menu_Effacer,"Effacer une Fiche")
MenuItem(#menu_Sauver,"Sauvergarde la liste")
MenuItem(#menu_Quitter,"Quitter")
EndIf
; La grille des données
If CreateGadgetList(WindowID(#Fenetre_main))
ListIconGadget(#Liste,10,20,550,280,"Nom :",100,#PB_ListIcon_GridLines|#PB_ListIcon_CheckBoxes)
AddGadgetColumn(#Liste,1,"Prénom:",100)
AddGadgetColumn(#Liste,2,"Adresse:",100)
AddGadgetColumn(#Liste,3,"C. Postal:",40)
AddGadgetColumn(#Liste,4,"Ville:",100)
AddGadgetColumn(#Liste,5,"Telephone:",100)
EndIf
EndIf
EndProcedure
Procedure Lecture()
If OpenFile ( #file , "Mes_Amies" )<>0
ResetList (Amies())
OpenFile ( #file , "Mes_Amies" )
While Eof ( #file )=0
If AddElement (Amies())
Amies()\Nom= ReadString ( #file )
Amies()\Prenom= ReadString ( #file )
Amies()\Adresse= ReadString ( #file )
Amies()\CodePostal= ReadString ( #file )
Amies()\Ville=ReadString(#file)
Amies()\Telephone=ReadString(#file)
AddGadgetItem ( #Liste ,-1,Amies()\Nom+Chr (10)+Amies()\Prenom+Chr (10)+Amies()\Adresse+Chr(10)+Amies()\CodePostal+Chr(10)+Amies()\Ville+Chr(10)+Amies()\Telephone)
EndIf
Wend
CloseFile( #file )
EndIf
EndProcedure
Procedure Nouvelle() ; ************* Ouverture de la Fenêtre d'ajout de donnée *************
If OpenWindow(#Fenetre_ajouter,0,0,320,300,"Nouvelle Adresse",#PB_Window_TitleBar|#PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#Fenetre_ajouter))
Frame3DGadget(#cadre_0,10,10,300,250,"", #PB_Frame3D_Double)
TextGadget(#text_Nom,15, 25, 50,20,"Nom :")
TextGadget(#text_prenom,15, 55, 50,20,"Prénom :")
TextGadget(#text_Adresse,15, 85, 50,20,"Adresse :")
TextGadget(#text_CodePostal,15,115, 80,20,"Code Postal :")
TextGadget(#text_Ville,15,145, 50,20,"Ville :")
TextGadget(#text_Telephone,15,175, 80,20,"Telephone :")
If Modification=1 ; Modification demandé pour l'éléments selectionné
Nb_item.w=CountGadgetItems(#Liste)-1 ; pour compter l'élément 0
For i=Nb_item.w To 0 Step -1 ; Recherche l'élément coché..
If GetGadgetItemState(#Liste, i) & #PB_ListIcon_Checked
SelectElement(Amies(),i) ; Slectionne la Liste...
Ok=1:Ref=i ; Mémorise l'indice (Ref)
Break ; Trouvé on sort de boucle....
EndIf
Next i
If Ok=1
Ok=0 ; Affichage du contenu............
StringGadget(#String_Nom, 80, 25,120,20,Amies()\Nom)
StringGadget(#String_Prenom, 80, 55,120,20,Amies()\Prenom)
StringGadget(#String_Adresse, 80, 85,120,20,Amies()\Adresse)
StringGadget( #String_CodePostal, 80,115, 40,20,Amies()\CodePostal)
StringGadget(#String_Ville, 80,145,120,20,Amies()\Ville)
StringGadget(#String_Telephone, 80,175,120,20,Amies()\Telephone)
Else
MessageRequester("Information","Impossible de modifier le fichier!")
EndIf
Else ; Nouvelle fiche ....
StringGadget(#String_Nom, 80, 25,120,20,"")
StringGadget(#String_prenom, 80, 55,120,20,"")
StringGadget(#String_Adresse, 80, 85,120,20,"")
StringGadget(#String_CodePostal,80,115, 40,20, "",#PB_String_Numeric )
StringGadget(#String_Ville, 80,145,120,20,"")
StringGadget(#String_Telephone, 80,175,120,20,"")
EndIf
ButtonGadget(#bouton_valide, 20,275,120,20,"Valider")
ButtonGadget(#bouton_annule,180,275,120,20,"Annuler")
EndIf
EndIf
; ************* Après la saisie de la fenêtre Ajoute une adresse ************
Repeat
Select WaitWindowEvent () ; Traite les boutons....
Case #PB_Event_Gadget
Select EventGadget ()
Case #bouton_valide
If Modification=1 ; Replace la modification dans la liste
Amies()\Nom =GetGadgetText (#String_Nom )
Amies()\Prenom =GetGadgetText (#String_Prenom )
Amies()\Adresse =GetGadgetText (#String_Adresse )
Amies()\CodePostal=GetGadgetText (#String_CodePostal )
Amies()\Ville =GetGadgetText(#String_Ville)
Amies()\Telephone =GetGadgetText(#String_Telephone)
AddGadgetItem( #Liste , Ref , Amies()\Nom+Chr (10)+Amies()\Prenom+Chr (10)+Amies()\Adresse+Chr(10)+Amies()\CodePostal+Chr(10)+Amies()\Ville+Chr(10)+Amies()\Telephone)
Modification=0
Else
Ajoute_Amies() ; Ajoute une adresse
EndIf
Fermer_window1=1
Case #bouton_annule ; Annule l'entrée
fermer_window1=1
EndSelect
EndSelect
Until fermer_window1=1
CloseWindow ( #Fenetre_ajouter ) ; Fermeture de la fenêtre ajoute...
EndProcedure
;==========================
; **** Boucle du programme ****
;==========================
Main_0() ; Fenêtre principale
Lecture() ;Chargement du fichier
Repeat
Select WaitWindowEvent ()
Case #PB_Event_Menu ;
Select EventMenu()
Case #menu_Ajoute :Nouvelle() ; Procédure nouvelle adresse...
Sauver()
Case #menu_Modifier : Modification=1 ; Flag de Modif..
Nouvelle() ; Effectue Modif..
Sauver() ; Procédure pour SAUVER après Modif
Modification=0 :Ref=0
Main_0() ; Réaffiche origine..
Lecture() ; Relit le fichier avec modif...
Case #menu_Effacer :RemoveGadget(); Procédure pour effacer une adresse marquée
Sauver()
Case #menu_Sauver
Sauver() ; Procédure pour SAUVER le fichier
Case #menu_Quitter : ; Procédure pour QUITTER et SAUVER
fermer_window0=1
EndSelect
Case #PB_Event_CloseWindow
fermer_window0=1
EndSelect
Until fermer_window0=1
End