Hallo,
ich beschäftige mich das erste Mal mit XML. Hier möchte ich eine Tabelle ausgeben und bearbeiten, deren Spalten unterschiedlich Gadgettypen sein können. Dazu habe ich ein Hilfebeispiel etwas erweitert.
;PB 5.60
#XmlEncoding = #PB_UTF8
#Dialog = 0
#Xml = 0
Procedure make_Grid(rows.i,cols.i)
Protected colnr.i,rownr.i
XML$ = "<window id='#PB_Any' name='test' text='DataGrid' minwidth='500' minheight='200' flags='#PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_SizeGadget'>"+
"<gridbox columns='"+Str(cols)+"'"+">"
For rownr=1 To rows
For colnr=1 To cols
Select colnr
Case 3
XML$=XML$+"<button text='"+Str(rownr)+"--"+Str(colnr)+"'"+"/>"
Case 5
XML$=XML$+"<date text='"+Str(rownr)+"--"+Str(colnr)+"'"+"/>"
Default
XML$=XML$+"<string text='"+Str(rownr)+"--"+Str(colnr)+"'"+"/>"
EndSelect
Next
Next
XML$=XML$+ "</gridbox>"
XML$=XML$+"</window>"
If CatchXML(#Xml, @XML$, StringByteLength(XML$), 0, #XmlEncoding) And XMLStatus(#Xml) = #PB_XML_Success
If CreateDialog(#Dialog) And OpenXMLDialog(#Dialog, #Xml, "test")
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Else
Debug "Dialog error: " + DialogError(#Dialog)
EndIf
Else
Debug "XML error: " + XMLError(#Xml) + " (Line: " + XMLErrorLine(#Xml) + ")"
EndIf
EndProcedure
make_Grid(8,11); 8 Zeilen mit je 11 Spalten
Wie kann ich nun auf z.B. auf das Element in Zeile 3 und Spalte 7 zugreifen, um dessen Wert auszulesen bzw. zu ändern?
Wie baut man dies in die Eventschleife ein?
Vielen Dank @Andesdaf und @Kiffi
Ich will das durch Einfügen diverser Gadgettypen noch etwas allgemeiner gestalten. Dabei hakt es bei mir an der ComboBox, bei der ich beispielhaft zwei Auswahlen A und B vorgeben will.
Was ist bei case 8 falsch? Dort wird ein XML-Fehler 'not well-formed' reklamiert.
Ist combobox für HTML nicht verständlich?
Oder muss ich nachträglich allen Gadgets in Spalte 8 die Items A und B zuweisen?
ProgOldie hat geschrieben:Oder muss ich nachträglich allen Gadgets in Spalte 8 die Items A und B zuweisen?
ich befürchte ja.
Anscheinend gibt es keine Möglichkeit, Comboboxen (oder Listviews, ListIcons...) bereits im XML Items hinzuzufügen. Ich lasse mich allerdings gerne eines Besseren belehren.
Du verschachtelst hier mehrere Tags ineinander ("<combobox <select> >"), das geht in XML nicht. wenn muss du das mit start/endtag versehen (<combobo><select></combobox>). Auch bin ich mir nicht sicher, die Syntax generell falsch ist.
Auf die erstellten Gadgets kann ich nachträglich über die CellID gut zugreifen. Nun möchte ich dem Fenster mit CreateMenu() noch ein Menü hinzufügen, weis aber nicht, wie ich das machen soll. Das Ersetzen von #PB_Any durch eine Nummer funktioniert leider nicht.