comment transmettre une variable d'une fenetre a une autre ?
Publié : mar. 16/août/2005 16:14
bonjour @ tous !
Je m'explique :
j'ai une fenetre principale celle-ci contient un "ExplorerListGadget"
(qui affiche le contenu d'un dossier dont la source est defini par variable bureau$ (par defaut bureau$=c:\raccourci\ ))
et un "buttongadget" (qui ouvre la 2eme fenetre)
Cette 2eme fenetre contient 3 bouton:
chacun des boutons defini la variable bureau$
ex:
case bouton1
bureau$=c:\multimedia\
case bouton2
bureau$=c:\bureautique\
case bouton3
bureau$=c:\mutimedia\
J'aimerai a partir de l'un des trois boutons recharger la fenetre principale mais cette fois ci avec la source (bureau$) defini par le bouton sur lequel on a cliquer (a partir de la 2eme fenetre)?
Je joint mon script : (ca pe aider lol)
Merci d'avance 

Je m'explique :
j'ai une fenetre principale celle-ci contient un "ExplorerListGadget"
(qui affiche le contenu d'un dossier dont la source est defini par variable bureau$ (par defaut bureau$=c:\raccourci\ ))
et un "buttongadget" (qui ouvre la 2eme fenetre)
Cette 2eme fenetre contient 3 bouton:
chacun des boutons defini la variable bureau$
ex:
case bouton1
bureau$=c:\multimedia\
case bouton2
bureau$=c:\bureautique\
case bouton3
bureau$=c:\mutimedia\
J'aimerai a partir de l'un des trois boutons recharger la fenetre principale mais cette fois ci avec la source (bureau$) defini par le bouton sur lequel on a cliquer (a partir de la 2eme fenetre)?

Je joint mon script : (ca pe aider lol)
Code : Tout sélectionner
;par defaut la la variable bureau$
bureau$="c:\raccourcis\"
#seconde=2
#main=0
#ExplorerList=0
#Quit=1
#menu=4
Enumeration
#Text_6=55
#Text_1
#Text_2
#Text_3
#Text_4
#Text_5
#Button_0
#Button_1
#Button_2
EndEnumeration
;------------------------------------------------------------------------------------
Global actmode,resux
resux = GetSystemMetrics_(#SM_CXSCREEN)
Procedure TimerProc(Hwnd.l, uMsg.l, idEvent.l, dwTime.l)
Static show.l
Select uMsg
Case #WM_TIMER
Select idEvent
Case 1
GetCursorPos_(@point.point)
If show=0
If point\y=0
show=1
Debug "afficher"
SetForegroundWindow_(Hwnd)
ShowWindow_(Hwnd,#sw_show)
EndIf
ElseIf show=1
If point\y>60
show=0
Debug "cacher"
ShowWindow_(Hwnd,#sw_hide)
EndIf
EndIf
EndSelect
EndSelect
EndProcedure
;---------------------------------------------------------------------------------
OpenWindow(#main, 0, 0, resux,60,#PB_Window_BorderLess|#PB_Window_Invisible ,"Menu déroulant")
Style_etendu=GetWindowLong_(WindowID(#main),#GWL_EXSTYLE)
SetWindowLong_(WindowID(#main),#GWL_EXSTYLE,Style_etendu|#WS_EX_TOOLWINDOW)
CreateGadgetList(WindowID())
; c'est ici qu'on recupere bureau$ dans "explorerlistgadget" juste en dessous
ExplorerListGadget(#ExplorerList, 0, 0, resux-260, 60,bureau$, #PB_Explorer_NoParentFolder)
ButtonGadget(#Quit,resux-70,10,60,20,"Quitter")
ChangeListIconGadgetDisplay(0, 4)
ButtonGadget(#menu,resux-250,10,150,22,"Menu",#PB_Button_Toggle)
;--------------------------------------------------------------------
invisible = 1
OpenWindow(#seconde,resux-250,30,160,120,#PB_Window_BorderLess|#PB_Window_Invisible,"deuxieme fenetre")
CreateGadgetList( WindowID(2) )
TextGadget(#Text_6, 0, 10, 120, 20, "BUREAUTIQUE", #PB_Text_Center)
TextGadget(#Text_1, 0, 40, 120, 20, "MULTIMEDIA", #PB_Text_Center)
TextGadget(#Text_2, 0, 70, 120, 20, "DEVELLOPEMENT", #PB_Text_Center)
ButtonGadget(#Button_0, 120, 7, 40, 20, "GO")
ButtonGadget(#Button_1, 120, 37, 40, 20, "GO")
ButtonGadget(#Button_2, 120, 67, 40, 20, "GO")
;--------------------------------------------------------------------
SetTimer_(WindowID(#main),1, 200, @TimerProc())
;-------------------------------------------------------------------------
Repeat
EventID=WaitWindowEvent()
Select EventID
Case #PB_EventGadget
;on defini ici la nouvelle variable
Select EventGadgetID()
Case #Button_0
bureau$="c:\bureautique\"
Debug bureau$
Case #Button_1
bureau$="c:\multimedia\"
Debug bureau$
Case #Button_2
bureau$="c:\devellopement\"
Debug bureau$
Case #menu
invisible = ~invisible & 1
HideWindow(2, invisible)
Case #Quit
quit.l=1
Case #ExplorerList
Select EventType()
Case #PB_EventType_LeftDoubleClick
nom$= (GetGadgetItemText(#ExplorerList,GetGadgetState(#ExplorerList) , 0))
nom_complet$=bureau$+nom$ ;on remarque qu'ici la varaible est bien transmise
If nom$
Debug nom_complet$
RunProgram(nom_complet$)
EndIf
EndSelect
EndSelect
Case #WM_CLOSE
quit=1
EndSelect
Until quit=1
