
Code : Tout sélectionner
*Prog=?Prog
Resultat=CallFunctionFast(*Prog)
Print("Fin")
Delay(1000)
End
Prog:
OpenConsole()
PrintN("Debut")
Delay(1000)
Return
Code : Tout sélectionner
*Prog=?Prog
Resultat=CallFunctionFast(*Prog)
Print("Fin")
Delay(1000)
End
Prog:
OpenConsole()
PrintN("Debut")
Delay(1000)
Return
Code : Tout sélectionner
Structure _countgadgets
className$
count.l
EndStructure
Procedure.l EnumChildWindowProc(hwnd, *cg._countgadgets)
Protected buffer$
buffer$=Space(100)
GetClassName_(hwnd, @buffer$, 100)
If buffer$ = *cg\className$
*cg\count + 1
EndIf
ProcedureReturn 1
EndProcedure
;The following function takes a window handle and a gadget handle and returns a count of the
;number of similar controls on the given window.
;This count includes the specified gadget.
Procedure.l CountSimilarGadgets(winhWnd, gadgethWnd)
Protected buffer$
Protected cg._countgadgets
If IsWindow_(winhWnd) And IsWindow_(gadgethWnd)
buffer$=Space(100)
GetClassName_(gadgethWnd, @buffer$, 100)
cg\className$ = buffer$
EnumChildWindows_(winhWnd, @EnumChildWindowProc(),@cg)
EndIf
ProcedureReturn cg\count
EndProcedure
If OpenWindow(0, 100, 100, 600, 600, "Count gadgets", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
ButtonGadget(0, 10, 10, 200, 20, "Standard Button")
ButtonGadget(1, 10, 40, 200, 20, "Left Button", #PB_Button_Left)
ButtonGadget(2, 10, 70, 200, 20, "Right Button", #PB_Button_Right)
ButtonGadget(3, 10,100, 200, 60, "Multiline Button (longer text gets automatically wrapped)", #PB_Button_MultiLine)
ButtonGadget(4, 10,170, 200, 20, "Toggle Button", #PB_Button_Toggle)
count = CountSimilarGadgets(WindowID(0), GadgetID(0))
Debug "There are " + Str(count) + " buttons!"
Repeat
event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow
EndIf
End
Tu peux plutôt ecrire ce genre de code, pour un resultat similaire, que je pense plus propreOctavius a écrit : .. La seule question que je me pose c'est s'il est possible de retourner un résultat dans Resultat ?
Code : Tout sélectionner
Declare Prog()
*ProgPtr = @Prog()
Resultat=CallFunctionFast(*ProgPtr)
Debug("Fin")
Delay(1000)
Debug Resultat
End
Procedure Prog()
Debug "Debut"
Delay(1000)
ProcedureReturn 12
EndProcedure