Abfragen ob die Maus auf ein Gui-Element geklickt hat was zur Laufzeit erst erstellt worden ist...

  • Hallo zusammen, ich habe noch nicht viel mit AutoIT Programmiert aber bin begeistert davon was man alles damit machen kann.

    Nun wollte ich ein sehr umfassendes Projekt starten, einen Form-Designer für AutoIT, wobei das nur ein Modul vom ganzen ist was ich vorhabe.

    Meine Frage ist nun wie folgt.

    Wenn man eine Schaltfläche im Form-Designer erstellt, kann man diese ja später noch in Position, Größe und Co ändern.

    Mein Ziel ist es das man mit der Linken Maustaste auf diese erstellte Schaltfläche drückt und mit gehaltener Maustaste dann die Schaltfläche verschieben kann.

    Wenn man an die Ränder der Schaltfläche oder des GUI-Objektes geht, soll sich der Mauszeiger in den Doppelpfeil ändern, halt als Kennzeichnung das man nun die Größe ändern kann und das dann auch wieder mit gedrückt gehaltener Maustaste.

    Also das Erstellen eines GUI-Elements im laufenden Script ist ja nicht das Problem.

    GUICtrlCreate......

    Aber wie frage ich dass dann halt ab, um dann die oben genannten Aktionen auszuführen, neu Positionieren oder Größe ändern.

    Hab da gerade irgendwie kein Plan, den Windows sendet ja für das Gui ein entsprechendes Klick Ereignis, aber es hat ja keine Funktion und im Script liegt ja auch für jedes erstellte Gui auch keine Funktion vor, außer für die des Form-Designers selber.

    So hoffe dass ich mich recht verständlich geäußert habe und man mir helfen kann

  • liegt das Problem jetzt darin, dass du nicht weißt wie man auf einen Button(z.B.) der neu erstellt wurde eine funktion zuordnet oder das dass mausdesign sich ändert wenn man an die ränder des Controls fährt? Oder meinst du beides? :thumbup:

    mfg YellowWeedSeed

    §1 Ich kann nicht für meine scripts inhaftiert werden, auch wenn bereits 3 Menschen erblindeten an den Folgen der Korrekturlesung.  8o

  • So ?

    Spoiler anzeigen
    [autoit]


    #include <ButtonConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    $GUI = GUICreate("GUI", 263, 47, 192, 124)
    $Button = GUICtrlCreateButton("Start", 8, 8, 75, 25)
    GUISetState(@SW_SHOW)
    $n = 0

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

    While 1
    $nMsg = GUIGetMsg()
    If $n = 1 and $NMsg = $Button2 Then
    Exit
    EndIf
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    Case $Button
    $Button2 = GUICtrlCreateButton("Beenden", 160, 8, 75, 25)
    $n = 1
    EndSwitch
    WEnd

    [/autoit]
  • Danke für das Script Julien

    Also ich möchte ja einen GUI-Designer schreiben, daher werden viele GUI-Elemente zur Laufzeit erstellt, alle diese Elemente sollte quasi nur 3 Funktionen haben.

    1. Wenn man es anklickt soll sich quasi das Einstellungs-Fenster für das angeklickte GUI-Element öffnen.
    2. Hält man die linke Maustaste gedrückt, soll eine Verschiebung des GUI-Elements erfolgen.
    3. kommt man an die Ränder des GUI-Elements, soll sich der Mauszeiger entsprechend verändern, so wie man es gewohnt ist wenn man Windows-Fenster in der größe ändert.

    Nun stellt sich die Frage, wie frage ich das halt im Script ab um halt entsprechend zu reagieren.

    Sehe leider irgendwie vor lauter Funktionen die Funktion nicht