Page 1 sur 1

Visual Designer

Publié : mar. 07/mars/2006 23:11
par Chris
Vous avez vu le code généré pour la boucle par le nouveau Visual Designer?

Qu'est-ce que vous en pensez? :?

Vous pensez qu'il y a vraiment besoin de se compliquer la vie à ce point là! L'ancien systeme de boucle fonctionne toujours très bien.

Code : Tout sélectionner

Global Window_0

Structure VisualDesignerGadgets
  Gadget.l
  EventFunction.l
EndStructure

Global NewList EventProcedures.VisualDesignerGadgets()

Procedure RegisterGadgetEvent(Gadget, *Function)
  
  If IsGadget(Gadget)
    AddElement(EventProcedures())
    EventProcedures()\Gadget        = Gadget
    EventProcedures()\EventFunction = *Function
  EndIf
  
EndProcedure

Procedure CallEventFunction(Window, Event, Gadget, Type)
  
  ForEach EventProcedures()
    If EventProcedures()\Gadget = Gadget
      CallFunctionFast(EventProcedures()\EventFunction, Window, Event, Gadget, Type)
      LastElement(EventProcedures())
    EndIf
  Next
  
EndProcedure

Procedure Open_Window_0()
  
  Window_0 = OpenWindow(#PB_Any, 200, 200, 200, 200,  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "Window 0")
  If Window_0
    If CreateGadgetList(WindowID(Window_0))
      
      
    EndIf
  EndIf
EndProcedure

Open_Window_0()

Repeat
  
  Event  = WaitWindowEvent()
  Gadget = EventGadget()
  Type   = EventType()
  Window = EventWindow()
  
  Select Event
    Case #PB_Event_Gadget
      CallEventFunction(Window, Event, Gadget, Type)
      
  EndSelect
  
Until Event = #PB_Event_CloseWindow
End

Publié : mar. 07/mars/2006 23:31
par Dorian
Mdr, on les places où les fonctions qui sont liées à un gadget ?

Sinon ce qui pourrait être pas mal c'est une ligne du style :

Code : Tout sélectionner

;Placez votre code ici
ou
;Placer vos structures ici
Sa pourrait être simpa surtout quand ont voit le nouveau code généré ^^

Publié : mar. 07/mars/2006 23:46
par Chris
Ben, faut simplement virer sa boucle à la mord-moi-l'neud, et remettre une boucle normale! Ca marche aussi.

C'est l'inconvénient de laisser le dév d'un truc à un seul mec. Toutes les lubies qui lui passent par la tête, il les colle dans le prog.

Publié : mar. 07/mars/2006 23:48
par nico
Je découvre, c'est pas un exemple complet dommage; ça permet de gérer les évènement séparément par gadget et décomposer le code, c'est ce que font les langages évolués, je crois.

Publié : mer. 08/mars/2006 0:33
par Dorian
Sa pourrait être simpa mais là je suis un peu pommé dedans ^^

Publié : mer. 08/mars/2006 6:10
par Chris
nico a écrit :Je découvre, c'est pas un exemple complet dommage; ça permet de gérer les évènement séparément par gadget et décomposer le code, c'est ce que font les langages évolués, je crois.
C'est le code de base donné par le VD pour une simple fenêtre. Rien de plus. (Code à l'ouverture du prog, en cochant "Inclure la boucle...")

L'ancien système de boucle fonctionnait largement aussi bien, et était nettement plus clair, et plus simple à gérer.

Publié : mer. 08/mars/2006 8:17
par Chris
AH MAIS J'AVAIS PAS VU CA !!!!!

J'ai encore râlé avant de savoir :oops:

En fait, quand on ne coche pas la case "Inclure la boucle...", la boucle est quand même incluse dans le code, mais c'est celle qu'on utilisait avant !!!

Ben je préfère ça :)