Arrays lernen

  • Hallo zusammen.

    Ich würde nun gerne, da ich schon so die Grundsachen kann, lernen mit Arrays zu arbeiten.

    Das einzige was ich bisher über arrays weis, das man damit scripte verkürzen kann und sonst noch ganz tolle sachen damit anstellen kann ^^

    Es ich hab mir schonmald as Tutorial über arrays angeguckt, aber komme nicht so wirklich damit klar.

    Meine Frage nun:
    Wäre einer von den erfahrenen so lieb, mir ein oder zwei kurze Beispiele zu machen, wie man arrays richtig benutzt und wie man sie wann einsetzt :?:

    Das wäre echt super, wenn das jmd machen würde...

    MfG

    • Offizieller Beitrag

    Hier ist mal ein Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    Opt('GUIOnEventMode', 1)

    [/autoit] [autoit][/autoit] [autoit]

    $hGui = GUICreate('', 320, 480)
    GUISetOnEvent($GUI_EVENT_CLOSE, '_End') ; diese Funktion wird aufgerufen, wenn man auf das "X" oben rechts klickt oder [ESC] drückt

    [/autoit] [autoit][/autoit] [autoit]

    Global $aButtons[20] ; Array deklarieren (Größe festlegen)
    For $i = 0 To 19 ; 20 Buttons erstellen
    $aButtons[$i] = GUICtrlCreateButton('Button' & $i+1, 10+Mod($i,5)*60, 10+Int($i/5)*30, 50, 20) ; hier wird dem jeweiligen Array-Element eine Button-ID zugewiesen
    GUICtrlSetOnEvent(-1, '_ButtonKlick') ; diese Funktion wird aufgerufen, wenn man den Button anklickt
    Next
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    While True
    Sleep(50)
    WEnd

    [/autoit] [autoit][/autoit] [autoit]

    Func _End()
    Exit
    EndFunc

    [/autoit] [autoit][/autoit] [autoit]

    Func _ButtonKlick()
    Local $ButtonID = @GUI_CtrlId - $aButtons[0] ; ermitteln welcher Button angeklickt wurde
    MsgBox(0, 'Test', 'Button #' & $ButtonID + 1 & ' wurde angeklickt' & @CRLF & 'und wird jetzt versteckt.') ; anzeigen
    GUICtrlSetState($aButtons[$ButtonID], $GUI_HIDE) ; und den jeweiligen Button verstecken
    EndFunc

    [/autoit]

    Gleich auch mit dem OnEvent-Mode, weil der in so einem Fall einfacher zu verwenden ist.

  • Unser BugFix hat sich mal die Mühe gemacht darüber ein Tutorial zu schreiben:
    http://www.bug-fix.info/array_tut.htm

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • @ Oscar:
    Danke für das Beispiel. Muss jetzt erstmal gucken, was da alles passiert und wieso :thumbup:

    @ Schnuffel:
    Ich sagte doch bereits, das mir das Tutorial nich viel geholfen hat.

    trotzdem danke ^^

    • Offizieller Beitrag

    Ich habe noch etwas zur Erklärung der Positionsberechnung der Buttons vergessen.
    Hier verwende ich gerne mathematische Berechnungen, statt die Werte Variablen dazu zu addieren:

    [autoit]


    ; 10+Mod($i,5)*60
    ; 10 ist der horizontale Anfangswert
    ; der Rest dient zur Festlegung der horizontalen Position des Buttons
    ; Mod($i,5) gibt den Rest der Division von $i/5 zurück, also immer von 0 bis 4 (ergibt 5 Buttons pro Reihe)
    ; wird dann mit 60 multipliziert, um den horizontalen Abstand vom vorherigen Button zu bestimmen
    ;
    ; 10+Int($i/5)*30
    ; 10 ist der vertikale Anfangswert
    ; der Rest dient zur Festlegung der vertikalen Position des Buttons
    ; Int($i/5) gibt den ganzzahligen Teil der Division von $i/5 zurück, hier 0 bis 3 (ergibt vier Reihen)
    ; wird dann mit 30 multipliziert, um den vertikalen Abstand vom vorherigen Button zu bestimmen

    [/autoit]
  • Ich brauch eben fürn Anfang was einfaches und übersichtliches. Ein koplettes Script, also z.B. so ein Beispiel wie von Oscar, is gut für mich zum lernen.

    Wenn ich dann estmal die Funktion und so verstanden hab. Und schon selbst bissl was mit machen kann. dann könnte dein Tut bestimmt mal nützlich für mich sein ^^