Fenster und Button bewegen lassen

  • Hi,
    Ich breuchte wiedermal ein wenig Hilfe und zwar wie schaffe ich es das man z.B ein Bttutton auf eine Form setzt und wenn man den Compiled hat den Button Bewegen kann das heist in der Größe und Position?

  • ControlGetPos() und ControlSetPos() sind die entsprechenden funktionen.
    Hier ein kleines Beispiel, ich hoffe du blickst durch, habe mich bemüht, es einfach zu halten:

    Spoiler anzeigen
    [autoit]

    HotKeySet("{w}", "_HotKeySet") ; W = hoch
    HotKeySet("{a}", "_HotKeySet") ; A = links
    HotKeySet("{s}", "_HotKeySet") ; S = runter
    HotKeySet("{d}", "_HotKeySet") ; D = rechts

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

    HotKeySet("{q}", "_HotKeySet") ; Q = kleiner
    HotKeySet("{e}", "_HotKeySet") ; E = größer

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

    Local $hGUI, $cButton
    $hGUI = GUICreate("Example", 280, 100)
    $cButton = GUICtrlCreateButton("W,A,S,D", 20, 20, 100, 20)

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

    GUISetState()

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

    While Sleep(10) * (GUIGetMsg() <> -3)
    WEnd

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

    Func _HotKeySet()
    Local $hButton, $aOldPosition
    $hButton = GUICtrlGetHandle($cButton)
    $aOldPosition = ControlGetPos($hGUI, "", $hButton) ; Alte position
    $aNewPosition = $aOldPosition ; Array kopieren

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

    Switch @HotKeyPressed
    Case "{w}"
    $aNewPosition[1] -= 5 ; Y Koordinate Verringern (hoch)
    Case "{a}"
    $aNewPosition[0] -= 5 ; X Koordinate verringern (links)
    Case "{s}"
    $aNewPosition[1] += 5 ; Y Koord. vergrößern (runter)
    Case "{d}"
    $aNewPosition[0] += 5 ; X Koordinate vergrößern (rechts)
    Case "{q}"
    $aNewPosition[2] -= 5 ; Breite verkleinern
    $aNewPosition[3] -= 5 ; Höhe verkleinern
    Case "{e}"
    $aNewPosition[2] += 5 ; Breite vergrößern
    $aNewPosition[3] += 5 ; Höhe Vergrößern
    EndSwitch

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

    ControlMove($hGUI, "", $hButton, $aNewPosition[0], $aNewPosition[1], $aNewPosition[2], $aNewPosition[3])

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

    EndFunc ;==>_HotKeySet

    [/autoit]


    Für Fenster gilt das gleiche, nur mit den Funktionen WinGetPos und WinMove

  • Schönes Beispiel 8o
    Ich such sowas wo der Button nur zwischen 2 Positionen wechselt und per Mausberührung über ein Halbkreis zu der jeweiligen anderen Positionen "fährt".