GUI - dynamische Button mit Daten aus DB erstellen

  • Naja, wenn im Array aus der DB ein 10. Button dazu kommt. müsste eigentlich eine weitere Reihe erzeigt werden.

    Habe aber eben festgestellt, das das bei meinem Skript einen Fehler wirft.

  • Habe aber eben festgestellt, das das bei meinem Skript einen Fehler wirft.

    Dennoch gefällt es mir.

    Lieben Gruß,
    Alina

    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    Geheime Information: ;)
    k3mrwmIBHejryPvylQSFieDF5f3VOnk6iLAVBGVhKQegrFuWr3iraNIblLweSW4WgqI0SrRbS7U5jI3sn50R4a15Cthu1bEr

  • Ich habe jetzt mal mit dem Beispiel von Moombas getestet und habe festgestellt, wenn man in der DB weitere Einträge hinzufügt, gibt es einen Fehler mit der Array Dimension. :( Da ist scheinbar noch ein für das Array definierter Wert zu klein.

    Mit dem Bereitgestellten von AspirinJunkie gibt es auf den ersten Blick kein Problem.

    Hier ist meine Frage, wie kann ich den gelb markierten Abstand um das markierte vergrößern?


  • Zeile 43 ($iGUIHeight) und Zeile 60 ($iButtonY) bspw. + 50 ergänzen, fertig.
    Aber du willst den Platz sicherlich für irgendwas nutzen, richtig?

    Viele Grüße
    Sven

  • gmmg Yepp, in Zeile 23 (bei meinem letzten Script) bitte ersetzen: Global $ButtonRows = Ceiling((Ubound($DBTESTARRAY) -1)/ $ButtonCols) .

    Wegen deiner Frage zu dem von AspirinJunkie: Gar nicht, zumindest nicht ohne gleichzeitig die Abstände aller Buttons zueinander zu ändern, da er das hier komplett auf Gleichmäßigkeit gelegt hat.

    Meine Aussage war falsch, Siehe Antwort von SolveSmart ;)

    Bei meinem Code kannst du bei folgendem Code:

    AutoIt
    Local Const $aCols = [2, 30, 140]
    Local Const $aRows = [2, 30,  40]

    Einfach die 30 durch was anderes ersetzen.

    Einmal editiert, zuletzt von Moombas (29. April 2024 um 15:59)

  • Wegen deiner Frage zu dem von AspirinJunkie: Garnicht, zumindest nicht ohne gleichzeitig die Abstände aller Buttons zueinander zu ändern.

    Genau, siehe Antwort #26.

  • Genau, siehe Antwort #26.

    Stimmt Zeile 60 würde sich hier anbieten, diesen um einen $Offset zu erweitern:

    AutoIt
    ;Zeile 44-45:
    Global Const $XOffset = 30
    Global Const $YOffset = 30
    
    ;Zeile 59-60:
    	$iButtonX = $iButtonXStep + $iPosX * ($iButtonWidth  + $iButtonXStep) + ($XOffset - $iButtonXStep) ; Falls man die 15 die schon gesetzt sin mit beachten will, sonst
    	$iButtonY = $iButtonYStep + $iPosY * ($iButtonHeight + $iButtonYStep) + ($YOffset - $iButtonYStep) ; das - des Buttonstep weg lassen
  • Wow bin stolz auf mich, dass mein Code offensichtlich autoplausibel ist, dass auch andere ihn sofort anpassen können.

    Ich hab das ganze jetzt mal so umgesetzt, dass man direkt den Rand frei selbst definieren kann:

  • Wow bin stolz auf mich, dass mein Code offensichtlich autoplausibel ist, dass auch andere ihn sofort anpassen können.

    😄 👌


    Zum Code:
    Wie immer tadellos, sogar mit deutschen Kommentaren. Mal sehen ob ich mir dies irgendwann mal als Beispiel nehmen kann 😅 .
    Kleine Ausnahme: $eID wird nicht verwendet.

    Viele Grüße
    Sven

  • Guten Morgen zusammen,

    ich möchte gern eine zweite GUI einbinden. Das klappt auch soweit.

    Nun zum Problem, wie bekomme ich das hin das ich die zweite GUI wieder schließen kann bzw. die Elemente der GUI reagieren.

    Danke

    Gruß Marcel

    Einmal editiert, zuletzt von gmmg (30. April 2024 um 10:50)

  • Naja da sind ja beide GUI-Konzepte vermischt. Die äußere nutzt den OnEvent-Modus und die innere den Message-Loop-Modus.
    Jetzt kannst du eine von beiden in die jeweils andere Form überführen (bei Message-Loop die Funktion GuiSwitch nicht vergessen).
    Oder du schaltest den Modus jeweils um.
    Beispiel wie du deine Funktion _secGUI anpassen könntest:

  • Kannst du das nicht auch ohne Switch machen?
    Das müsste ohne die Art und Weise zu ändern doch so gehen (Achtung wirklich kein schöner Code, nur zur Veranschaulichung):

    Sprich, du könntest immer im onevent mode bleiben.

  • Moombas Danke für die Antwort. Schau ich mir auch an.

    Will aber vorher noch das Auslesen der Daten aus der DB für die zweite GUI einbauen.

    Allen schon mal einen schönen Feiertag :)

    Gruß Marcel

  • Hallo Zusammen,

    wie kann ich es am Besten lösen, dass wenn ich String 1 oder String 2 für eine Combobox in der Funktion benötige?

    Mein Gedanke war jetzt in der DB ein Feld hinzuzufügen und dann mit einen numerischen Wert zu füllen, den ich dann der Funktion übergebe und in einer IF Abfrage nutzen kann.

    Gruß Marcel

  • Ich frage jetzt in der If Schleife den Button Name ab. Das sollte mir für den Zweck ausreichen.


    Einmal editiert, zuletzt von gmmg (3. Mai 2024 um 12:49)

  • Moombas

    $sName wird in der search Funktion im Script Post #33 ersichtlich gefüllt.

    Global $sName = GUICtrlRead(@GUI_CtrlId)

    Die Zeile $String = $String, ist im Script auskommentiert. Da hatte ich verschiedenes getestet.

    Hab es oben mal angepasst.