Visual Designer

Sujets variés concernant le développement en PureBasic
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Visual Designer

Message 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
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message 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é ^^
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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.
Dorian
Messages : 489
Inscription : mar. 15/mars/2005 15:33

Message par Dorian »

Sa pourrait être simpa mais là je suis un peu pommé dedans ^^
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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.
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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 :)
Répondre