input durch klick leeren

  • hi,

    ich hab mal eine frage ist es möglich einen input durch einen klick daruf zu leeren? ;)

    also z.b. wenn ich einen input habe und "Dein Suchbegriff" drin steht soll der text weg gehen damit man dne neuen rein schreibe kann.

  • Oder ein bisschen um das Problem herumbauen.
    Wenn du die Inputbox erstellt hast könntest du via

    [autoit]


    Send("{SHIFTDOWN}{END}{SHIFTUP}")

    [/autoit]


    alles selektieren was in der Inputbox steht.

  • @Wesloth: auch ne gute idee^^ thx

    GtaSpider : danke für dne link ;)

    BugFix : daran hatte ich auch gedacht es is aba an der durchführung gescheitert^^ trotzdme thx ;)

    EDIT: hab jetz grad mal wesloth variante getestet und festgestellt das nix passiert weiß nich wodran das liegt.

    Spoiler anzeigen
    [autoit]

    guictrlcreateinput("Dein Suchbegriff",5,5,60,24)
    send("{shiftdown}{end}{shiftup}")

    [/autoit]

    dann hatte dann hatte ich es auch noch mit controlsettext versucht aba da is auch nix bei raus gekommen :( leider

    Einmal editiert, zuletzt von .::Mignon::. (28. Oktober 2007 um 20:25)

  • Doch es funktioniert. Aber es ist ganz wichtig das die Inputbox auch für den normalen User zu sehen ist.
    Hier ein Bsp:

    Spoiler anzeigen
    [autoit]

    #include <GuiConstants.au3>

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

    GUICreate("Für Mignon",300,100)
    GUICtrlCreateInput("Nerviger Text",6,6,200,20)
    GUISetState(@SW_SHOW)
    send("{shiftdown}{end}{shiftup}")

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $Gui_Event_Close
    Exit
    EndSelect
    Sleep(10)
    WEnd

    [/autoit]


    Würde das "send("{shiftdown}{end}{shiftup}")" for "GuiSetState(@SW_SHOW)" stehen würde wirklich nichts markiert werden.

    • Offizieller Beitrag

    Hier mal eine 'saubere' Lösung:

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    Opt("MouseCoordMode", 0)
    Opt("GUIOnEventMode", 1)
    Dim $Input_X = 80, $Input_Width = 120
    Dim $Input_Y = 50, $Input_Height = 21

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

    #Region ### START Koda GUI section ### Form=
    $Form1 = GUICreate("Form1", 316, 147, 193, 115)
    GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
    GUISetOnEvent($GUI_EVENT_PRIMARYDOWN, '_LeftMouse')
    $Input1 = GUICtrlCreateInput("Input1", $Input_X, $Input_Y, $Input_Width, $Input_Height)
    GUISetState(@SW_SHOW)
    #EndRegion ### END Koda GUI section ###

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

    While 1
    Sleep(100)
    WEnd

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

    Func Form1Close()
    Exit
    EndFunc

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

    Func _LeftMouse()
    Local $pos = MouseGetPos()
    If ( $pos[0] > $Input_X And $pos[0] < $Input_X+$Input_Width ) And _
    ( $pos[1] > $Input_Y+20 And $pos[1] < $Input_Y+$Input_Height+20) Then _
    GUICtrlSetData($Input1, '')
    EndFunc

    [/autoit]
  • jo hattest recht thx
    hatte das send von guisetstate^^;) jetz funzt es.

    EDIT: thx bugfix klappt alles perfekt^^ ;)

    Einmal editiert, zuletzt von .::Mignon::. (28. Oktober 2007 um 21:19)