Dialog während der Laufzeit erweitern
Verfasst: 23.11.2022 17:25
Hey,
ich arbeite mich gerade an Dialogen ab. Mir geht es darum, sie zur Laufzeit dynamisch zu erweitern. Als Übungsdialog verwende ich das hier:
Nun will ich den Dialog zur Laufzeit dynamisch erweitern. Klappt mit normalen Gadgets über OpenGadgetList problemlos. Aber was mache ich mit dialogspezifischen Tags wie hbox und vbox, damit das ganze schön resizable ist?
Ich habe es über XML-Manipulation versucht:
Im Library-Viewer sieht man auch, dass die neuen Knoten korrekt eingefügt wurden. Aber sie werden nicht angezeigt. RefreshDialog bringt nichts (hatte ich auch nicht wirklich erwartet). Könnt ihr mir einen Tipp geben?
Besten Dank und habt einen schönen Resttag
Qnode
ich arbeite mich gerade an Dialogen ab. Mir geht es darum, sie zur Laufzeit dynamisch zu erweitern. Als Übungsdialog verwende ich das hier:
Code: Alles auswählen
<?xml version="1.0" encoding="UTF-8"?>
<dialogs>
<window flags="#PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_SizeGadget" width="300" height="300" name="window_1" xpos="0" ypos="0">
<scrollarea scrolling="vertical" innerheight="5000" name="scrollarea_1">
<vbox align="" expand="no" name="Datenbereich" id="99">
<button text="Button 1" name="button_1"/>
<text text="Ich bin der Text" name="text_1"/>
<hbox text="Ich bin die HBox">
<button text="Button 2" name="button_2"/>
<string text="Hier was eingeben" width="200" name="string_1"/>
</hbox>
<button text="Button 1" name="button_1Copy_7"/>
<button text="Button 1" name="button_1Copy_8"/>
<button text="Button 1" name="button_1Copy_9"/>
<button text="Button 1" name="button_1Copy_10"/>
<button text="Button 1" name="button_1Copy_11"/>
<button text="Button 1" name="button_1Copy_12"/>
<button text="Button 1" name="button_1Copy_13"/>
<button text="Button 1" name="button_1Copy_14"/>
<button text="Button 1" name="button_1Copy_15"/>
</vbox>
</scrollarea>
</window>
</dialogs><!--DDesign0R Definition: PureBasic|0|0|0||-|0-->
Ich habe es über XML-Manipulation versucht:
Code: Alles auswählen
#Dialog = 0
#Window = 0
#TreeGadget = 0
#Xml = 0
#Bereich = "99"
If LoadXML(#Xml, "E:\PureBasic\Testdialog.xml") And XMLStatus(#Xml) = #PB_XML_Success
CreateDialog(#Dialog)
If OpenXMLDialog(#Dialog, #Xml, "window_1", 300, 300)
;XML-test
Neuevbox = CreateXMLNode(XMLNodeFromID(#Xml, #Bereich), "vbox", -1)
SetXMLAttribute(Neuevbox, "name", "Daten1")
SetXMLAttribute(Neuevbox, "id", "101")
ersteZeile = CreateXMLNode(XMLNodeFromID(#Xml, "101"), "hbox", -1)
SetXMLAttribute(ersteZeile, "id", "102")
Daten = CreateXMLNode(XMLNodeFromID(#Xml, "102"), "Button", -1)
SetXMLAttribute(Daten, "text", "Daten 1")
RefreshDialog(#Dialog)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Else
Debug "Dialog creation error: " + DialogError(#Dialog)
EndIf
Else
Debug "XML error on line " + XMLErrorLine(#Xml) + ": " + XMLError(#Xml)
EndIf
Besten Dank und habt einen schönen Resttag
Qnode