Frage

  • Moin Moin,
    Ich würde gerne folgendes Programmieren nur ich weiß nicht wie:
    In meiner GUI sollte es verschiedene Bilder geben , welche man per Maus nach rechts und links verschieben kann.( Nicht nach oben oder unten )
    Das GUI sollte sich dabei aber nicht bewegen legendlich die Bilder.

    Ich hoffe jemand findet einen Rat, vielen Dank.

    Hochachtungsvoll:
    Captcha aka. Marcel

  • Ich würde ungefähr so vorgehen: Du wartest bis auf eines der Bilder geklickt wird (Also bis ein Mouse-Down stattfindet), dann gehst du in eine spezielle Funktion, die das Bild ständig neu Positioniert und zwar anhand der aktuellen Mauskoordinaten. Wenn nun die Taste der Maus losgelassen wird (Also Mouse-Up) verläst du die Schleife die das Bild ständig neu positioniert und errechnest aus den aktuellen Koordinaten, ob es weit genug nach links/rechts bewegt wurde um es zu verschieben. Wenn Ja dann bewegst du das Bild das gerade auf der Position ist (eigentlich alle die zwischen der alten Postion des verschobenen Bildes und der neuen liegen) eins nach recht/links.und schiebst das Verschobene auf seine neue Position. Wenn Nein verschiebst du das Bild einfach wieder an seine alte Position...

    LG
    Christoph :)

  • Hier hast du mal ein Beispiel:

    [autoit]

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

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

    $pfad = ;~ Pfad zu dem Bild

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

    $GUI = GUICreate('', 800, 600)
    $Pic = GUICtrlCreatePic($pfad, 350, 250, 100, 100)
    GUISetOnEvent(-3, '_Exit', $GUI)
    GUICtrlSetOnEvent($Pic, '_MovePic')
    GUISetState(@SW_SHOW, $GUI)

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

    While Sleep(1000)
    WEnd

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

    Func _Exit()
    Exit
    EndFunc

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

    Func _MovePic()
    $cursor = GUIGetCursorInfo($GUI)
    While $cursor[2]
    $cursor = GUIGetCursorInfo($GUI)
    ControlMove($GUI, '', $cursor[4], $cursor[0], Default, 100, 100)
    WEnd
    EndFunc

    [/autoit]

    Musst du aber noch anpassen.

    Einmal editiert, zuletzt von Yjuq (10. November 2012 um 13:46)