[Résolu] Validation ListIcon
Publié : mer. 26/nov./2014 11:28
Bonjour à tous,
Je me suis programmé un petit annuaire familial et j'aimerais savoir s'il est possible quand une ligne du ListIconGadget est sélectionnée de valider avec la touche Entrée ou la barre espace ?
J'attend vos réponses avec impatience et je vous en remercie d'avance.
Je me suis programmé un petit annuaire familial et j'aimerais savoir s'il est possible quand une ligne du ListIconGadget est sélectionnée de valider avec la touche Entrée ou la barre espace ?
J'attend vos réponses avec impatience et je vous en remercie d'avance.
Code : Tout sélectionner
;Liste téléphonique
Enumeration Fenetre
#Fenetre_principale
EndEnumeration
Enumeration Gadgets
#Btn_Nouveau
#Btn_Supprimer
#Btn_MAJ
#Txt_Prenom
#Txt_Nom
#Txt_Adresse
#Txt_CP
#Txt_Ville
#Txt_Mobile
#Txt_Fixe
#Str_Prenom
#Str_Nom
#Str_Adresse
#Str_CP
#Str_Ville
#Str_Mobile
#Str_Fixe
#BDD
#Liste
EndEnumeration
Structure sPersonne
Nom.s ; Nom de la personne
Prenom.s ; Prénom de la personne
Adresse.s ; Adresse de la personne
CP.s ; Code postal
Ville.s ; Ville
Mobile.s ; numéro de téléphone mobile
Fixe.s ; numéro de téléphone fixe
EndStructure
Global NewList Personne.sPersonne()
UseSQLiteDatabase()
Resultat = OpenDatabase(#BDD, "D:\Programmation\Prg Perso\B\Base de donnees\Annuaire\Annuaire.SQLite", "", "", #PB_Database_SQLite)
If Resultat
If DatabaseQuery(#BDD, "SELECT * FROM Annuaire")
While NextDatabaseRow(#BDD)
AddElement(Personne())
Personne()\Nom = UCase(GetDatabaseString(#BDD, 0))
Personne()\Prenom = UCase(GetDatabaseString(#BDD, 1))
Personne()\Adresse = GetDatabaseString(#BDD, 2)
Personne()\CP = GetDatabaseString(#BDD, 3)
Personne()\Ville = GetDatabaseString(#BDD, 4)
Personne()\Mobile = GetDatabaseString(#BDD, 5)
Personne()\Fixe = GetDatabaseString(#BDD, 6)
Wend
FinishDatabaseQuery(#BDD)
EndIf
EndIf
Procedure RemplirListe()
ClearGadgetItems(#Liste)
ForEach Personne()
AddGadgetItem(#Liste, -1, Personne()\Prenom + #LF$ + Personne()\Nom )
SetGadgetItemData(#Liste, CountGadgetItems(#Liste) - 1, ListIndex(Personne()))
Next
EndProcedure
Procedure Evenement_Liste()
Protected ElementSelectionne = GetGadgetState(#Liste)
If ElementSelectionne = -1
SetGadgetText(#Str_Prenom, "")
SetGadgetText(#Str_Nom, "")
SetGadgetText(#Str_Adresse,"")
SetGadgetText(#Str_CP, "")
SetGadgetText(#Str_Ville, "")
SetGadgetText(#Str_Mobile, "")
SetGadgetText(#Str_Fixe, "")
ProcedureReturn
EndIf
Protected IndexSelectionne = GetGadgetItemData(#Liste, ElementSelectionne)
SelectElement(Personne(), IndexSelectionne)
SetGadgetText(#Str_Prenom, UCase(Left(Personne()\Prenom,1))+LCase(Right(Personne()\Prenom,Len(Personne()\Prenom)-1)))
SetGadgetText(#Str_Nom, Personne()\Nom)
SetGadgetText(#Str_Adresse,Personne()\Adresse)
SetGadgetText(#Str_CP, Personne()\CP)
SetGadgetText(#Str_Ville, Personne()\Ville)
SetGadgetText(#Str_Mobile, Personne()\Mobile)
SetGadgetText(#Str_Fixe, Personne()\Fixe)
EndProcedure
Procedure Evenement_Btn_Nouveau()
LastElement(Personne())
AddElement(Personne())
Personne()\Prenom = "Inconnu"
Personne()\Nom = "Inconnu"
Personne()\Adresse = "Inconnue"
Personne()\CP = "Inconnu"
Personne()\Ville = "Inconnue"
Personne()\Mobile = "Inconnu"
Personne()\Fixe = "Inconnu"
RemplirListe()
SetGadgetState(#Liste, ListSize(Personne()) - 1)
Evenement_Liste()
EndProcedure
Procedure Evenement_Btn_MAJ()
Protected IndexSelectionne = ListIndex(Personne())
Personne()\Prenom = GetGadgetText(#Str_Prenom)
Personne()\Nom = GetGadgetText(#Str_Nom)
Personne()\Adresse = GetGadgetText(#Str_Adresse)
Personne()\CP = GetGadgetText(#Str_CP)
Personne()\Ville = GetGadgetText(#Str_Ville)
Personne()\Mobile = GetGadgetText(#Str_Mobile)
Personne()\Fixe = GetGadgetText(#Str_Fixe)
RemplirListe()
SetGadgetState(#Liste, IndexSelectionne)
EndProcedure
Procedure Evenement_Btn_Supprimer()
If ListSize(Personne()) = 0
SetGadgetText(#Str_Prenom, "")
SetGadgetText(#Str_Nom, "")
SetGadgetText(#Str_Adresse, "")
SetGadgetText(#Str_CP, "")
SetGadgetText(#Str_Ville, "")
SetGadgetText(#Str_Mobile, "")
SetGadgetText(#Str_Fixe, "")
ProcedureReturn
EndIf
Protected IndexSelectionne = ListIndex(Personne())
DeleteElement(Personne())
RemplirListe()
SetGadgetState(#Liste, IndexSelectionne)
Evenement_Liste()
EndProcedure
Procedure Ouvrir_Fenetre_principale()
If OpenWindow(#Fenetre_principale, 0, 0, 520, 400, "Liste téléphonique avec Base de données",
#PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered)
ButtonGadget(#Btn_Nouveau, 10, 10, 105, 24, "Nouveau")
ButtonGadget(#Btn_Supprimer, 120, 10, 105, 24, "Supprimer")
ListIconGadget(#Liste, 10, 50, 220, 335, "Prénom", 95,
#PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines|
#PB_ListIcon_FullRowSelect)
AddGadgetColumn(#Liste, 1, "Nom", 95)
TextGadget(#Txt_Prenom, 240, 75, 60, 24, "Prénom:")
TextGadget(#Txt_Nom, 240, 50, 60, 24, "Nom:")
TextGadget(#Txt_Adresse, 240, 100, 60, 24, "Adresse:")
TextGadget(#Txt_CP, 240, 125, 60, 24, "Code postal:")
TextGadget(#Txt_Ville, 240, 150, 60, 24, "Ville:")
TextGadget(#Txt_Mobile, 240, 175, 60, 24, "Mobile:")
TextGadget(#Txt_Fixe, 240, 200, 60, 24, "Fixe:")
StringGadget(#Str_Prenom, 310, 75, 185, 24, "")
StringGadget(#Str_Nom, 310, 50, 185, 24, "")
StringGadget(#Str_Adresse, 310, 100, 185, 24, "")
StringGadget(#Str_CP, 310, 125, 80, 24, "")
StringGadget(#Str_Ville, 310, 150, 185, 24, "")
StringGadget(#Str_Mobile, 310, 175, 80, 24, "")
StringGadget(#Str_Fixe, 310, 200, 80, 24, "")
;ButtonGadget(#Btn_MAJ, 345, 205, 104, 30, "Mise à jour")
EndIf
EndProcedure
Ouvrir_Fenetre_principale()
BindGadgetEvent(#Btn_Nouveau, @Evenement_Btn_Nouveau())
;BindGadgetEvent(#Btn_MAJ, @Evenement_Btn_MAJ())
BindGadgetEvent(#Btn_Supprimer, @Evenement_Btn_Supprimer())
BindGadgetEvent(#Liste, @Evenement_Liste(), #PB_EventType_LeftClick)
RemplirListe()
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow