Page 1 sur 1

comment transmettre une variable d'une fenetre a une autre ?

Publié : mar. 16/août/2005 16:14
par noob
bonjour @ tous ! :D

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)?
:roll:
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
Merci d'avance :)

Publié : mar. 16/août/2005 16:21
par Anonyme2
Utilise la commande SetGadgetText(#Gadget, Texte$)

Texte$ sera Bureau$

par exemple comme ceci

Code : Tout sélectionner

      Select EventGadgetID()
       Case #Button_0
        bureau$="c:\bureautique\"
        SetGadgetText(#ExplorerList, bureau$)

Publié : mar. 16/août/2005 16:29
par noob
YAAAHOOOOUUUUUUUUUUUUU! :D :P
J'arrete de crier pour dire merci :)

La je suis tres etonné de la simplicité du truc si tout se passe comme ca , ca va me plaire lol

bon bah merci

ps : ce language me plait de + en + :wink: