Button caption bei Click ändern

  • Hallo liebes Forum,

    ich habe hier schon gesucht bin aber leider noch nicht fündig geworden. Ich bin absoluter Anfänger in AutoIt und bitte diese leichte Frage zu entschuldigen. Wie kann ich, wenn ich auf den Button klicke die Beschriftung, sprich die caption Eigenschaft ändern?
    Nehmen wir als Beispiel einen ganz einfachen Dialog mit einem Button. Auf diesem Button steht "AN", wenn ich klicke soll "AUS" erscheinen und andersrum.


    Ich hoffe es kann mir jemand helfen. Vielen Dank und viele Grüße,
    TOYY1

    • Offizieller Beitrag

    Beispiel:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstantsEx.au3>
    $hGui = GUICreate('Test', 200, 80)
    $hButton = GUICtrlCreateButton('An', 10, 10, 100, 25)
    GUISetState()
    While True
    Switch GUIGetMsg()
    Case $GUI_EVENT_CLOSE
    Exit
    Case $hButton
    Switch GUICtrlRead($hButton)
    Case 'An'
    GUICtrlSetData($hButton, 'Aus')
    ; hier können weitere Befehle folgen
    Case 'Aus'
    GUICtrlSetData($hButton, 'An')
    ; hier können weitere Befehle folgen
    EndSwitch
    EndSwitch
    WEnd

    [/autoit]
  • Hallo Oscar,

    vielen Dank das ging ja super flott. Ich kann in der Hilfe nicht suchen was mein Befehl machen soll. In diesem Zusammenhang würde ich dich gern fragen, ob du einen Befehl kennst mit dem ich eine Zeichenkette auslesen bspw. von links (ähnlich der Funktion in Excel LINKS(Text;Anzahl der Zeichen)?

    Ich habe einen String der bspw so aussieht: 51725,9874-02,1,4,
    Und ich möchte immer den Inhalt der zwischen den beiden ersten Kommas steht, sprich 9874-02. Die erste Zahl in diesem Fall 51725 kann dabei variabel sein. Gibt es in AutoIt einen komfartable Funktion zur Lösung meines Problem?

    Vielen Dank und viele Grüße
    TOYY1

  • Um einen Teilstring auszuschneiden gibt es _StringBetween oder StringRegExp oder StringInStr + StringMid ;)
    Dein LINKS wäre StringLeft.

  • Hallo und vielen Dank Progandy,

    den Befehl stringbetween kann ich leider nicht finden?

    Vielen Dank und viele Grüße
    TOYY1

  • Okay ich habe es gefunden. Gibt es für diese UDS' s auch irgendwo ne Hilfe...also was es da so alles gibt?

  • Für dein Problem würde aber auch stringsplit() ausreichen.
    Was die Hilfe angeht verstehe ich deine Frage nicht. Der Scite Editor liefert doch eine vollständige Hilfe inklusive aller enthaltenen UDF (User defined functions) mit, welche recht sinnvoll nach Aufgabenkategorie einsortiert sind:

    [Blockierte Grafik: http://i.imgur.com/QCxnx.png]

    Das ganze gibt es auch auf deutsch, siehe Downloadbereich links von diesem Thread: http://translation.autoit.de/autoitinfo/hil…nd-27_05_11.zip

    Einmal editiert, zuletzt von misterspeed (8. August 2011 um 15:44)

  • Hallo Misterspeed,

    und vielen Dank diese Funktion ist genau das was ich suche. Wie gesagt, bin ich Anfänger und in der deutschen Hilfe sind quasi zwei Einzelhilfedateien...eine für AutoIt und die andere für UDF's und nach dem Tip von progandy habe ich unter der Autoithilfe nach _Stringbetween gesucht.

    Auch wenn ich mit dem Befehl Splitstring mehr als zufrieden bin..
    IGibt es eine Funktion...Das man bspw. sagt suche mir nach dem ersten Komma und suche mir nach dem zweiten Komma und gib den String dazwischen aus? Ich denke da zum Beispiel an einem Text. Ich brauche ja nicht dieses riesen Array was entstehen würde, sondern suche lediglich eine ganz bestimmte Zeichenfolge.

    Vielen Dank und viele Grüße,
    TOYY1

  • Die Hilfe besteht aus 3 Teilen: Standard (AutoIt3.chm) , UDF (UDFs.chm) und eine datei, die beide zusammenfasst. (AutoIt.chm) AM besten einfach AutoIt3Help.exe starten.

    Zitat

    IGibt es eine Funktion...Das man bspw. sagt suche mir nach dem ersten Komma und suche mir nach dem zweiten Komma und gib den String dazwischen aus? Ich denke da zum Beispiel an einem Text. Ich brauche ja nicht dieses riesen Array was entstehen würde, sondern suche lediglich eine ganz bestimmte Zeichenfolge.

    Genau das macht _StringBetween. Noch mächtiger ist StringRegExp.