Page 1 sur 2

bug ?

Publié : mer. 04/sept./2013 10:41
par Mesa
Est-ce que ce code fonctionne chez vous ?

Code : Tout sélectionner

#Dialog = 0
  #Xml = 0
  
  XML$ = "<window id='#PB_Any' name='test' text='test' minwidth='auto' minheight='auto' flags='#PB_Window_ScreenCentered | #PB_Window_SystemMenu  | #PB_Window_SizeGadget'>" +
         "  <panel>" +
         "    <tab text='Premier Onglet'>"  +
         "      <vbox expand='item:2'>" +
         "        <hbox>" +
         "          <button text='Bouton 1'/>" +
         "          <checkbox text='Case à cocher 1'/>" +
         "          <button text='Bouton 2'/>" +
         "        </hbox>" +
         "        <editor text='Contenu...' height='150'/>" +
         "      </vbox>" +
         "    </tab>" +
         "    <tab text='Second Onglet'>" +
         "    </tab>" +
         "  </panel>" +
         "</window>"
  
  If CatchXML(#Xml, @XML$, StringByteLength(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

Merci .

Mesa.

Re: bug ?

Publié : mer. 04/sept./2013 10:48
par Fred
Ca marche en unicode mais pas en ascii car le caractere 'à' est invalide si tu ne specifie pas le type de XML.

Re: bug ?

Publié : mer. 04/sept./2013 10:49
par G-Rom
Linux X64:
Erreur XML : not well-formed (invalid token) (Ligne: 1)
@Fred , en unicode tjs sur le même os
Gtk(CRITICAL) : gtk_fixed_move_internal : assertion 'GTK_IS_FIXED(fixed)' failed

Sachant que je suis sous environement kde ( avec gtk en dev d'installé )

Faudrais que tu penses à t'affranchir de gtk , et passé à un plus haut niveau pour la gestion des fenêtres ( wxwidget , qt ? )

Re: bug ?

Publié : mer. 04/sept./2013 10:50
par Kwai chang caine
Erreur XML : not well-formed (invalid token) (Ligne: 1)
Seven v5.20B16

Re: bug ?

Publié : mer. 04/sept./2013 10:56
par Micoute
Bonjour Mesa, chez moi, ça fonctionne très bien !

Re: bug ?

Publié : mer. 04/sept./2013 10:57
par G-Rom
@Fred , wxwindow à l'air tout indiqué : http://opensource.org/licenses/wxwindows.php
La librairie windows sous pb serais enfin homogène et il n'y aurais plus de spécificité entre les différents os.

Re: bug ?

Publié : mer. 04/sept./2013 10:58
par Fred
G-Rom a écrit :Faudrais que tu penses à t'affranchir de gtk , et passé à un plus haut niveau pour la gestion des fenêtres ( wxwidget , qt ? )
GTK est au meme 'niveau' que QT et wxwidget.

Re: bug ?

Publié : mer. 04/sept./2013 10:59
par Fred
G-Rom a écrit :@Fred , wxwindow à l'air tout indiqué : http://opensource.org/licenses/wxwindows.php
La librairie windows sous pb serais enfin homogène et il n'y aurais plus de spécificité entre les différents os.
Sauf que t'as une DLL de 3 mb à te trimballer, et non c'est pas homogene, je l'ai deja utilisé et c'est bourré de petits trucs spécifiques ici et là.

Re: bug ?

Publié : mer. 04/sept./2013 11:08
par Fred
Voici un code qui devrait marcher dans les 2 modes:

Code : Tout sélectionner

#Dialog = 0
#Xml = 0

  CompilerIf #PB_Compiler_Unicode = 0 ; Ascii
    Encoding$ = "<?xml version='1.0' encoding='ISO-8859-1' ?>"
  CompilerEndIf  
 
  XML$ = Encoding$ +
         "<window id='#PB_Any' name='test' text='test' minwidth='auto' minheight='auto' flags='#PB_Window_ScreenCentered | #PB_Window_SystemMenu  | #PB_Window_SizeGadget'>" +
         "  <panel>" +
         "    <tab text='Premier Onglet'>"  +
         "      <vbox expand='item:2'>" +
         "        <hbox>" +
         "          <button text='Bouton 1'/>" +
         "          <checkbox text='Case à cocher 1'/>" +
         "          <button text='Bouton 2'/>" +
         "        </hbox>" +
         "        <editor text='Contenu...' height='150'/>" +
         "      </vbox>" +
         "    </tab>" +
         "    <tab text='Second Onglet'>" +
         "    </tab>" +
         "  </panel>" +
         "</window>"
 
  If CatchXML(#Xml, @XML$, StringByteLength(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
Pour les exemples de la doc, il faut eviter les accents, ca evitera ce genre de problemes.

Re: bug ?

Publié : mer. 04/sept./2013 11:33
par G-Rom
GTK est au meme 'niveau' que QT et wxwidget.
Peu être, mais tu n'utilises pas GTK pour la partie Windows. d'ou la différence.
j'avais noté des différences il y a longtemps sur l'alignements des widgets à l’intérieur d'une fenêtre.
sur windows je pouvais faire des boutons plus fin , sous GTK , le texte était troncqué sur la hauteur.
sur kde , gtk n'est pas supporté , d'ou l'idée d'avoir une lib de plus haut niveau.

Re: bug ?

Publié : mer. 04/sept./2013 11:44
par Kwai chang caine
Dieu a écrit :Voici un code qui devrait marcher dans les 2 modes:
Pour info ça marche chez moi

Re: bug ?

Publié : mer. 04/sept./2013 13:12
par G-Rom
Sauf que t'as une DLL de 3 mb à te trimballer,
On peu compilé en statique les modules , donc c'est un faux problème.
Quand à l'homogénéité tu as surement raison , je ne l'ai jamais utilisé. QT alors ? :D

Re: bug ?

Publié : mer. 04/sept./2013 13:37
par Fred
QT c'est deja beaucoup mieux :). Mais pareil, exit les petits exe independant, la dll QT est encore plus massive. De plus, vu que ce n'est pas des gadgets natifs (Win32), tu ne peux plus bidouiller avec l'API.

Re: bug ?

Publié : mer. 04/sept./2013 13:53
par Mesa
Pour les exemples de la doc, il faut eviter les accents, ca evitera ce genre de problemes.
Je comprends mais malheureusement, ce problème serait apparu rapidement dans le forum et de multiple fois... Vaut mieux le résoudre tout de suite. C'est aussi bien. :wink:

Mesa.

Re: bug ?

Publié : mer. 04/sept./2013 14:00
par G-Rom
QT c'est deja beaucoup mieux :). Mais pareil, exit les petits exe independant, la dll QT est encore plus massive. De plus, vu que ce n'est pas des gadgets natifs (Win32), tu ne peux plus bidouiller avec l'API.
Exit aussi la version statique, la licence ne te le permet pas. Pour en revenir au API de l'os , penses tu qu'avec une API très puissante l'utilisateur en ai besoin ?
Regarde les shoots de wxwidget : http://wxwidgets.org/about/screensh.htm , c'est impressionnant ce que l'on peu faire avec la lib.
si on veut faire la même chose en pb , alors effectivement , il faut jouer avec les API & exit le multiplateforme. le canvas règle pas mal de problèmes , mais pas tout.