Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
pls
Messages : 21 Inscription : mer. 26/févr./2020 17:21
Message
par pls » dim. 10/mai/2020 21:18
Bonjour,
Une petite question sur les dialog.
J’essaie de positionner les 4 boutons en bas de la fenêtre mais sans succès.
Code : Tout sélectionner
Procedure makeXml()
Protected text.s = "<window name='form' flags='#PB_Window_SystemMenu|#PB_Window_ScreenCentered' text='Application métier'>"+
" <hbox name='principal'>"+
" <vbox name = 'list' width='150' >"+
" <listicon name = 'list_appmet' height = '300' text = 'Liste'/>" +
" </vbox>"+
" <vbox name='vbox1' expand = 'no'>"+
" <vbox name='vbox2'>"+
" <hbox name='hbox1'>"+
" <text name='text1' text='000' dd2variable='yes'/>"+
" <string name='string1' text='string1' width='150' dd2events='yes'/>"+
" </hbox>"+
" <text name='text3' text='Description' width='200' dd2variable='yes'/>"+
" <editor name='editor3' flags='#PB_Editor_WordWrap' height='80' dd2events='yes'/>"+
" <empty name='empty1'/>"+
" </vbox>"+
" <vbox align='bottom' expand='item:1'>"+
" <hbox name='hbox2' align='bottom/left'>"+
" <button name='button1' text='Nouveau' dd2events='yes'/>"+
" <button name='button2' text='Supprimer' dd2events='yes'/>"+
" <button name='button3' text='Enregistrer' dd2events='yes'/>"+
" <button name='button4' text='Quitter' dd2events='yes'/>"+
" </hbox>"+
" </vbox>"+
" </vbox>"+
" </hbox>"+
"</window>"
; création de la fenêtre
xml = CatchXML(#PB_Any, @text, StringByteLength(text))
ProcedureReturn xml
EndProcedure
Auriez vous une idée par hasard ?
Merci d'avance.
SPH
Messages : 4945 Inscription : mer. 09/nov./2005 9:53
Message
par SPH » dim. 10/mai/2020 21:36
Les boutons NOUVEAU SUPPRIMER ENREGISTRER et QUITTER ?
Si oui, tu ne donnes pas la bonne partie de ton code
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
pls
Messages : 21 Inscription : mer. 26/févr./2020 17:21
Message
par pls » dim. 10/mai/2020 21:40
Oui ce sont bien ces 4 boutons :
Code : Tout sélectionner
DeclareModule VIEW_AppMet
Declare open(motherWindow,mode_select = #False)
EndDeclareModule
Module VIEW_AppMet
Global form_id ; Identifiant fenetre
Global table_id ; Liste de notre table
Global select_mode.b ; Mode d'ouverture de la fenetre
Global xml ; Conteneur xml
Global list_appmet
Global dialog_id ; car il s'agit d'une fenetre qui s'appele un dialog
Procedure makeXml()
Protected text.s = "<window name='form' flags='#PB_Window_SystemMenu|#PB_Window_ScreenCentered' text='Application métier'>"+
" <hbox name='principal'>"+
" <vbox name = 'list' width='150' >"+
" <listicon name = 'list_appmet' height = '300' text = 'Liste'/>" +
" </vbox>"+
" <vbox name='vbox1' expand = 'no'>"+
" <vbox name='vbox2'>"+
" <hbox name='hbox1'>"+
" <text name='text1' text='000' dd2variable='yes'/>"+
" <string name='string1' text='string1' width='150' dd2events='yes'/>"+
" </hbox>"+
" <text name='text3' text='Description' width='200' dd2variable='yes'/>"+
" <editor name='editor3' flags='#PB_Editor_WordWrap' height='80' dd2events='yes'/>"+
" <empty name='empty1'/>"+
" </vbox>"+
" <vbox align='bottom' expand='item:1'>"+
" <hbox name='hbox2' align='bottom/left'>"+
" <button name='button1' text='Nouveau' dd2events='yes'/>"+
" <button name='button2' text='Supprimer' dd2events='yes'/>"+
" <button name='button3' text='Enregistrer' dd2events='yes'/>"+
" <button name='button4' text='Quitter' dd2events='yes'/>"+
" </hbox>"+
" </vbox>"+
" </vbox>"+
" </hbox>"+
"</window>"
; création de la fenêtre
xml = CatchXML(#PB_Any, @text, StringByteLength(text))
ProcedureReturn xml
EndProcedure
Procedure exit()
; ferme la fenêtre
CloseWindow(form_id)
; réactive la fenêtre mère et lui rend le focus
DisableWindow(gMotherWindow,#False)
SetActiveWindow(gMotherWindow)
EndProcedure
Procedure fillAppmet()
DATA_AppMet::loadAppMet()
While DATA_AppMet::nextRecord()
AddGadgetItem(list_appmet, -1, DATA_AppMet::T_LIB_APP_MET +" ("+Str(DATA_AppMet::T_CODE_APP_MET)+")")
Wend
EndProcedure
Procedure open(motherWindow,mode_select = #False)
gMotherWindow = motherWindow
If makeXml()
dialog_id = CreateDialog(#PB_Any)
If dialog_id
If OpenXMLDialog(dialog_id, xml, "form",0,0,0,0,WindowID(gMotherWindow))
DisableWindow(gMotherWindow,#True)
form_id = DialogWindow(dialog_id)
btn_quit = DialogGadget(dialog_id, "btn_quit")
list_appmet = DialogGadget(dialog_id, "list_appmet")
fillAppmet()
; Mise en place des callback
BindEvent(#PB_Event_CloseWindow, @exit())
EndIf
EndIf
EndIf
EndProcedure
EndModule
C'est la partie View du code. Pour la partie base de données, ca fonctionne correctement.
Merci.
SPH
Messages : 4945 Inscription : mer. 09/nov./2005 9:53
Message
par SPH » dim. 10/mai/2020 21:45
Pas là non plus...
Je passe la main
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
pls
Messages : 21 Inscription : mer. 26/févr./2020 17:21
Message
par pls » dim. 10/mai/2020 21:51
Ben ça ne se passe pas dans le XML ?
J'ai pas encore connecté les boutons, pour le moment je suis sur la présentation.
Ar-S
Messages : 9540 Inscription : dim. 09/oct./2005 16:51
Contact :
Message
par Ar-S » dim. 10/mai/2020 23:00
Je suppose que tu as in intérêt particulier à créer une GUI via XML ?
J'avoue que je n'y connais rien là dedans.
J'ai l'impression les éléments se positionnent les uns sous les autres.
Si c'est le cas, soit tu ajoute un genre de boite vide de HauteurManquante-HauteurBouton, soit tu agrandis le height='80' de ton editor.
Attends peut être d'autres réponses...
pls
Messages : 21 Inscription : mer. 26/févr./2020 17:21
Message
par pls » lun. 11/mai/2020 7:59
Merci pour ta réponse, je vais faire ça.
Ça n'est vraiment pas un problème bloquant mais c'est plus joli pour la présentation.
Pour le XML, j'ai bien compris que ça permet de faire des fenêtres dont les gadgets se repositionnent si on change les dimensions.
TazNormand
Messages : 1297 Inscription : ven. 27/oct./2006 12:19
Localisation : Calvados (14)
Message
par TazNormand » lun. 11/mai/2020 13:10
Salut
à priori, les GUI faites via XML (hors PB) utiliseraient les flexbox (cf ce topic sur
StackOverflow )
Ne touchant pas à PB et aux XMLDialog, peux-tu voir si tu peux comme conseillé dans le topic StackOverflow utiliser l'attribut "align-items: flex-end;" (cf :
CSS-tricks.com )
Ar-S
Messages : 9540 Inscription : dim. 09/oct./2005 16:51
Contact :
Message
par Ar-S » lun. 11/mai/2020 16:37
pls a écrit : Pour le XML, j'ai bien compris que ça permet de faire des fenêtres dont les gadgets se repositionnent si on change les dimensions.
Si ce n'est que ça regarde
cet excellent code de guillot
Autant faire ta GUI en PB, ce sera bien moins contraignant.
Mesa
Messages : 1126 Inscription : mer. 14/sept./2011 16:59
Message
par Mesa » mar. 12/mai/2020 10:36
Code : Tout sélectionner
; XML$ = "<?xml version='1.0' encoding='UTF-8'?>" +
; XML$ = "<dialogs>" +
#Dialog = 0
#Xml = 0
XML$ = "<window id='#PB_Any' name='test' text='titre' minwidth='640' minheight='480' flags='#PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_SizeGadget'>" +
" <hbox name='principal'>" +
" <vbox width='150' expand='item:1' name='List'>" +
" <listicon text='liste' name='list_appmet'/>" +
" </vbox>" +
" <vbox expand='item:3'>" +
" <hbox>" +
" <text text='000' name='text_1'/>" +
" <string text='string1' width='150' name='string_1'/>" +
" </hbox>" +
" <text text='Description' width='200' name='text_2'/>" +
" <editor height='80' flags='#PB_Editor_WordWrap' name='editor_1'/>" +
" <empty/>" +
" <hbox>" +
" <button text='Nouveau' name='button_1'/>" +
" <button text='Supprimer' name='button_2'/>" +
" <button text='Enregistrer' name='button_3'/>" +
" <button text='Quitter' name='button_4'/>" +
" </hbox>" +
" </vbox>" +
" </hbox>" +
" </window>"
; " </dialogs>" +<!--DDesign0R Definition: PureBasic|0|0-->" +
If ParseXML(#Xml, XML$) And XMLStatus(#Xml) = #PB_XML_Success
If CreateDialog(#Dialog) And OpenXMLDialog(#Dialog, #Xml, "test")
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Else
Debug "Erreur de la bibliothèque -Dialog- : " + DialogError(#Dialog)
EndIf
Else
Debug "Erreur XML : " + XMLError(#Xml) + " (Ligne: " + XMLErrorLine(#Xml) + ")"
EndIf
M.
pls
Messages : 21 Inscription : mer. 26/févr./2020 17:21
Message
par pls » mar. 12/mai/2020 15:59
Merci à vous tous, c'est top.
Pleins de solutions