Jump to content

DOS-Like Edit Control


McGod
 Share

Recommended Posts

How can I make a edit control so that I can let them input into the edit control, but not let them edit what was already outputted above, like DOS.

Link to comment
Share on other sites

How can I make a edit control so that I can let them input into the edit control, but not let them edit what was already outputted above, like DOS.

Ehm, just output stuff they write to like, a label or whatever they can not change?

So you have an edit control and a control that is writable and can scroll when needed. Whenever stuff is entered in the edit control and enter is pressed or a button is pressed you read the input control, put the text on the other control and empty the edit control...

Link to comment
Share on other sites

only way i know is to keep them separate input/output

#include <GUIConstants.au3>
#include <Constants.au3>

Global $cmdinfo

GUICreate("dosprompt", 334, 424, -1, -1)

$cmd = GUICtrlCreateInput("", 40, 10, 200, 20)
$textorso1 = GUICtrlCreateLabel("CMD:", 10, 10, 25, 20)
$Close = GUICtrlCreateButton("Close!", 10, 384, 80, 20)
$Clear = GUICtrlCreateButton("Clear", 100, 384, 80, 20)
$Closex = GUICtrlCreateButton("sendcommand!", 245, 10, 80, 20)
GUICtrlSetState( -1, $GUI_DEFBUTTON)
$Outputbox = GUICtrlCreateEdit("[incomminginput]", 10, 55, 314, 300, $ES_READONLY + $ES_MULTILINE + $WS_HSCROLL + $WS_VSCROLL + $ES_AUTOVSCROLL)
GUICtrlSetBkColor( -1, "")
GUICtrlSetColor( -1, 0xfffafa)
GUISetState(@SW_SHOW)

recall_command("dir c:\")

$msg = 0
While $msg <> $GUI_EVENT_CLOSE
    $msg = GUIGetMsg()
    Select
        Case $msg = $Close
            ExitLoop
        Case $msg = $Clear
            GUICtrlSetData($Outputbox, "[incomminginput]")
        Case $msg = $Closex
            $inputz = GUICtrlRead($cmd)
            recall_command($inputz);
    EndSelect
WEnd

Func recall_command($info)
    $cmdinfo = Run(@ComSpec & " /c " & $info,  @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD + $STDIN_CHILD)
    While 1
        $line = StdoutRead($cmdinfo)
        If @error Then Return
        GUICtrlSetData($Outputbox, GUICtrlRead($Outputbox) & @CRLF & $line);
    WEnd
EndFunc   ;==>recall_command

8)

NEWHeader1.png

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...