Page 1 sur 1

PB_FX

Publié : mer. 29/août/2018 9:38
par microdevweb
Bonjour à tous,

Je trouve personnellement qu'il manque à PureBasic des composant tel que les panels. Par contre il existe la technique des dialogs mais cette dernière n'est pas toujours intuitive.

J'ai donc commencé un petit module pour faire cela de façon plus intuitive. Donc ceci n'est qu'un aperçu c'est loin d'être fini.

Remarque : L'utilisation est assez simple (pas le code du module avec un mécanisme d'héritage multiple assez complexe)

Image

Télécharger depuis Github

Zip content :
  • Modules
    • __FX.pbi
    • FX.pbi
    • FX_Classes
      • Button.pbi
      • Expands.pbi
      • Gadget.pbi
      • HBox.pbi
      • Object.pbi
      • Pänel.pbi
      • Transform.pbi
      • VBox.pbi
      • Window.pbi
  • Main.pb
Le code du Main qui donne le résultat ci-dessus

Code : Tout sélectionner

XIncludeFile "Modules\FX.pbi"
myWin.FX::Window = FX::new_window(800,600,"test")
myWin\set_canBeResised(#True)
myWin\set_canBeMaximised(#True)
vb.FX::VBox = FX::new_Vbox()
hb.FX::HBox = FX::new_Hbox()
Define.FX::Button bt1,bt2,bt3,bt4,bt5
bt1 = FX::new_button("Button 1")
bt2 = FX::new_button("Button 2")
bt3 = FX::new_button("Button 3")
bt4 = FX::new_button("Button 4")
bt5 = FX::new_button("Button 5")
hb\add(bt1)
hb\add(bt2)
hb\add(bt3)
vb\add(hb)
vb\add(bt4)
vb\add(bt5)
myWin\add(vb)

Procedure Exit()
  End
EndProcedure
If Not myWin\open()
  Debug myWin\get_error()
Else
  BindEvent(#PB_Event_CloseWindow,@Exit(),myWin\get_objectId())
  Repeat : WaitWindowEvent() : ForEver
EndIf
:mrgreen: Yes i know it's again designed in opp. But what do you want, i very like that

Re: PB_FX

Publié : mer. 29/août/2018 10:06
par Micoute
Moi aussi, j'aime ça, merci pour le partage.

Re: PB_FX

Publié : mer. 29/août/2018 10:19
par Marc56
Intéressant, mais:
If Not myWin\open()
Debug myWin\get_error()
N'affichera rien car les lignes Debug sont ignorées lors de la compilation.
Préférer un MessageRequester()

Else
BindEvent(#PB_Event_CloseWindow,@Exit(),myWin\get_objectId())
...
Il ne se passera rien non plus, car on ne peut faire de Bind...(CloseWindow) sans fenêtre

Logique ? :wink: