Что нового

GUI ComboBox не выводит значение

Androi

Новичок
Сообщения
3
Репутация
0
Добрый день.
сильно не пинайте, только учусь. Переменные внутри функции работает. если несколько функций то код слишком большой получается.
Код:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 302, 111, 192, 114)
Global $Combo1 = GUICtrlCreateCombo("", 24, 24, 145, 25)
GUICtrlSetData(-1, "яблоко|шарик|вода|трава|изолента", "яблоко")
$Button1 = GUICtrlCreateButton("Button1", 192, 24, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
Global $msg
;#cs        ; это не работает
$msg = GUICtrlRead($Combo1)
            if $msg = "яблоко" Then $msg = ("красное")
            if $msg = "шарик" Then $msg = ("круглый")
            if $msg = "вода" Then $msg = ("мокрая")
            if $msg = "трава" Then $msg = ("зеленая")
            if $msg = "изолента" Then $msg = ("синяя")
;#ce

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

    EndSwitch
WEnd

  Func start()
#cs ; это работает
     $msg = GUICtrlRead($Combo1)
            if $msg = "яблоко" Then $msg = ("красное")
            if $msg = "шарик" Then $msg = ("круглый")
            if $msg = "вода" Then $msg = ("мокрая")
            if $msg = "трава" Then $msg = ("зеленая")
            if $msg = "изолента" Then $msg = ("синяя")
#ce

     MsgBox (0,"info", $msg  )

endFunc
 
Последнее редактирование модератором:

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 302, 111, 192, 114)
Global $Combo1 = GUICtrlCreateCombo("", 24, 24, 145, 25)
GUICtrlSetData(-1, "яблоко|шарик|вода|трава|изолента", "яблоко")
Global $Label = GUICtrlCreateLabel("", 190, 24, 100, 25)
GUISetState(@SW_SHOW)

start(GUICtrlRead($Combo1))

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

Func start($msg)
    If $msg = "яблоко" Then $msg = ("красное")
    If $msg = "шарик" Then $msg = ("круглый")
    If $msg = "вода" Then $msg = ("мокрая")
    If $msg = "трава" Then $msg = ("зеленая")
    If $msg = "изолента" Then $msg = ("синяя")
GUICtrlSetData($Label, $msg)
EndFunc   ;==>start

а в чем вопрос?
и предупреждение: не нужно создавать несколько одинаковых сообщений для привлечения внимания.
 

IMStrelcov

CTPEJIbLLOB
Сообщения
258
Репутация
66
Func start($msg) If $msg = "яблоко" Then $msg = ("красное") If $msg = "шарик" Then $msg = ("круглый") If $msg = "вода" Then $msg = ("мокрая") If $msg = "трава" Then $msg = ("зеленая") If $msg = "изолента" Then $msg = ("синяя") GUICtrlSetData($Label, $msg) EndFunc
или для нескольких значений:
Код:
Func start($msg)
   Switch $msg
   Case "яблоко", "вишня"
      $msg = ("красное")
   Case "шарик"
      $msg = ("круглый")
   Case "вода"
      $msg = ("мокрая")
   Case "трава", "горох"
      $msg = ("зеленая")
   Case "изолента"
      $msg = ("синяя")
   EndSwitch
   GUICtrlSetData($Label, $msg)
EndFunc
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Код:
#include <GUIConstantsEx.au3>

Global $sCombo_Data = 'яблоко|шарик|вода|трава|изолента'
Global $sType_Data = 'красное|круглый|мокрая|зеленая|синяя'

$hGUI = GUICreate('Form1', 300, 100)
$Combo1 = GUICtrlCreateCombo('', 24, 24, 145, 25)
GUICtrlSetData(-1, $sCombo_Data, 'яблоко')
$Button1 = GUICtrlCreateButton('Button1', 192, 24, 75, 25)
GUISetState(@SW_SHOW)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Button1
            start()
    EndSwitch
WEnd

Func start()
    Local $sRead = GUICtrlRead($Combo1)
    Local $aCombo = StringSplit($sCombo_Data, '|')
    Local $aType = StringSplit($sType_Data, '|')
    
    For $i = 1 To $aCombo[0]
        If $aCombo[$i] = $sRead Then
            MsgBox(64, 'info', $aType[$i], 0, $hGUI)
        EndIf
    Next
EndFunc
 
Автор
A

Androi

Новичок
Сообщения
3
Репутация
0
несколько не хотел создавать. или сайт или комп затупил и msg не выводил. спасибо за ответ.
 
Последнее редактирование:
Верх