un petit programme pour les contacts.

Programmation d'applications complexes
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Tu comptes le nombre de contacts affichés dans la ListIcon, ou celui contenu dans la LinkedList, et tu l'affiches dans la StatusBar.

Touche magique : F1
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

voila :wink:

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
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

merci , Venom tu as ete plus rapide
j'ai ete de travailler dessus et de comprendre la barre de status
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

yep c'est facile tu cree ta statuebar

Code : Tout sélectionner

CreateStatusBar(#BarreEtat, WindowID)
ensuite tu lui met la fonction

Code : Tout sélectionner

CountGadgetItems(#Gadget)
qui renvoie le nombre d'element dans un listicongadget et le tour et jouer :wink: .


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
venom
Messages : 3128
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

[quote="venom"]yep c'est facile tu cree ta statuebar

Code : Tout sélectionner

CreateStatusBar(#BarreEtat, WindowID)
ensuite tu lui met la fonction

Code : Tout sélectionner

CountGadgetItems(#Gadget)
qui renvoie le nombre d'element dans un listicongadget et le tour et jouer :wink: .

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
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

merci venom
Avatar de l’utilisateur
GeBonet
Messages : 453
Inscription : ven. 29/févr./2008 16:17
Localisation : Belgique

Code repris de Bernard13, revus par Lna et Venon.... etc..

Message par GeBonet »

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
Avatar de l’utilisateur
GeBonet
Messages : 453
Inscription : ven. 29/févr./2008 16:17
Localisation : Belgique

Mille excuse.... C'est cette version qui est la bonne....

Message par GeBonet »

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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

Cris
hum ! c'est Chris :lol:
bernard13
Messages : 1221
Inscription : mer. 05/janv./2005 21:30

Message par bernard13 »

Merci GeBonet

je vais refaire entierement mon programme
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Dobro a écrit :
Cris
hum ! c'est Chris :lol:
:mrgreen:
Répondre