Frage zur Gui bzw GUICtrlSetState

  • Danke für dein Beispiel Kanashius.
    Aber das ist nicht ganz das was ich suche oder brauche.
    Ich möchte das der Übersicht halber auf der Gui wie ich sie gebaut habe als RadioButton haben.
    Also es soll so aussehen:
    1.) Gruppe 1 -> Auswahl der Kategorie. Bei Auswahl anzeige der Gruppe 2 gefüllt mit Werten der Auswahl aus Gruppe 1
    2.) Gruppe 2 wird Angezeigt -> Auswahl der Art. Bei Auswahl wird Gruppe 3 angezeigt gefüllt mit den Werten der Auswahl aus Gruppe 1
    usw usw.
    Insgesamt sind es 8 Gruppen die Dynamisch aufgebaut werden müssen.
    Derzeit 8 falls mir noch etwas auffallen sollte können es durchaus mehr werden.
    Darum will ich das ja Dynamisch machen, es geht hierbei um Merkmale der Produkte usw.
    Kann durchaus auch sein das es weniger werden.
    Platz habe ich auf der Gui auf jeden Fall bereit gestellt.
    Ja ich weis mit Comboboxen bräuchte ich nicht so viel Platz.
    Aber darunter würde die Übersicht die ich brauche leiden :(

    Ausserdem ist es denke ich egal ob Combo oder Radio was die Findung der Eindeutigkeit für mich betrifft.
    Ich sagte ja ich bin Begriffsstutzig.

    Edit: Stimmt autoiter, ich bin leider nicht wirklich Programmierer, sondern Admin und techniker :(
    Dein Hinweis habe ich leider erst nach dem Posten hier gelesen.
    Ich werde mir die Seite mal genauer ansehen und das ganze dann doch noch einmal überarbeiten.
    Evtl. bin ich einfach was die Gui betrifft mit scheuklappen gestraft.
    Ich sollte den Vorschlag von Kanashius vielleicht doch in erwägung ziehen.
    Da ich ja Comboboxen erstellen kann und diese nachträglich mit Werten befüllen kann.

    Danke euch allen hier für eure Geduld und ich melde mich wieder wenn ich was Ordentliches habe.
    Jetzt schreibe ich mir doch erstmal einen Projektplan :(

    MfG

    Einmal editiert, zuletzt von Rigobert (11. März 2017 um 12:13) aus folgendem Grund: Begriffsstutzigkeit :)

  • War nicht böse gemeint @Rigobert. Ich bin auch kein Programmierer und kann das total nachvollziehen. :)

    Es ist einfach leichter für jemanden, der nur einen Teilausschnitt des Skripts sieht, wenn er weiß, dass du an der Stelle mit einem Array, da mit einem Integer arbeitest (arbeiten willst) usw. . Das kann dir auch selbst helfen, wenn du dir deine Skripte nach einigen Wochen noch einmal anschaust.
    Genauso ist es sehr sinnvoll, wenn du dir kurze Kommentare in deinen Quelltext schreibst (Was will ich mit dieser Funktion, Variable, Zeile). Das muss man natürlich nicht konsequent machen. Wenn du aber später mal etwas anpassen musst, wirst du bei größeren Skripten froh sein, schnell zu sehen, was du dir damals gedacht hast. (Beim Kommentieren wird man auch mal auf eigene Denkfehler aufmerksam).

    Grüße autoiter

  • Oh, ich habe das nicht als Böse Kritik aufgefasst, sondern als Konstruktive.
    Da du ja Recht hast damit^^

    Aber ich habe da dennoch eine Frage die du mir bestimmt einfach beantworten kannst

    Wenn ich einen Funktionsaufruf so mache : fuellungenarray(GUICtrlRead($Kissen), 'Fuellungen')
    Und bei der Funktion dann dies hier habe: GUICtrlSetData($setcontrol, $fuellungenArray)
    Wie bekomme ich es hin das $setcontrol das Control ist das ich meine? :(
    in dem Fall ja das $Fuellungen, den mit $setcontrol das ja den Wert Fuellungen hat, komme ich ja nicht weiter, es muss ja für die Controlid $Fuellungen lauten.
    In einem Anderen Fall dann eben: fuellungenarray(GUICtrlRead($Fuellungen), 'Farben')
    Das ist was ich bei AutoIt nunmal noch gar nicht verstehe :(
    So das GUICtrlSetData auch wirklich das auffüllt was es soll :(

    Danke dir oder dem Antwortenden eben ^^

    MfG

  • Ich weiß ja nicht wo $setcontrol her kommt und was es für einen Wert hat ^^

    Hier noch mal anhand deines Codes aus Beitrag 16.


    Hier erstellst du ja in Schleife deine Controls. Jedes Control wird gespeichert in $arFuellung. Das heißt, wenn etwas in Control 3 ($arFuellung[2]) ausgewählt wurde und du nun Control 4 füllen möchtest, dann gibst du $arFuellung[3] an. (Immer eines weniger, weil du ja in der Schleife bei 0 angefangen hast und das erste Control ja das Element Null im Array $arFuellung ist). Also:

    AutoIt
    GUICtrlSetData($arFuellung[3], $fuellungenArray)

    Grüße autoiter

  • Achso nein, da habe ich schon wieder vergessen von vorne zu beginnen :)
    Also versuche ich es nochmal :)
    $setcontrol wird hier gesetzt fuellungenarray(GUICtrlRead($Kissen), 'Fuellungen') ; 'Fuellungen' ist die Var $setcontrol in der Funktion fuellungenarray
    Also Func fuellungenarray($auswahl, $setcontrol)
    Hier bekommt die Var $setcontrol den wert 'Fuellungen'

    Da ich auf Kanashias vorschlag eingehe versuche ich es nun mit einem ComboControl diese heist eben $Fuellungen.
    Zur Erstellung lasse ich diese einfach leer.
    Eine weitere heist $Farben auch diese ist Leer.

    Wähle ich nun bei dem ersten ComboControl einen Wert aus gebe ich das einfach an die nächste Combo weiter.

    Ich sage mal so ich bin in einer Findungsphase^^
    In dem Case Switch für die Combos habe ich dann dieses hier:


    AutoIt
    Case $Kissen
    			fuellungenarray(GUICtrlRead($Kissen), 'Fuellungen')
                    Case $Fuellungen
    			fuellungenarray(GUICtrlRead($Fuellungen), 'Farben')

    usw.

    Hoffe das war nun verständlicher^^

    Danke

  • Du, ich kann das nicht lesen.

    In der Funktion fuellungenarray füllst du eine Stringvariable, die $fuellungenArray heißt? Das verstehst du in zwei Wochen doch selbst nicht mehr! ^^

    Für den Befehl GUICtrlSetData brauchst du die controlID.

    AutoIt
    GUICtrlSetData ( controlID, data [, default] )

    Die controlID ist hier nach deinem Code folgende:

    AutoIt
    $arFuellung[$i] = GUICtrlCreateCombo($wahl[$i][1], $controlstart[1][1], $controlstart[2][1] + 20*$i, $controlstart[3][1], $controlstart[4][1]) ; aus der Schleife, wo du die Controls erstellst. Ich habe nur Radio gegen Combo getauscht.

    $arFuellung[Das Element, wo das Control gespeichert wurde, in das du Fuellungen haben möchtest]


    Dein Vorhaben wird dich noch ziemlich beschäftigen. Du solltest dir momentan an jedem Punkt deiner Arbeit die Hilfe zu den Befehlen und die Beispiele genau anschauen (wirst dennoch ein paar graue Haare bekommen. ;) ).

    Grüße autoiter