Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   Получение данныз из формы в GUI c последующей отправкой в статус-бар. (http://forum.oszone.net/showthread.php?t=216450)

winipox 25-09-2011 22:46 1760072

Получение данныз из формы в GUI c последующей отправкой в статус-бар.
 
Здравствуйте, возникла такая проблема - необходимо из созданной формы получить текст в статус-бар в следующем коде:
Код:

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <ProgressConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 299, 253, 254, 124)
$Input1 = GUICtrlCreateInput("Input1", 8, 16, 81, 21)
$StatusBar1 = _GUICtrlStatusBar_Create($Form1)
_GUICtrlStatusBar_SetText($StatusBar1, "03  "& GUIctrlread($Input1))
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

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

    EndSwitch
WEnd

Так как написано тут в статус-баре пишет Input1, но не как не то что я пишу после запуска, к чему и стремлюсь.

madmasles 25-09-2011 23:27 1760095

winipox,
Попробуйте так.
Код:

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

$hForm = GUICreate('Test', 299, 253, 254, 124)
$nInput = GUICtrlCreateInput('Input', 8, 16, 81, 21)
$hStatusBar = _GUICtrlStatusBar_Create($hForm)
_GUICtrlStatusBar_SetText($hStatusBar, '03  ' & GUICtrlRead($nInput))
GUISetState()
GUIRegisterMsg($WM_COMMAND, 'WM_COMMAND')

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

Func WM_COMMAND($hWnd, $imsg, $iwParam, $ilParam)
    Local $nNotifyCode, $nID
    $nNotifyCode = BitShift($iwParam, 16)
    $nID = BitAND($iwParam, 0xFFFF)
    Switch $hWnd
        Case $hForm
            Switch $nID
                Case $nInput
                    Switch $nNotifyCode
                        Case $EN_UPDATE;$EN_CHANGE
                            _GUICtrlStatusBar_SetText($hStatusBar, '03  ' & GUICtrlRead($nInput))
                    EndSwitch
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc  ;==>WM_COMMAND


winipox 26-09-2011 22:28 1760699

В посте выше все более-мене понятно за исключением самих принципов языка autoit. Какие операции необходимо прописывать чтобы данные из гуй можно было обрабатывать(а именно читать - посылать)?

madmasles 27-09-2011 01:10 1760766

Цитата:

Цитата winipox
а именно читать - посылать »

Что читать? Что и куда посылать?

ven00m 27-09-2011 15:37 1761101

Еще вариант (попроще):
Код:

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

#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 299, 253, 254, 124)
$Input1 = GUICtrlCreateInput("Input1", 8, 16, 81, 21)
$StatusBar1 = _GUICtrlStatusBar_Create($Form1)

GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

$input1old = GUIctrlread($Input1)

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

    EndSwitch

    if GUIctrlread($Input1)<>$input1old then
    _GUICtrlStatusBar_SetText($StatusBar1, "03  "& GUIctrlread($Input1))
    $input1old = GUIctrlread($Input1)
    Endif
WEnd



Время: 18:12.

Время: 18:12.
© OSzone.net 2001-