Koda, Quelltext auf die Button legen

  • Hallo,


    habe mir gestern ein paar Skripte mit AutoIt geschrieben. Nun wollte ich mit dem Koda Form Designer noch eine schöne GUI bauen, aber ich finde leider nicht herraus wie ich meinen Code, auf die Button gelegt bekomme. Kenne mich leider nur mit dem Microsoft Visual Studio aus, da konnte man, auf den mit Quelltext zuversehenden Button doppelt klicken und dann kam man an die entsprechende Stelle. Ist bestimmt eine doofe frage, aber ich komme einfach nicht drauf.


    Viele Grüße

    Einmal editiert, zuletzt von Schnednet (15. Juli 2009 um 19:45)

  • Evtl. hilft das hier:

    Spoiler anzeigen
    [autoit]


    #include <GUIConstants.au3>

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

    ;GUICreate ( "title" [, width [, height [, left [, top [, style [, exStyle [, parent]]]]]]] )
    GUICreate("Testfenster", 250, 150, 200, 200)
    $beenden_button = GUICtrlCreateButton("Beenden", 190, 120)
    GUISetState(@SW_SHOW)

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

    ; GUI-Schleife
    While 1
    $msg = GUIGetMsg()

    Select
    Case $msg = $GUI_EVENT_CLOSE
    ExitLoop
    Case $msg = $beenden_button
    MsgBox(0, "Button", "Beenden angeklickt!" & @CRLF & "Wird gemacht...", 1.5)
    Exit
    EndSelect
    WEnd

    [/autoit]

    Lieben Gruß,
    Alina

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

    Geheime Information: ;)
    OuBVU5ebLhHu5QvlnAyQB4A7SzBrvWulwL7RLl2BdH5tI6sIYspeMKeXMSXl

  • Du musst einfach den Code generieren lassen (rechts neben dem speicher symbol) bzw. F9,
    oder einfach F10
    so wie Alina es beschrieben hat kannste den Code dann an die spezielle Stelle einfügen.

    Wer immer nur das tut, was er bereits kann - wird auch immer nur das bleiben, was er bereits ist!

  • Hallo,

    Zitat

    Kenne mich leider nur mit dem Microsoft Visual Studio aus

    was heisst "leider", bis Koda nur in die Nähe des Studios kommt vergehen noch einige Jährchen^^
    In AutoIt ist Handarbeit gefragt, d.h. du musst deine Funktionen per Hand den einzelnen Events zuordnen.
    Im Grunde machst du es schon richtig, erst den Code basteln und dann die Gui drumherumstricken.
    Beim Eventhandling hast du mehrere Möglichkeiten, entweder kannst du wie in Alinas Beispiel in einerEndlosschleife die Ereignisse abfragen und deinen Funktionen zuordnen.
    Oder du nutzt den GUIOnEventMode. Damit weist du Ereignissen oder Events die DEIN Control betreffen direkt einer Funktion zu. Du musst dich im Programmablauf also nicht mehr darum kümmern, denn immer wenn dein Control ein Event auslöst, wird deine Funktion aufgerufen.

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>

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

    Opt("GUIOnEventMode", 1) ; Change to OnEvent mode
    $mainwindow = GUICreate("Hello World", 200, 100)
    GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked") ;wenn irgendwann der Event "klick auf gui-schliessen-button" auftritt, dann funktion closeclicked aufrufen
    GUICtrlCreateLabel("Hello world! How are you?", 30, 10)
    $okbutton = GUICtrlCreateButton("OK", 70, 50, 60) ;$okbutton hat die id vom control
    GUICtrlSetOnEvent($okbutton, "OKButton") ;wenn irgendwann einmal dieses control aufgerufen wird. dann funktion OKButton aufrufen
    GUISetState(@SW_SHOW) ;gui zeigen

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

    While 1 ;endlosschleife, macht nichts ausser auf events warten
    Sleep(1000) ; gibt Prozessor für andere anwendungen frei
    WEnd

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

    Func OKButton() ;wird immer aufgerufen, wenn button geklickt
    ;Note: at this point @GUI_CTRLID would equal $okbutton,
    ;and @GUI_WINHANDLE would equal $mainwindow
    MsgBox(0, "GUI Event", "You pressed OK!")
    EndFunc

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

    Func CLOSEClicked()
    ;Note: at this point @GUI_CTRLID would equal $GUI_EVENT_CLOSE,
    ;and @GUI_WINHANDLE would equal $mainwindow
    MsgBox(0, "GUI Event", "You clicked CLOSE! Exiting...")
    Exit
    EndFunc

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

    Für "kleine" GUI´s ist die Variante mit GuiGetMsg() schneller "gehackt", für GUI´s mit vielen Events halte ich den OnEventMode für übersichtlicher.

    ciao
    Andy