Page 1 sur 1

Passer un gadget en paramètre d'une procédure

Publié : jeu. 27/févr./2020 18:13
par Trebor55
Bonjour,

Je voudrais savoir si il est possible de passer un gadget en paramètre d'une procédure

Re: Passer un gadget en paramètre d'une procédure

Publié : jeu. 27/févr./2020 18:19
par Ar-S
Que veux tu dire ? Donne un exemple stp.

Re: Passer un gadget en paramètre d'une procédure

Publié : jeu. 27/févr./2020 20:53
par Trebor55
Voici un code exemple de ce que je veux

Code : Tout sélectionner

Enumeration
  #Mainform 
  #ListeReleve
EndEnumeration

Procedure MainFormOpen()
  OpenWindow(#Mainform,100, 200, 800, 600, "Test",#PB_Window_ScreenCentered| #PB_Window_SystemMenu)
  ListIconGadget(#ListeReleve, 0, 70, 800, 330, "1er colonne", 80, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
  AddGadgetColumn(#ListeReleve, 2, "2éme colonne", 80)
EndProcedure

;Procedure ColorLine(#Gadget,Idx)
;  SetGadgetItemColor(#Gadget, Idx, #PB_Gadget_BackColor, #Yellow ,0)
;  SetGadgetItemColor(#Gadget, Idx, #PB_Gadget_BackColor, #Green ,1)
;EndProcedure

Procedure Remplissage()
  Protected n.i, Index.i
  Protected Chaine.s
  For n=0 To 10
    Chaine = "Col " + Str(n) + Chr(10) + "Col " + Str(n)
    AddGadgetItem(#ListeReleve,-1,Chaine)
    Index=CountGadgetItems(#ListeReleve)-1
    ;ColorLine(#ListeReleve,Index)
    SetGadgetItemColor(#ListeReleve, Index, #PB_Gadget_BackColor, #Yellow ,0)
    SetGadgetItemColor(#ListeReleve, Index, #PB_Gadget_BackColor, #Green ,1)
    ; ce que je voudrais c'est coloriser la ligne avec ColorLine en passant en paramétre ( #ListeReleve, Index )
    ; car je dois utiliser la procédure avec plusieur ListIconGadget
    ; ce qui permettrer d'aérer mon code
  Next
EndProcedure

MainFormOpen()
Remplissage()

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

Re: Passer un gadget en paramètre d'une procédure

Publié : jeu. 27/févr./2020 21:07
par Naheulf
En fait le numéro d'un gadget c'est un entier. Il suffit donc de traiter le gadget comme un simple entier :

Code : Tout sélectionner

Enumeration
	#Mainform
	#ListeReleve
EndEnumeration

Procedure MainFormOpen()
	OpenWindow(#Mainform,100, 200, 800, 600, "Test",#PB_Window_ScreenCentered| #PB_Window_SystemMenu)
	ListIconGadget(#ListeReleve, 0, 70, 800, 330, "1er colonne", 80, #PB_ListIcon_AlwaysShowSelection|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
	AddGadgetColumn(#ListeReleve, 2, "2éme colonne", 80)
EndProcedure

Procedure ColorLine(Gadget,Idx)
	SetGadgetItemColor(Gadget, Idx, #PB_Gadget_BackColor, #Yellow ,0)
	SetGadgetItemColor(Gadget, Idx, #PB_Gadget_BackColor, #Green ,1)
EndProcedure

Procedure Remplissage()
	Protected n.i, Index.i
	Protected Chaine.s
	For n=0 To 10
		Chaine = "Col " + Str(n) + Chr(10) + "Col " + Str(n)
		AddGadgetItem(#ListeReleve,-1,Chaine)
		Index=CountGadgetItems(#ListeReleve)-1
		ColorLine(#ListeReleve,Index)
		;SetGadgetItemColor(#ListeReleve, Index, #PB_Gadget_BackColor, #Yellow ,0)
		;SetGadgetItemColor(#ListeReleve, Index, #PB_Gadget_BackColor, #Green ,1)
		; ce que je voudrais c'est coloriser la ligne avec ColorLine en passant en paramétre ( #ListeReleve, Index )
		; car je dois utiliser la procédure avec plusieur ListIconGadget
		; ce qui permettrer d'aérer mon code
	Next
EndProcedure

MainFormOpen()
Remplissage()

Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow

Re: Passer un gadget en paramètre d'une procédure

Publié : jeu. 27/févr./2020 21:23
par Trebor55
Bonsoir,

Merci pour cette prompt et efficace réponse

Re: Passer un gadget en paramètre d'une procédure

Publié : jeu. 27/févr./2020 21:52
par Ar-S
Pense à mettre tes code entre balises [ code ] ton code [/ code ](sans espaces)
J'ai corrigé