Input vergrößern

  • Hallo,

    folgendes Problem:
    Ich habe eine Gui mit einem Inputfeld.

    Alles hat eine bestimmte Größe.

    Ich möchte nun, daß wenn ich F1 drücke
    das Inputfeld auf dem ganzen Monitor in der Breite zur EIngabe
    vergrößert wird. Meine Gui sollte aber bleiben.
    Wird die Eingabe gemacht und dann Return gedruckt dann sollte das Grosse Inputfeld verschwinden
    und der Inhalt in das kleine Inputfeld übertragen werden.

    [autoit]


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 205, 74, 192, 124, BitOR($WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    ;$Form1 = GUICreate("Form1", 205, 74, 192, 124, BitOR($WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    $Input1 = GUICtrlCreateInput("", 40, 24, 121, 21)
    GUISetState(@SW_SHOW)

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

    HotKeySet("{F1}", "_gross")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit

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

    EndSwitch
    WEnd

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

    Func _gross()
    ;$Form1 = GUICreate("Form1", -1, 74, @DesktopWidth, 124)
    GUICtrlSetPos($Input1,-1,-1,@DesktopWidth,100)
    endfunc

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

    Ich weiß nicht recht wie man das am besten machen kann.
    Brauche ich da mehrere Inputfelder und Guis
    oder kann man das alles mit diesem einen Inputfeld machen?
    Daß sich nur das Inputfeld löst.....?


    :( Grüße
    Ilse

    Einmal editiert, zuletzt von Ilse (21. Mai 2012 um 17:08)

  • Deine GUI ist nur 205 breit. Wenn dann musst du das auf einem Child-Gui machen.

  • Source
    [autoit]


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 205, 74, 192, 124, BitOR($WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
    ;$Form1 = GUICreate("Form1", 205, 74, 192, 124, BitOR($WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    $Input1 = GUICtrlCreateInput("", 40, 24, 121, 21)
    GUISetState(@SW_SHOW)

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

    $LargeForm = GUICreate("", @DesktopWidth, @DesktopHeight, 0, 0, $WS_POPUP, $WS_EX_TOOLWINDOW)
    $LargeInput = GUICtrlCreateInput("", 0, 0, @DesktopWidth, @DesktopHeight)

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

    HotKeySet("{F1}", "_Gross")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _Gross()
    GUICtrlSetData($LargeInput, GUICtrlRead($Input1))
    GUISetState(@SW_SHOW, $LargeForm)
    HotKeySet("{F1}", "_Klein")
    EndFunc ;==>_Gross

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

    Func _Klein()
    GUICtrlSetData($Input1, GUICtrlRead($LargeInput))
    GUISetState(@SW_HIDE, $LargeForm)
    HotKeySet("{F1}", "_Gross")
    EndFunc ;==>_Klein

    [/autoit]

    Ist es so zufriedenstellend?^^

    lg chess

  • Hallo zusammen,

    mußte gestern leider wieder weg.
    @m-obi
    Child-Guis...muß ich mir nochmal ansehen

    chesstiger
    merci für das Script.
    Ich habe es etwas angepasst.
    Dazu noch eine Frage:
    Wie kann ich das Feld mit Return beenden?

    Ich trage den Text ins große Feld und drücke Return

    Beispiel:

    [autoit]


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 205, 74, 192, 124, BitOR($WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
    ;$Form1 = GUICreate("Form1", 205, 74, 192, 124, BitOR($WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    $Input1 = GUICtrlCreateInput("", 40, 24, 121, 21)
    GUISetState(@SW_SHOW)

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

    $LargeForm = GUICreate("", @DesktopWidth/2, @DesktopHeight/2, -1, -1, $WS_POPUP, $WS_EX_TOOLWINDOW)
    $LargeInput = GUICtrlCreateInput("", -1, -1, @DesktopWidth/2, @DesktopHeight/2)

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

    HotKeySet("{F1}", "_Gross")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _Gross()
    GUICtrlSetData($LargeInput, GUICtrlRead($Input1))
    GUICtrlSetFont(-1, 40, 400, 0, "@Arial Unicode MS")
    GUISetState(@SW_SHOW, $LargeForm)
    HotKeySet("{F1}", "_Klein")
    EndFunc ;==>_Gross

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

    Func _Klein()
    GUICtrlSetData($Input1, GUICtrlRead($LargeInput))
    GUISetState(@SW_HIDE, $LargeForm)
    HotKeySet("{F1}", "_Gross")
    EndFunc ;==>_Klein

    [/autoit]


    Grüße
    ;) Ilse

  • Ich sitz gerade in der Schule, kanns also nicht testen:

    Spoiler anzeigen
    [autoit]


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 205, 74, 192, 124, BitOR($WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
    ;$Form1 = GUICreate("Form1", 205, 74, 192, 124, BitOR($WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    $Input1 = GUICtrlCreateInput("", 40, 24, 121, 21)
    GUISetState(@SW_SHOW)

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

    $LargeForm = GUICreate("", @DesktopWidth/2, @DesktopHeight/2, -1, -1, $WS_POPUP, $WS_EX_TOOLWINDOW)
    $LargeInput = GUICtrlCreateInput("", -1, -1, @DesktopWidth/2, @DesktopHeight/2)

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

    HotKeySet("{F1}", "_Gross")

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    WEnd

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

    Func _Gross()
    GUICtrlSetData($LargeInput, GUICtrlRead($Input1))
    GUICtrlSetFont(-1, 40, 400, 0, "@Arial Unicode MS")
    GUISetState(@SW_SHOW, $LargeForm)
    HotKeySet("{ENTER}", "_Klein")
    EndFunc ;==>_Gross

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

    Func _Klein()
    GUICtrlSetData($Input1, GUICtrlRead($LargeInput))
    GUISetState(@SW_HIDE, $LargeForm)
    HotKeySet("{F1}", "_Gross")
    EndFunc ;==>_Klein

    [/autoit]

    lg chess

  • Hallo Chesstiger,

    leider klappt jetzt das Return beim 1. Input nicht mehr.
    Ich hatte für dieses Feld Case in der Schleife verwendet!

    Eine Frage noch:

    Wirklich perfekt wäre so:
    Sobald in das erste Feld was eingetragen wird
    öffnet sich das große Feld. Muß man das mit einem Timer lösen.

    Wie kann man das abfragen?
    Ich meine so:
    Das Feld besitzt den Focus. Es passiert noch nichts!
    Wird jetzt irgendeine Taste gedrückt, dann geht die Gui auf.

    Liebe Grüße
    ;) Ilse

    Einmal editiert, zuletzt von Ilse (21. Mai 2012 um 12:23)

  • Ja, das geht. Wenn ich gleich am PC bin, schreib ich dir was.

    Lg chess

    Edit:
    Hab was für dich, müsste eigentlich deinen Wünschen entsprechen^^

    Source
    [autoit]


    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>

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

    $Form1 = GUICreate("Form1", 205, 74, 192, 124, BitOR($WS_MINIMIZEBOX, $WS_SIZEBOX, $WS_THICKFRAME, $WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_BORDER, $WS_CLIPSIBLINGS))
    ;$Form1 = GUICreate("Form1", 205, 74, 192, 124, BitOR($WS_MINIMIZEBOX,$WS_SIZEBOX,$WS_THICKFRAME,$WS_SYSMENU,$WS_CAPTION,$WS_POPUP,$WS_POPUPWINDOW,$WS_GROUP,$WS_BORDER,$WS_CLIPSIBLINGS))
    $Input1 = GUICtrlCreateInput("", 40, 24, 121, 21)
    GUISetState(@SW_SHOW)

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

    $LargeForm = GUICreate("", @DesktopWidth / 2, @DesktopHeight / 2, -1, -1, $WS_POPUP, $WS_EX_TOOLWINDOW)
    $LargeInput = GUICtrlCreateInput("", -1, -1, @DesktopWidth / 2, @DesktopHeight / 2)

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

    HotKeySet("{F1}", "_Gross")
    $InputInhalt = ""

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

    While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
    Exit
    EndSwitch
    If GUICtrlRead($Input1) <> $InputInhalt Then _Gross()
    WEnd

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

    Func _Gross()
    GUICtrlSetData($LargeInput, GUICtrlRead($Input1))
    $InputInhalt = GUICtrlRead($LargeInput)
    GUICtrlSetFont(-1, 40, 400, 0, "@Arial Unicode MS")
    GUISetState(@SW_SHOW, $LargeForm)
    HotKeySet("{ENTER}", "_Klein")
    HotKeySet("{F1}")
    EndFunc ;==>_Gross

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

    Func _Klein()
    GUICtrlSetData($Input1, GUICtrlRead($LargeInput))
    $InputInhalt = GUICtrlRead($LargeInput)
    GUISetState(@SW_HIDE, $LargeForm)
    HotKeySet("{F1}", "_Gross")
    HotKeySet("{ENTER}")
    EndFunc ;==>_Klein

    [/autoit]

    lg chess^^

    • Offizieller Beitrag

    Ich hab dir mal eine Lösung gebastelt, positionieren und Größe kannst du ja noch anpassen.
    - Bei Schreibbeginn im Input öffnet sich das große Input
    - Bei ENTER wird das große Input geschlossen und der Inhalt in das kleine übernommen.

    Spoiler anzeigen
    [autoit]

    $hLargeInput = GUICreate('', @DesktopWidth-120, 20, -1, -1, BitOR($WS_POPUP,$WS_THICKFRAME))
    $inLarge = GUICtrlCreateInput("", -1, -1, @DesktopWidth-120, @DesktopHeight/2)
    $hLargeIn = GUICtrlGetHandle($inLarge)

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

    $hGUI = GUICreate('TEST')
    $input = GUICtrlCreateInput('', 40, 30, 60, 20)
    $hIn = GUICtrlGetHandle($input)
    GUISetState(@SW_SHOW, $hGUI)

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

    GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")

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

    While True
    Switch GUIGetMsg()
    Case -3
    Exit
    EndSwitch
    WEnd

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

    Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
    #forceref $hWnd, $iMsg
    Local $hWndFrom, $iIDFrom, $iCode
    $hWndFrom = $ilParam
    $iIDFrom = BitAND($iwParam, 0xFFFF) ; Low Word
    $iCode = BitShift($iwParam, 16) ; Hi Word
    Select
    Case $hWndFrom = $hIn And $iCode = $EN_CHANGE
    GUISetState(@SW_HIDE, $hGUI)
    GUISetState(@SW_SHOW, $hLargeInput)
    GUICtrlSetData($inLarge, GUICtrlRead($input))
    ControlFocus($hLargeInput, '', $inLarge)
    Case $iCode = 0x0
    If WinActive($hLargeInput) Then
    GUISetState(@SW_SHOW, $hGUI)
    GUISetState(@SW_HIDE, $hLargeInput)
    GUICtrlSetData($input, GUICtrlRead($inLarge))
    ControlFocus($hGUI, '', $input)
    EndIf
    EndSelect
    Return $GUI_RUNDEFMSG
    EndFunc ;==>WM_COMMAND

    [/autoit]