AND51 hat geschrieben:Seit mir nicht böse, aber was soll ich dann damit? Dann kann ich auch weiterhin die komplette GUI von Hand schreiben. Ich persönlich nutze eine GUI-Machine (

) nicht nur, um Zeit zu sparen und die Oberfläche später noch bequem ändern zu können, sondern auch, damit ich das nicht mehr von Hand schreiben muss.
oh, wieder ein Missverständnis
WiDe erzeugt die XML-Datei. Ein netter Mensch schreibt -einmalig- einen
Konverter von XML zu PB und dieser wird dann in WiDe eingeklinkt. Fortan
kann man WiDe dafür benutzen, dass es GUIs für Purebasic erstellen
kann, die man mit Knopfdruck testen kann (so wie beispielsweise im VD).
Alternativ könnte man sich auch überlegen, ob der Konverter nicht in der
Zielapplikation sitzt und beliebige XML zur Laufzeit on-the-fly einlesen
kann.
DarkDragon hat geschrieben:Wie bekommt man denn aus dieser XML Datei eine PB Datei? Confused
Bei genauerer Betrachtung kann man Parallelen zwischen dem erstellten
XML und einer PB-Gui-Definition erkennen. Ich gebe zu, dass das XML auf
den ersten Blick verwirrend aussehen mag. Lasst Euch davon nicht
einschüchtern.
Code: Alles auswählen
<WiDe>
<Object type="System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="Form1" children="Controls" WiDeType="System.Windows.Forms.Form">
<Object type="System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" name="button1" children="Controls" WiDeType="System.Windows.Forms.Button">
<Property name="TabIndex">0</Property>
<Property name="Size">75, 23</Property>
<Property name="Name">button1</Property>
<Property name="UseVisualStyleBackColor">True</Property>
<Property name="Text">button1</Property>
<Property name="UseCompatibleTextRendering">True</Property>
<Property name="Location">12, 12</Property>
<Property name="DataBindings">
<Property name="DefaultDataSourceUpdateMode">OnValidation</Property>
</Property>
</Object>
<Property name="Text">Form1</Property>
<Property name="Name">Form1</Property>
<Property name="DataBindings">
<Property name="DefaultDataSourceUpdateMode">OnValidation</Property>
</Property>
<Property name="ClientSize">113, 52</Property>
</Object>
</WiDe>
wenn man nun den überflüssigen Kram wegkürzt, dann sieht das so aus:
Code: Alles auswählen
<WiDe>
<Object name="Form1"WiDeType="System.Windows.Forms.Form">
<Object WiDeType="System.Windows.Forms.Button">
<Property name="TabIndex">0</Property>
<Property name="Size">75, 23</Property>
<Property name="Name">button1</Property>
<Property name="Text">button1</Property>
<Property name="Location">12, 12</Property>
</Object>
<Property name="Text">Form1</Property>
<Property name="Name">Form1</Property>
<Property name="ClientSize">113, 52</Property>
</Object>
</WiDe>
wie man hier schön sehen kann, handelt es sich um ein Window (Form) mit
einem Button drauf.
Code: Alles auswählen
OpenWindow(#Form1, #PB_Ignore, #PB_Ignore, 113, 52, "Form1", #PB_Window_SystemMenu)
CreateGadgetList(WindowID(#Form1))
ButtonGadget(#button1, 12,12,75,23,"")
Wäre doch gelacht, wenn man dafür keinen Konverter basteln kann
DarkDragon hat geschrieben:Wäre schön wenn das mit allen Features ginge, ohne PureRESIZE oder so Zeug. Das "Dock" ist ein Feature, welches bisher kein GUI-Editor von PureBasic ohne zusätzliche Libraries beherscht.
jepp, man kann ja auch mehrere Konverter schreiben, die
unterschiedlichen Output haben. Der eine will lieber mit Lib-Unterstützung,
der eine setzt Standard-Befehle dafür ein. Der eine erzeugt Fenster und
Gadgets mit selbst vergebenen Konstanten, der andere mit #PB_Any. In
weitere Ferne schimmert da auch noch die Möglichkeit, die
EasyVENT-Routinen von srod mit einzubauen. Der Phantasie sind da keine
Grenzen gesetzt.
Grüße ... Kiffi