Anfängerprobleme mit Dialog-Library

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Qnode
Beiträge: 85
Registriert: 19.07.2018 20:41
Computerausstattung: i5, 16GB RAM, Win10, PureBasic 6.00 (Windows - x64)

Anfängerprobleme mit Dialog-Library

Beitrag von Qnode »

... ich schon wieder. Ich habe noch einen anderen Thread zu laufen, in dem ich schon geschrieben habe, dass ich mir nochmal die Dialog-Library anschaue, was ich jetzt schon mal gemacht habe. Habe mir ein Beispielprojet gebaut und angefangen, mit Dialogen rumzuexperimentieren.
Funktioniert schon ansatzweise und ich kann nur den DialogDesigner von Hex0r empfehlen, der in dem ganzen XML-Gebastel echt eine große Hilfe ist.

Wie dem auch sei, ich komme an einem Punkt nicht weiter, trotz Hilfe-Recherche (OpenXMLDialog) und Google-ist-dein-Freund.
Es geht darum, dass mein Testdialog bestimmte Komponenten einfach nicht anzeigt (z.B. Menü und Toolbox). Ich habe mir die Attribute angesehen, mit den Einstellungen rumgespielt, aber ich habe schlichtweg keinen Peil, was ich falsch mache.
Das gleiche habe ich mit der Scrollarea (ja, ja, ich und meine Scrollareas :roll: ). Da die ein Singlecontainer ist, dachte ich, dass ich sie mit einer vBox bestücke, die dann die Childs aufnimmt. So erscheint es mir jedenfalls logisch. Wird aber nix angezeigt...

Es ist nur ein Beispielprojekt, insofern wäre ich einfach dankbar, wenn mir jemand mit Ahnung von Dialogen mal eine Denkrichtung geben kann, was man tut, wenn ein Dialogteil nicht angezeigt wird. Das hat sicherlich eine ganz logische Ursache... wenn man nur darauf kommen würde...

Hier mein XML

Code: Alles auswählen

<dialogs>
  <window flags='#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget | #PB_Window_ScreenCentered' text='Test' minwidth='400' minheight='200' width='900' height='600' name='Haupt' id='#Haupt'>
    <menu height='30' width='100' id='#mnuHaupt'>
      <submenu text='Datei' height='30' id='#mnuDatei'>
        <menuitem text='Programm beenden' height='30' id='#mnuBeenden'/> 
      </submenu> 
    </menu>
    <toolbar flags='#PB_ToolBar_Large' width='100' height='30' id='#tbHaupt'>
      <toolbutton image='#ICON_BUCHUNG_NEU' tooltip='Eine neue Buchung erzeugen' id='#tbBuchungNeu'/>
      <toolbutton image='#ICON_EINMALBUCHUNG_NEU' tooltip='Eine neue Einmalbuchung erzeugen' id='#tbEinmalbuchungNeu'/>
    </toolbar>
    <vbox expand='item:gridDatenbereich' id='#vbUeberschrift'>
      <gridbox columns='4' colspacing='5' rowspacing='5' colexpand='yes' rowexpand='yes' height='50' id='#leisteUeberschrift'>
        <buttonimage text='Vorher' name='btnMonatVorher' id='#btnMonatVorher'/>
        <string colspan='2' name='AktuellerTermin' id='#strAktuellerTermin' onlostfocus='textChanged()'/>
        <buttonimage text='Nachher' name='btnMonatNachher' id='#btnMonatNachher'/> 
      </gridbox>
      <hbox id='#hbHauptbereich'>
        <vbox id='#vbLinks'>
          <text text='Links' name='text_1' id='#txtText1'/> 
        </vbox>
        <scrollarea colspan='3' scrolling='vertical' innerwidth='500' invisible='yes' width='500' height='400' innerheight='5000' flags='#PB_ScrollArea_Raised' name='saBericht' id='#saBericht'>
          <vbox id='#vbBericht'>
            <text text='Monatsbericht April 2024' flags='#PB_Text_Center' height='30' name='MB_Ueberschrift' id='#MB_Ueberschrift'/>
            <text text='Nächster Text' name='text_3'/>
            <listicon height='100' name='listicon_1'/> 
          </vbox> 
        </scrollarea>
        <vbox id='#vbRechts'>
          <text text='Rechts' name='text_2' id='#txtText2'/> 
        </vbox> 
      </hbox> 
    </vbox> 
  </window>
</dialogs>
Hier die Startroutine

Code: Alles auswählen

#Dialog = 1
#XML = 1
Runtime Enumeration Fenster
  #Haupt
EndEnumeration

Runtime Enumeration Icons
  #ICON_BUCHUNG_NEU
  #ICON_EINMALBUCHUNG_NEU
EndEnumeration

Runtime Enumeration Menue
  #mnuHaupt
  #mnuDatei
  #mnuBeenden
  #tbHaupt
  #tbBuchungNeu
  #tbEinmalbuchungNeu
EndEnumeration

Runtime Enumeration Gadgets
 #vbUeberschrift
#leisteUeberschrift
#btnMonatVorher
#strAktuellerTermin
#btnMonatNachher
#hbHauptbereich
#vbLinks
#txtText1
#saBericht
#vbBericht
#MB_Ueberschrift
#vbRechts
#txtText2

EndEnumeration

Runtime Procedure textChanged()
  Debug "Text wurde geändert"
EndProcedure

LoadImage(#ICON_BUCHUNG_NEU, "Dauerbuchung.png")
LoadImage(#ICON_EINMALBUCHUNG_NEU, "Einmalbuchung.png")

If LoadXML(#XML, "frmHaupt.xml") And XMLStatus(#XML) = #PB_XML_Success
  If CreateDialog(#Dialog) 
    If OpenXMLDialog(#Dialog, #XML, "Haupt")
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
  Else  
    Debug "Dialog error: " + DialogError(#Dialog)
  EndIf
  
    
  EndIf
Else
  Debug "XML error: " + XMLError(#Xml) + " (Line: " + XMLErrorLine(#Xml) + ")"
  
EndIf
Andesdaf
Moderator
Beiträge: 2671
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: Anfängerprobleme mit Dialog-Library

Beitrag von Andesdaf »

Woher hast du denn die Info, dass sich Menüs und Toolbars mit der Dialog-Lib erstellen ließen? Die werden nicht unterstützt und müssen manuell nachträglich eingefügt werden.

Die Scrollarea wird nicht angezeigt, weil du sie mit invisible="yes" definierst.

hbox und vbox haben keine IDs und für das expand-Item musst du eine Zahl eingeben (die Nummer des Child-Elements), keine Konstante.
Win11 x64 | PB 6.20
Benutzeravatar
Qnode
Beiträge: 85
Registriert: 19.07.2018 20:41
Computerausstattung: i5, 16GB RAM, Win10, PureBasic 6.00 (Windows - x64)

Re: Anfängerprobleme mit Dialog-Library

Beitrag von Qnode »

Hallo und danke für die Antwort.

Das mit den Menüs und Toolbars habe ich vom DialogDesigner. Dort kann man sie einfügen und deshalb dachte ich, dass sie dann auch automatisch angezeigt werden.

Das mit der Scrollarea ist peinlich... ich habe total auf den xml-code und Breiten und Größen und Expands usw. gestarrt und das echt nicht gesehen. Aua, aua...

Danke für den Hinweis für das expand-Item. Dann weiß ich, was ich machen muss .
Benutzeravatar
HeX0R
Beiträge: 3040
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: Anfängerprobleme mit Dialog-Library

Beitrag von HeX0R »

Leider gehen keine Menüs/ToolBars/Statusbar out-of-the box in PBs Dialogen, ich habe daher einen "Hack" verwendet, den Du natürlich dann auch wieder nutzen musst, wenn Du Deine Dialoge in Deiner App nutzt:
https://www.purebasic.fr/english/viewtopic.php?p=561576

Ich empfand es einfach immer als unvollständig, wenn ich schon mein HMI durch eine XML designen/definieren kann, finde ich, müssen auch Menüs, ToolBars und Statusbars mit in die XML.

Und, natürlich kannst Du vbox, hbox und Co IDs zuweisen, das sind aber sog. virtuelle Container, die existieren am Ende eigentlich gar nicht, von daher ist es unnötig.
Aber erlaubt.
Benutzeravatar
Qnode
Beiträge: 85
Registriert: 19.07.2018 20:41
Computerausstattung: i5, 16GB RAM, Win10, PureBasic 6.00 (Windows - x64)

Re: Anfängerprobleme mit Dialog-Library

Beitrag von Qnode »

Danke für die Info. Kämpfe auch noch mit hBox und vBox... habe aber vor, zu gewinnen ;-)
Antworten