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