Что нового

Передать параметры при помощи RadioButton и Выпадающего списка

Houshi

Новичок
Сообщения
10
Репутация
0
Всем доброго времени суток!
полазил по форумам, нарыл несколько примеров и сварганил кое какой код

Код:
#include <GUIConstantsEx.au3>
#include <ComboConstants.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>

Global $BaseName, $LockName
Local $msg, $nMsg, $Combo1, $Gui, $sLogin, $sPass, $sButton, $Radio1, $Radio2

$Gui = GUICreate("Запускатр 1С",350,130,-1,-1)

$logfile = ("c:\imp\log\1C_by_"&@UserName&".log")
$sRead = FileReadLine($logfile,-1)

$sLogin = GUICtrlCreateInput($sRead, 10, 15, 200, 20)
$sPass = GUICtrlCreateInput("", 10, 60, 200, 20,$ES_PASSWORD)
$sButton = GUICtrlCreateButton("Запуск", 150, 100, 60, 20)
$Combo1 = GUICtrlCreateCombo("", 220, 15, 120, 23, $CBS_DROPDOWNLIST + $WS_VSCROLL)
GUICtrlSetData(-1, "Марьино|Выхино|Новокосино|Жулебино|Грайвороновский", "Марьино")
$Radio1 = GUICtrlCreateRadio("Розница", 220, 50, 249, 17)
$Radio2 = GUICtrlCreateRadio("Торговля", 220, 70, 257, 17)
GUISetState()


While 1
   ;Начало работы со списком
    $msg = GUIGetMsg()
    Switch $msg
        Case $GUI_EVENT_CLOSE
            ExitLoop
        Case $Combo1
            $LockName = GUICtrlRead($Combo1)
     EndSwitch
	;Окончание работы со списком
	
	;Начало работы с переключателем
	  $nMsg = GUIGetMsg()
	  Switch $nMsg
            Case $GUI_EVENT_CLOSE
                Exit

        If GUICtrlRead ($Radio1) = 1 Then
            $BaseName = "retail"
        EndIf
        If GUICtrlRead ($Radio2) = 1 Then
            $BaseName = "torg"
        EndIf
   EndSwitch
	;Окончание работы с переключателем
	
	;Начало работы с кнопкой
	Switch GUIGetMsg()
        Case -3
            Exit
		 Case $sButton
			MsgBox( 64, "", "LockName=" & $LockName & @LF & "BaseName=" & $BaseName)
        ; Run("2.exe "   & GUICtrlRead($sLogin) & " " &  GUICtrlRead($sPass))
Exit
    EndSwitch
	;Окончание работы с кнопкой
WEnd


Странность в том, что:
1 - $LockName присваивается как то через раз, а то и через 2
2 - $BaseName не присваивается вовсе
3 - Кнопка нажимается иногда с первого раза, а иногда нужно нажать несколько раз
 

InnI

AutoIT Гуру
Сообщения
4,912
Репутация
1,429
Houshi
Главный цикл примерно так нужно организовать
Код:
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    ;Начало работы со списком
        Case $Combo1
            $LockName = GUICtrlRead($Combo1)
    ;Окончание работы со списком

    ;Начало работы с переключателем
        Case $Radio1, $Radio2
            If GUICtrlRead($Radio1) = 1 Then $BaseName = "retail"
            If GUICtrlRead($Radio2) = 1 Then $BaseName = "torg"
    ;Окончание работы с переключателем

    ;Начало работы с кнопкой
        Case $sButton
            MsgBox( 64, "", "LockName=" & $LockName & @LF & "BaseName=" & $BaseName)
        ; Run("2.exe "   & GUICtrlRead($sLogin) & " " &  GUICtrlRead($sPass))
    ;Окончание работы с кнопкой
    EndSwitch
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Houshi,
Можно и так.
Код:
#include <GUIConstantsEx.au3>

Global $hGui, $iButton, $iCombo, $iRadio, $aBaseName[2] = ['torg', 'retail'], $sBaseName, $sLockName

$hGui = GUICreate('Test', 350, 130)
$iButton = GUICtrlCreateButton('Запуск', 150, 100, 60, 20)
$iCombo = GUICtrlCreateCombo('', 220, 15, 120, 23)
GUICtrlSetData(-1, 'Марьино|Выхино|Новокосино|Жулебино|Грайвороновский', 'Марьино')
$iRadio = GUICtrlCreateRadio('Розница', 220, 50, 249, 17)
GUICtrlCreateRadio('Торговля', 220, 70, 257, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUISetState()
While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $iButton
			$sLockName = GUICtrlRead($iCombo)
			$sBaseName = $aBaseName[BitAND(GUICtrlRead($iRadio), $GUI_CHECKED)]
			MsgBox(64, 'Info', 'LockName = ' & $sLockName & @LF & 'BaseName = ' & $sBaseName, 0, $hGui)
	EndSwitch
WEnd
 
Верх