C’est encore moi, j’ai bricolé ce bout programme pour aider a la saisie, je ne sais pas comment cela s’appelle mais ont en voit dans beaucoup de programmes, on tape les premiers caractères et il affiche les données qui commence par ces caractères.
Il n’est surement pas optimisé, mais je débute dans PureBasic.
Voila mon problème :
Je souhaiterai lorsque je clique sur une donnée qui est dans la ListIcon « AfficheNoms », elle s’affiche dans le GadgetText « FourTout »
Merci pour votre patience et pour vos réponses.
Pierre
Code : Tout sélectionner
EnableExplicit
Enumeration Window
#MainForm
EndEnumeration
Enumeration Gadget
#Quitte
#EntreNom
#AfficheNoms
#FoureTout
EndEnumeration
Global Window_0
Global a.i
Global Dim Noms.s(10000)
Global NbNoms.i
Global NomCherche.s
Global i.l
Declare Start()
Declare Exit()
Declare CaptureTexte()
Declare RechercheNoms()
Declare ChargeData()
ChargeData()
Start()
Procedure Start()
OpenWindow(#MainForm, 0, 0, 1000, 700, "Premiere fenêtre", #PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget )
ListIconGadget(#AfficheNoms, 10, 20, 280, 300, "Column 1", 275,#PB_ListIcon_GridLines )
StringGadget(#EntreNom, 300, 20, 100, 22, "",#PB_String_UpperCase )
StringGadget(#FoureTout, 450, 20, 100, 22, "FoureTout")
ButtonGadget(#Quitte, 730, 100, 120, 40, "Quitte")
BindGadgetEvent(#Quitte, @Exit())
SetActiveGadget(#EntreNom)
BindGadgetEvent(#EntreNom,@CaptureTexte())
Repeat : WaitWindowEvent() : ForEver
EndProcedure
Procedure CaptureTexte()
Define LgRech.w
Select EventType()
Case #PB_EventType_Change
NomCherche=GetGadgetText(#EntreNom)
LgRech=Len(NomCherche)
ClearGadgetItems(#AfficheNoms)
For i=1 To NbNoms
If Left(Noms(i),LgRech) = NomCherche
AddGadgetItem(#AfficheNoms,-1,Noms(i))
EndIf
Next
EndSelect
EndProcedure
; Pour test
Procedure ChargeData()
OpenCryptRandom()
For i=1 To 9900
For a=1 To 10
Noms(i)+ Chr( CryptRandom(26)+65)
Next
Next
NbNoms=i
EndProcedure
Procedure Exit()
End
EndProcedure