Je n'ai pas touché à PB depuis la 4.51 ( je ne l'utilise que occasionnellement) et je suis en train de constater qu'il y a eu une bonne amélioration au niveau du form designer. Pourtant je bloque sur un petit bout de code que j'ai essayé de faire en suivant ce qui est indiqué dans la doc. Le programme comporte 2 fichiers. Un ficher "Formulaire.pbf" auto généré et un "Main.pb" écrit par moi.
L'erreur est:
Code : Tout sélectionner
Line 3: OpenFormulaire() is not a function, array, list map or macro.
Code : Tout sélectionner
OpenFormulaire() ; Création de la première fenêtre. Ce nom de procédure est toujours 'Open' suivi du nom de la fenêtre
Le premier baptisé Main.pb
Code : Tout sélectionner
XIncludeFile "Formulaire.pbf" ; Inclusion de la première fenêtre
OpenFormulaire() ; Création de la première fenêtre. Ce nom de procédure est toujours 'Open' suivi du nom de la fenêtre
Procedure filechooser(EventType)
Debug "Evénement Bouton OK"
MessageRequester("OK", "Button OK", #PB_MessageRequester_Ok);, 0)
EndProcedure
; La boucle principale, comme d'habitude, le seul changement est l'appel de la procédure
; événementielle automtiquement générée pour chaque fenêtre.
Repeat
Event = WaitWindowEvent()
Select EventWindow()
Case Formulaire
Formulaire_Events(Event) ; Le nom de la procédure est toujours le nom de la fenêtre suivi de '_Events'
EndSelect
Until Event = #PB_Event_CloseWindow ; Ferme toutes les fenêtres en quittant l'une d'elle
Code : Tout sélectionner
;
; This code is automatically generated by the FormDesigner.
; Manual modification is possible to adjust existing commands, but anything else will be dropped when the code is compiled.
; Event procedures needs to be put in another source file.
;
Global Window_0
Global Editor_0, Button_0
Declare filechooser(EventType)
Procedure OpenWindow_0(x = 0, y = 0, width = 600, height = 400)
Window_0 = OpenWindow(#PB_Any, x, y, width, height, "essai", #PB_Window_SystemMenu)
Editor_0 = EditorGadget(#PB_Any, 10, 20, 580, 320)
Button_0 = ButtonGadget(#PB_Any, 10, 350, 100, 40, "Open", #PB_Button_Right)
EndProcedure
Procedure Window_0_Events(event)
Select event
Case #PB_Event_CloseWindow
ProcedureReturn #False
Case #PB_Event_Menu
Select EventMenu()
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case Button_0
filechooser(EventType())
EndSelect
EndSelect
ProcedureReturn #True
EndProcedure
OpenWindow_0()
Repeat
event = WaitWindowEvent()
Until Window_0_Events(event) = #False
End
Merci d'avance.