Aktuelle Zeit: 03.04.2020 19:34

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 59 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6  Nächste
Autor Nachricht
 Betreff des Beitrags: Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel
BeitragVerfasst: 06.03.2016 14:39 
Offline
Benutzeravatar

Registriert: 21.07.2005 00:02
Wohnort: am schönen Niederrhein
Sodele ... neue Version mit Font-Unterstützung ist online.

Änderungen:

- Konstante #Blue durch $FF0000 ersetzt um Kompatibilität zu Linux und OSX zu gewährleisten.

Neue Funktionen:

- Font(Name$, Höhe [, Stil]) - setzt den von nun an für neue Gadgets genutzten Font
- FontByID(FontID) - nutzt einen zuvor bereits separat geladenen Font für alle weiteren Gadgets (FontID kann eine Font# oder eine FontID() sein)

- EndFont() oder FontByID() - setzt den verwendeten Font für weitere Gadgets auf Standard zurück

Tipp für die Anwendung: Schaut Euch einfach das Beispiel am Ende des 'plain'-AddOn ('DynamicDialogs_plain.pbi') an.

Alle neuen Funktionen natürlich auch in der 'suffixed' Variante verfügbar (also Font__(), FontByID__(), EndFont__())

_________________
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel
BeitragVerfasst: 06.03.2016 14:59 
Offline
Benutzeravatar

Registriert: 01.04.2007 20:18
Die Dialoglibrary ist für mich zwar immer noch ein Dorf aus dem Gebiet hinter den sieben Bergen, bei den sieb....

:allright:

Eine Bitte hätte ich da noch : Den Downloadlink im ersten Post irgendwie separieren, sodass man diesen schneller finden kann. Danke ;)

_________________
PureBasic 5.71 LTS (Windows x86/x64) | Windows10 Pro x64 | Z370 Extreme4 | i7 8770k | 32GB RAM | iChill GeForce RTX 2080 Super | HAF XF Evo​​


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel
BeitragVerfasst: 06.03.2016 19:02 
Offline
Benutzeravatar

Registriert: 21.07.2005 00:02
Wohnort: am schönen Niederrhein
Bisonte hat geschrieben:
Eine Bitte hätte ich da noch : Den Downloadlink im ersten Post irgendwie separieren, sodass man diesen schneller finden kann. Danke ;)
Hab den Link im ersten Post jetzt mal ein wenig deutlicher gemacht.
Hättest in meinem letzten Post aber auch einfach auf "... ist online." klicken können. :D

_________________
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel
BeitragVerfasst: 06.03.2016 19:22 
Offline
Benutzeravatar

Registriert: 08.09.2004 00:57
Wohnort: Berlin
PureLust hat geschrieben:
- Konstante #Blue durch $FF0000 ersetzt um Kompatibilität zu Linux und OSX zu gewährleisten.

Kann ich nicht bestätigen :wink: , im HyperlinkGadget macro scheint es noch #Blue zu geben, eben gedownloadet.
Zeile 47 sagt er, aber ist leider durch Makro ganz woanders.

Gruss
Thomas

_________________
PureBasic 5.71 | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 19.3 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel
BeitragVerfasst: 06.03.2016 19:30 
Offline
Benutzeravatar

Registriert: 21.07.2005 00:02
Wohnort: am schönen Niederrhein
ts-soft hat geschrieben:
Kann ich nicht bestätigen :wink:
Ach ja .... in den AddOns war '#Blue' ja auch noch drin. :oops:
Korrigiert, mit TotalCommander gecheckt und online.

_________________
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel
BeitragVerfasst: 07.03.2016 09:59 
Offline
Benutzeravatar

Registriert: 21.07.2005 00:02
Wohnort: am schönen Niederrhein
Neue Version online. ImageIDs für ButtonImage- und Image-Gadgets werden nun direkt unterstützt (was ja über die Dialog-Library nicht geht).

Änderungen / Neuerungen:

- Ab sofort funktionieren die Parameter für 'ImageIDs' bei ButtonImage() und Image()
- Einige kleine Änderungen in den bisherigen Demos (nichts Gravierendes)
- Neue Demo mit Anwendungsbeispielen für Font() & ImagIDs ('Demo_3 - Font & ImageID.pb')

Hinweis:

- Als ImageID kann sowohl die ImageNr# als auch eine ImageID() übergeben werden.
- Bei ButtonImage() ist ein weiterer Parameter für das 2. Image (PressedImage) hinzu gekommen.
. Da sich somit die Anzahl der Parameter geändert hat, müsst Ihr ggfl. für ButtonImage() Euren Code anpassen.

_________________
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel
BeitragVerfasst: 08.03.2016 01:26 
Offline
PureBasic Team
Benutzeravatar

Registriert: 11.09.2004 16:35
Wohnort: Saxony / Deutscheinsiedel
Konnte leider die neuen Verbesserungen (die sehr interessant + nützlich klingen :allright:) noch nicht mit meinem Projekt testen.

Denn im Moment hänge ich leider bei der weiteren Integration des DynamicDialogs Moduls bei einem Fehler "Dialog window not found!" fest, welcher immer ab dem zweiten Öffnen des gleichen Dialog-Fenters auftritt. Ein zweites/drittes/etc. Öffnen kommt hier in relativ kurzen Zeitabständen (5 - 20 sek) vor, da es sich um ein sich selbständig öffnendes & schließendes Info-Fenster mit der Ergebnisauswertung zur letzten Antwort in einem lfd. Quiz handelt.

Und das komische ist, dass der Fehler immer dann auftritt, wenn ich den standardmäßigen Befehlsablauf gemäß DynamicDialogs Beispielen verwende (der bei mir ja auch mit anderen Dialog-Fenstern funktioniert):
Code:
  ; 1) DynamicDialogs command for creating/opening the Dialog window, based on the previously created XML definition:
  If Not OpenDialogWindow(#QuizShowResultDialog, XML$, #QuizResultWin, "", #PB_Ignore, #PB_Ignore, 100, 200, WindowID(#QuizWin), #DialogError_MsgBox)
    Debug "Error opening the Dialog 'QuizResultWindow'"
    Debug "Error: " + DialogError(#QuizShowResultDialog)
    ;FreeDialog(#QuizShowResultDialog)
    UnuseModule DynamicDialogs         ; we don't need the Module-Functions anymore
    ProcedureReturn
  EndIf

Der gleiche XML-Definitions-Code führt zu keinen Fehlern, wenn ich ihn stattdessen mit folgendem (bis zur Integration von DynamicDialogs verwendeten) Code aufrufe:
Code:
  ; 2) PB-native creating/opening of the Dialog window, based on the previously - by DynamicDialogs - created XML definition:
  xml = CatchXML(#PB_Any, @XML$, StringByteLength(XML$))
  If Not xml
    Debug "Catching and parsing the XML string failed!"
    Debug "Error: " + DialogError(#QuizShowResultDialog)
    CallDebugger
    FreeDialog(#QuizShowResultDialog)
    ProcedureReturn
  EndIf   
  Debug "Catched XML string:"
  Debug "--------------------------------------------------------------"
  Debug XML$

  If Not CreateDialog(#QuizShowResultDialog)
    Debug "Dialog creation failed!"
    Debug "Error: " + DialogError(#QuizShowResultDialog)
    CallDebugger
    ProcedureReturn
  Else
    Debug "Dialog successfully created!"
  EndIf
 
  If Not OpenXMLDialog(#QuizShowResultDialog, xml, "", 0, 0, 300, 200, WindowID(#QuizWin))
    Debug "Open Dialog failed!"
    Debug "Error: " + DialogError(#QuizShowResultDialog)
    CallDebugger
    FreeDialog(#QuizShowResultDialog)
    FreeXML(xml)
    ProcedureReturn
  Else
    Debug "Dialog successfully opened!"
  EndIf   


Ich bin da gerade etwas ratlos und finde den Fehler nicht. Der zuvor erfolgreich geöffnete Dialog wird jeweils mit
Code:
FreeDialog(#QuizShowResultDialog)

geschlossen. Daran sollte es also auch nicht liegen...

Kann es manchmal sein, dass OpenDialogWindow(...) irgendetwas macht/speichert, dass sich nicht mit wiederholten Aufrufen verträgt?

Hier der Vollständigkeit halber noch die Dialog-Definition im "DynamicDialogs [plain]" Stil:
Code:
   UseModule DynamicDialogs                 ; we need the 'main'-Modul for standard functions
   UseModule DynamicDialogs_plain         ; we need the 'plain'-Modul for XML-Elements

  SetXMLOutputFormat(#XMLout_Indent, 5)
  SetXMLOutputFormat(#XMLout_AlignLineBreak, #True)
 
  ClearXML()
 
  Window(#QuizResultWin, "", "", #PB_Window_BorderLess|#PB_Window_WindowCentered)   ; there is no window title
    Frame(#QuizResultFrame, "", Language("QuizResultQuestion"))
      vBox(#Expand_No, #alignCenter, 5)
        Text(#QuizResultTitle, "", title$, 0, #PB_Default, #PB_Default, #alignCenter, "", 0, 0, DialogGadgetTextSize(title$, #Font_Big, 0))
        If AnswerStatus = #False   ; If the user gave a false answer, we will additionally display this false answer here:
          Text(#QuizResultFalseAnswer, "", "(" + QuizStatistics()\QuizAnswer$ + ")", 0, #PB_Default, #PB_Default, #alignCenter)
        EndIf
        Empty(#PB_Default, 10)
        Text(#QuizResultAnswer, "", Language("QuizResultCorrectAnswer"))
        If image   ; 1) if there is an image to display:
          hBox(#Expand_No, #alignCenter, 10)
            Empty()   ; ...and some more space
            ; directly including the ImageID doesn't work, so we need to set the image after dialog creation using SetGadgetState()...
            Image(#QuizResultCorrectImage, "", 0, 0, imagewidth, imageheight, #alignCenter, "", 0, 0, "disabled='yes'")   ; flags='#PB_Image_Border'/>"
            If QuizStatistics()\QuizAddInfoAnswer$ <> ""                                                                 ; there was saved a list of all possible answers with their item values (e.g. up-to 5 countries with their area in qkm), 'CRLF$' was used for multiline...
              vBox(#Expand_No, #alignCenter, 5)
            EndIf
            Text(#QuizResultCorrectText, "", QuizAnswers()\Answer, 0, #PB_Default, #PB_Default, #alignCenter, "", 0, 0, DialogGadgetTextSize(QuizAnswers()\Answer, #Font_Big, 10))
            If QuizStatistics()\QuizAddInfoAnswer$ <> ""  ; there was saved a list of all possible answers with their item values (e.g. up-to 5 countries with their area in qkm), 'CRLF$' was used for multiline...
              timer * 3                                   ; triple the time, how long this information window will be displayed....
              Editor(#QuizResultAddInfoAnswer, "", ReplaceString(QuizStatistics()\QuizAddInfoAnswer$, "\n", CRLF$), #PB_Editor_ReadOnly|#PB_Editor_WordWrap)
              ;  XML$ + "          " + DialogCreateEditorGadget(QuizStatistics()\QuizAddInfoAnswer$, #QuizResultAddInfoAnswer) + LF$ +
              EndVBox()
            EndIf
          EndHBox()
        Else       ; 2) if there is no image to display:
          Text(#QuizResultCorrectText, "", QuizAnswers()\Answer, 0, #PB_Default, #PB_Default, #alignCenter, "", 0, 0, DialogGadgetTextSize(QuizAnswers()\Answer, #Font_Big, 10))
        EndIf
       
        ; Now we display the ProgressBar showing the user, how long it will take until the
        ; Quiz continues...
        Empty(#PB_Default, 10)    ; ...and some more space
        Text(#QuizResultTimerText, "", Language("QuizResultGoingOn"))
        ProgressBar(#QuizResultTimerProgress, "", 0, timer, 0, #PB_Default, fontheight)
      EndVBox()
    EndFrame()
  EndWindow()
       
   UnuseModule DynamicDialogs_plain         ; we don't need the XML-Elements anymore
   ; from now on we really need the functions from the 'main'-Modul 'DynamicDialogs'
   
   XML$ = GetXML()
  Debug XML$
 
  ; 1) DynamicDialogs command for creating/opening the Dialog window, based on the previously created XML definition:
  If Not OpenDialogWindow(#QuizShowResultDialog, XML$, #QuizResultWin, "", #PB_Ignore, #PB_Ignore, 100, 200, WindowID(#QuizWin), #DialogError_MsgBox)
    Debug "Error opening the Dialog 'QuizResultWindow'"
    Debug "Error: " + DialogError(#QuizShowResultDialog)
    ;FreeDialog(#QuizShowResultDialog)
    UnuseModule DynamicDialogs         ; we don't need the Module-Functions anymore
    ProcedureReturn
  EndIf
 
  UnuseModule DynamicDialogs         ; we don't need the Module-Functions anymore


Leider nicht direkt lauffähig, da vollständig aus meinem PRojekt übernommen.... sorry!

Vorgenannter Code "produziert" folgenden XML-Code, der beim ersten Anlauf erfolgreich ein Dialog-Fenster öffnet (was dann wie o.g. geschlossen wird), jedoch im zweiten Anlauf beim nächsten zu öffnenden Dialog die o.g. Fehlermeldung bringt:
Zitat:
<window id='6' name='Win_4831624499168' flags='#PB_Window_BorderLess | #PB_Window_WindowCentered'>
<frame id='146' text='Ergebnis der letzten Frage:'>
<vbox expand='no' align='center' spacing='5'>
<singlebox expand='horizontal' align='center' margin='0' colspan='0' rowspan='0'>
<singlebox expand='vertical' align='center' margin='0'>
<text id='147' text='Ihre Antwort war richtig!' width='282' height='31' />
</singlebox>
</singlebox>
<empty height='10'/>
<text id='149' text='Die korrekte Antwort lautete:' margin='0'/>
<hbox expand='no' align='center' spacing='10'>
<empty/>
<singlebox expand='horizontal' align='center' margin='0' colspan='0' rowspan='0'>
<singlebox expand='vertical' align='center' margin='0'>
<image id='151' width='81' height='54' disabled='yes'/>
</singlebox>
</singlebox>
<vbox expand='no' align='center' spacing='5'>
<singlebox expand='horizontal' align='center' margin='0' colspan='0' rowspan='0'>
<singlebox expand='vertical' align='center' margin='0'>
<text id='150' text='Libanon' width='112' height='41' />
</singlebox>
</singlebox>
<editor id='152' text='1. Libanon (594,68 Einwohner je qkm)&#10;2. Kambodscha (86,77 Einwohner je qkm)&#10;3. Norwegen (16,08 Einwohner je qkm)&#10;4. Gabun (6,37 Einwohner je qkm)&#10;' flags='#PB_Editor_ReadOnly | #PB_Editor_WordWrap' margin='0'/>
</vbox>
</hbox>
<empty height='10'/>
<text id='153' text='Gleich geht es weiter...' margin='0'/>
<progressbar id='154' min='0' max='9000' height='20' margin='0'/>
</vbox>
</frame>
</window>

QuizResultWindow dialog freed!

<window id='6' name='Win_721614509551' flags='#PB_Window_BorderLess | #PB_Window_WindowCentered'>
<frame id='146' text='Ergebnis der letzten Frage:'>
<vbox expand='no' align='center' spacing='5'>
<singlebox expand='horizontal' align='center' margin='0' colspan='0' rowspan='0'>
<singlebox expand='vertical' align='center' margin='0'>
<text id='147' text='Ihre Antwort war falsch!' width='274' height='31' />
</singlebox>
</singlebox>
<singlebox expand='horizontal' align='center' margin='0'>
<singlebox expand='vertical' align='center' margin='0'>
<text id='148' text='(Moldawien)'/>
</singlebox>
</singlebox>
<empty height='10'/>
<text id='149' text='Die korrekte Antwort lautete:' margin='0'/>
<hbox expand='no' align='center' spacing='10'>
<empty/>
<singlebox expand='horizontal' align='center' margin='0' colspan='0' rowspan='0'>
<singlebox expand='vertical' align='center' margin='0'>
<image id='151' width='86' height='54' disabled='yes'/>
</singlebox>
</singlebox>
<singlebox expand='horizontal' align='center' margin='0' colspan='0' rowspan='0'>
<singlebox expand='vertical' align='center' margin='0'>
<text id='150' text='Costa Rica' width='135' height='41' />
</singlebox>
</singlebox>
</hbox>
<empty height='10'/>
<text id='153' text='Gleich geht es weiter...' margin='0'/>
<progressbar id='154' min='0' max='3000' height='20' margin='0'/>
</vbox>
</frame>
</window>

Error opening the Dialog 'QuizResultWindow'
Error: Dialog window not found


Wäre für jeglich Ideen & Hilfestellungen dankbar!
Unabhängig davon bieten die o.g. Beispiele evtl. auch "Anschauungsunterricht" für etwas komplexere Dialog-Definitionen mittels DynamicDialogs und integrierten Bedingungen (weil nicht jedes Gadget immer gebraucht wird).

_________________
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel
BeitragVerfasst: 08.03.2016 01:52 
Offline
Benutzeravatar

Registriert: 21.07.2005 00:02
Wohnort: am schönen Niederrhein
Andre hat geschrieben:
Kann es manchmal sein, dass OpenDialogWindow(...) irgendetwas macht/speichert, dass sich nicht mit wiederholten Aufrufen verträgt?
Jo, ... ich speichere intern eine Liste der geöffneten Dialoge und Fenster.
Beim erneuten öffnen des selben Fensters kann sich da natürlich was beißen, wenn der Eintrag zuvor nicht entfernt wurde.
Durch den FreeDialog() Befehl von PureBasic wird diese Liste natürlich nicht bereinigt.

Ich guck mal, dass ich Dir da kurzfristig 'ne Möglichkeit schaffen kann die Liste zu leeren.

So als schneller Tipp für jetzt: Gib dem Fenster mal einen Namen, dann sollte es klappen.
(Da muss ich aber definitiv nochmal ran.)

_________________
[Dynamic-Dialogs] - komplexe dynamische GUIs einfach erstellen
[DeFlicker] - Fenster flimmerfrei resizen
[WinFX] - Window Effekte (inkl. 'durchklickbares' Window)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel
BeitragVerfasst: 10.03.2016 01:04 
Offline
PureBasic Team
Benutzeravatar

Registriert: 11.09.2004 16:35
Wohnort: Saxony / Deutscheinsiedel
PureLust hat geschrieben:
Andre hat geschrieben:
Kann es manchmal sein, dass OpenDialogWindow(...) irgendetwas macht/speichert, dass sich nicht mit wiederholten Aufrufen verträgt?
Jo, ... ich speichere intern eine Liste der geöffneten Dialoge und Fenster.
Beim erneuten öffnen des selben Fensters kann sich da natürlich was beißen, wenn der Eintrag zuvor nicht entfernt wurde.
Durch den FreeDialog() Befehl von PureBasic wird diese Liste natürlich nicht bereinigt.

Ich guck mal, dass ich Dir da kurzfristig 'ne Möglichkeit schaffen kann die Liste zu leeren.

So als schneller Tipp für jetzt: Gib dem Fenster mal einen Namen, dann sollte es klappen.
(Da muss ich aber definitiv nochmal ran.)


Danke dir für den Tipp und die geplante Verbesserung! :allright:

Habe diese Woche Stress auf Arbeit und komme daher leider nicht vor Freitag Abend zum weiteren Testen....

_________________
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: DynamicDialogs - komplexe dynamische GUIs einfach erstel
BeitragVerfasst: 11.03.2016 22:14 
Offline
PureBasic Team
Benutzeravatar

Registriert: 11.09.2004 16:35
Wohnort: Saxony / Deutscheinsiedel
@PureLust: der Tipp mit dem Vergeben eines 'Name' Parameters in der Fenster-Definition hat geholfen, danke :mrgreen:

Unabhängig davon wäre es (wenn du es nicht anderweitig hin bekommst) vielleicht eine Idee, als Äquivalent zu OpenDialogWindow() eine Art CloseDialogWindow() einzubauen. Diese könnte dann den PB-Befehl FreeDialog() ausführen und zusätzlich die notwendigen internen Bereinigungen (gespeicherte Dialog-Daten) im DynamicDialogs-Modul ausführen.

Ok, im nächsten Schritt geht's dann zum nächsten Testen der neuen Font-Funktionen usw... 8)

_________________
Bye,
...André
(PureBasicTeam::Docs - PureArea.net | Bestellen:: PureBasic | PureVisionXP)


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 59 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4, 5, 6  Nächste

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye