DynamicDialogs - komplexe dynamische GUIs einfach erstellen.

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1754
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel

Beitrag von Andre »

Ich hab's grad geschafft, die neueste Module-Version (7.3.2016) erfolgreich in mein Projekt zu integrieren.
Dabei konnte ich auch erstmals erfolgreich das direkte Setzen von 'ImageIDs' als Parameter ausprobieren, ebenso wie die direkte Definition von Gadgets mit gesondertem Zeichensatz.

Alles in allem ein weiter verkürzter und klar lesbarer Code zur Dialog-Erstellung, und das alles dank des DynamicDialogs-Modules. Vielen herzlichen Dank, PureLust :allright:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel

Beitrag von PureLust »

So, ... hab mal eine neue Version hochgeladen.
(Sorry dass es etwas gedauert hat, aber da kam leider ein kleiner Snowboardurlaub dazwischen.)

Info zu den Änderungen:
- Bislang wurden die Zusatzinformationen für Fonts und Images in separaten Listen innerhalb des DynamicDialogs-Moduls gespeichert.
Das führte manchmal zu Problemen, wenn man permanent neue Dialoge erstellt hat.
- Nun werden diese Informationen nicht mehr separat gespeichert, sondern direkt im XML-Code abgelegt und diese Informationen dann beim Öffnen des Dialogs ausgewertet.

Bspl. XML-Output:

Code: Alles auswählen

<window name='MainWindow' text='Little Test' width='300' height='200' flags='#PB_Window_SystemMenu'>
     <vbox>
          <image id='1'/>
          <button id='2' name='Exit_Button' text='Klick Me'/>
     </vbox>
</window>

<?INFO - The following lines contain additional information, used by DynamicDialogs to support fonts and imageIDs ?>

<?Image ID='1359286902' GadgetID='1' ?>
<?Font ID='-1727393237' GadgetID='2' ?>
Kompatibilität:
- Eigentlich sollte alles ohne Änderungen wie zuvor funktionieren.

NEU:
- GetXML() hat nun einen optionalen Parameter bekommen -> GetXML(IncludeExtensions=#True).
Über diesen kann man festlegen, ob der zurückgegebene XML-Code die zusätzlichen Font- und Image-Informationen beinhalten soll, oder eben nicht.
GetXML() - liefert also einen XML-Code mit Font- und Image-Unterstützung zurück (wie oben im Bspl.)
GetXML(#False) - liefert den reinen XML-Code ohne Font- und Image-Informationen (im Bspl. also bis zum EndTag: '</window>')

Wäre nett wenn Ihr's nochmal testen und ggfl. ein kurzes Feedback geben könntet. <)
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1754
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel

Beitrag von Andre »

Danke für die neue Module-Version :allright:

Habe diese erfolgreich in mein Projekt integriert und ohne jegliche Fehler/Auffälligkeiten getestet (sowohl mit #PB_Any erstellten Fenstern/Dialogen, von denen es mehrere Instanzen wie eben Info-Fenster gleichen Aufbaus mit individuellem Inhalt gibt; gleichzeitig aber auch Fenster/Dialoge mit festen Gadget-Nummern, weil es diese nur einmal gibt, z.B. Einstellungsfenster). Sehr schön also! :mrgreen:

Habe im Moment nur noch einen Wunsch (da mir im Moment auch eigene Idee fehlt):
Eine niedrige Anzahl von Gadgets in einen "Container" (also wirklich ContainerGadget; aber auch FrameGadget, ScrollAreaGadget o.ä.) einfüllen, und darin werden dies automatisch so angeordnet wie es der Platz im Fenster/Dialog (dessen Breite) hergibt. Also z.B. 5 HyperLinkGadgets, wovon anfänglich (bei kleinerer Fenster/Dialog-Breite) nur 3 auf eine Zeile passen, die übrigen 2 auf der nächsten Zeile angeordnet werden. Wenn der Anwender nun das Fenster/Dialog breiter zieht, sollten die letzten 2 Gadgets ggf. automatisch mit auf die vorangegangene Zeile rutschen. Also quasi so eine Art automatischer Wort/Silbenumbruch für einzelne Gadgets.

Für das Design des Dialogs habe ich hier z.B. eine Gridbox mit 3 Spalten eingerichtet, wodurch die Einträge 4 und 5 automatisch in der nächsten Tabellenzeile angeordnet werden.

Das sollte idealerweise automatisch funktionen, ohne dass ich nach einem "Resize" den Dialog schließen und neu Öffnen (dann mit neu kalkulierter Gadget-Anordnung) muss... jegliche Tipps sind willkommen :D
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel

Beitrag von PureLust »

Andre hat geschrieben:Habe im Moment nur noch einen Wunsch (da mir im Moment auch eigene Idee fehlt):
...
Für das Design des Dialogs habe ich hier z.B. eine Gridbox mit 3 Spalten eingerichtet, wodurch die Einträge 4 und 5 automatisch in der nächsten Tabellenzeile angeordnet werden.
...
Das sollte idealerweise automatisch funktionen, ohne dass ich nach einem "Resize" den Dialog schließen und neu Öffnen (dann mit neu kalkulierter Gadget-Anordnung) muss...
Genau dieses Problem hatte ich im englischen Forum ja auch schon mal als Feature-Request angesprochen (unter Punkt 2.), da ich bei meinem Projekt vor dem selben Problem stand.
Naja ... aber und Du weißt ja wie dass dann läuft. :cry:

Wie ich Dir ja schon mal per PM geschrieben hatte, war ich schon am überlegen, die komplette Dialog-Library durch eine eigene zu ersetzen, die dann´eben solche Sachen kann und auch offen für Erweiterungen ist. Aber da ja jetzt bald wieder die Motorrad-Saison anfängt, werd' ich selber die nächsten Monate wohl nicht dazu kommen.

Ach ja ... was könnte PB doch für eine tolle Sprache sein, wenn die User nur eine Möglichkeit bekommen würden, fehlende Funktionalitäten einfach und sauber selber hinzuzufügen zu können. :mrgreen:
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1754
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel

Beitrag von Andre »

@PureLust: Ja stimmt, den Feature-Request hatte ich gedanklich jetzt gar nicht auf dem Schirm. Speziell wegen diesem, aber auch anderen Dialog-relevanten Auffälligkeiten (die mit deinem tollen DynamicDialogs-Module oft elegant gelöst werden können) und Feature-Requests, habe ich bei Fred nochmal nachgelegt. Und ohne zuviel versprechen zu wollen - ich habe positive Signale, dass sich Fred für PB5.50 auch die Dialog-Library nochmal näher anschaut... :mrgreen:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel

Beitrag von PureLust »

Andre hat geschrieben:Und ohne zuviel versprechen zu wollen - ich habe positive Signale, dass sich Fred für PB5.50 auch die Dialog-Library nochmal näher anschaut... :mrgreen:
Wau ... das klingt natürlich vielversprechend und macht Hoffnung. :D

Vielleicht sollten wir hier (oder auch im englischen Forum) mal einen Thread aufmachen und eine Umfrage starten, was nach Meinung der User noch an der Dialog-Library zu verbessern wäre.
Dann hätte Fred (wenn er sich denn dann an die Dialog-Library setzt) schon mal ein paar Anhaltspunkte was sich die User noch an Funktionalität wünschen würden.
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Benutzeravatar
Andre
PureBasic Team
Beiträge: 1754
Registriert: 11.09.2004 16:35
Computerausstattung: MacBook Core2Duo mit MacOS 10.6.8
Lenovo Y50 i7 mit Windows 10
Wohnort: Saxony / Deutscheinsiedel
Kontaktdaten:

Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel

Beitrag von Andre »

@PureLust: wenn du Lust dazu hast, gerne :allright:
Würde dich nach Möglichkeit dort auch unterstützen. Bitte ein "Sammel-Thread" (vielleicht mit einer regelmäßig aktualisierten Auflistung der wichtigen Punkte im ersten Beitrag) - aber bitte im englischen Forum ("Feature requests"), damit Fred auch direkt mitlesen kann.... :)

In diesem macht es dann Sinn, auf die diversen bereits vorhandenen Beiträge (in Bugs, Feature Requests, Coding questions, etc.) kurz einzugehen / zu verlinken.


Unabhängig davon wundert mich das doch arg begrenzte Interesse zum Thema "Dialoge erstellen" und speziell deines "DynamicDialogs"-Moduls doch sehr, angesichts des enormen Potentials für die Erstellung von GUI's...
(zumindest angesichts der wenigen Teilnehmer hier).
Vielleicht ist es ja wirklich auch an der Zeit, dieses im engl. Forum zu veröffentlichen. Mehr als gut genug ist es schon längst :allright:
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel

Beitrag von PureLust »

Andre hat geschrieben:Vielleicht ist es ja wirklich auch an der Zeit, dieses im engl. Forum zu veröffentlichen. Mehr als gut genug ist es schon längst :allright:
Ok ... werd ich mir mal für die Ostertage vornehmen. :D

Noch 'ne kleine Frage:

Ich überlege, zusätzlich zu der '_plain' un den '_suffixed'-Versionen noch eine '_prefixed'-Variante zu machen.
Ein Präfix hätte den Vorteil, dass einem dann die Autovervollständigung nach Eingabe von 3 Präfix-Zeichen alle zur Verfügung stehenden Funktionen auflisten würde.
Das würde wohl vor allem für Anfänger oder Gelegenheits-Nutzer hilfreich sein können.

Ich bin mir aber nicht sicher, welcher Präfix am geeignetsten wäre.
Meine Favoriten bisher:

'dyn_...' - Vorteil: gute Assoziation zu 'DynamicDialogs', bislang keinerlei andere Befehle vorhanden, die mit 'dyn...' beginnen. Nachteil: d-y-n ist blöd zu tippen
'dia_...' - Vorteil: d-i-a ist gut zu tippen. Nachteil: Es gibt bereits einige Befehle die mit 'dia...' beginnen (wenn auch wenige)
'dd_...' - Nachteil: d-d-(shift)_ ist noch blöder zu tippen. Vorteil: kurz und knackig, Assoziation mit ... (naja, Ihr wisst schon :mrgreen: )

Was meint ihr dazu?
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Benutzeravatar
PureLust
Beiträge: 1145
Registriert: 21.07.2005 00:02
Computerausstattung: Hab aktuell im Grunde nur noch 'nen Lenovo Yoga 2 Pro im Einsatz.
Wohnort: am schönen Niederrhein

Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel

Beitrag von PureLust »

Andre hat geschrieben:Vielleicht ist es ja wirklich auch an der Zeit, dieses im engl. Forum zu veröffentlichen. Mehr als gut genug ist es schon längst :allright:
=> Erledigt !!! :D
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)
Andesdaf
Moderator
Beiträge: 2658
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel

Beitrag von Andesdaf »

ich benutze die Dialog-Funktionen ebenfalls für mein Projekt. Dort habe ich
alles XML per Hand geschrieben. Ich lese hier interessiert mit, habe aber gerade keine Lust,
mir eine neue Baustelle aufzumachen.

Auf jeden Fall eine gute Sache, danke für dein Engagement dafür.
Win11 x64 | PB 6.00 (x64)
Antworten