Sinon, tu peux aussi récupérer les coordonnées dans la callback du timer. (premier code que je t'ai donné).
Il faut juste ajouter un timer (parce que celui à 1 seconde, c'est trop long) que tu mets à 1 ms, et ça fonctionne.
Code : Tout sélectionner
Procedure TimerProc(hwnd.l, uMsg.l, idEvent.l, dwTime.l)
Select uMsg
Case #WM_TIMER
Select idEvent
Case 1 ; Timer n° 1
SetGadgetText(10, FormatDate("%hh : %ii : %ss", Date()))
Case 2 ; Timer n° 2
GetCursorPos_(CurPos.POINT) ; Position du curseur
SetGadgetText(11, Str(CurPos\x)+ ":"+Str(CurPos\y))
EndSelect
EndSelect
EndProcedure
If OpenWindow(0,0,0,322,220,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"PanelGadget") And CreateGadgetList(WindowID(0))
PanelGadget (0,8,8,306,203)
AddGadgetItem (0,-1,"Panel 1")
PanelGadget (1,5,5,290,166)
AddGadgetItem(1,-1,"Sub-Panel 1")
TextGadget(10, 20, 10, 270, 20, "Il est ")
TextGadget(11, 20, 40, 270, 20, "")
AddGadgetItem(1,-1,"Sub-Panel 2")
AddGadgetItem(1,-1,"Sub-Panel 3")
CloseGadgetList()
AddGadgetItem (0,-1,"Panel 2")
ButtonGadget(2, 10, 15, 80, 24,"Button 1")
ButtonGadget(3, 95, 15, 80, 24,"Button 2")
CloseGadgetList()
SetTimer_(WindowID(), 1, 1000, @TimerProc()) ; Timer n° 1 pour les secondes
SetTimer_(WindowID(), 2, 1, @TimerProc()) ; Timer n° 2 pour les coordonnées
Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow
EndIf
End
Bon, ça fait un peu gadget, mais tant que ça marche correctement!