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

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] получить значение из _GUICtrlComboBoxEx_Create (http://forum.oszone.net/showthread.php?t=299646)

VNRed_OK 12-05-2015 11:46 2506343

получить значение из _GUICtrlComboBoxEx_Create
 
Есть небольшой скрипт, вот фрагмент:

Код:

#include <GUIConstants.au3>
#include <GUIComboBoxEx.au3>


$hMainGUI = GUICreate("123", 300, 150)

$B_ok = GUICtrlCreateButton("OK", 180, 18, 50, 20);OK
$1combo = _GUICtrlComboBoxEx_Create($hMainGUI,"Брх|Чеп|Леб|Б-Б|Нов", 110, 10, 60, 200, $CBS_DROPDOWNLIST);


GUISetState()

While 1
    Switch GUIGetMsg()
 Case $GUI_EVENT_CLOSE
      Exit
 Case $B_ok ;OK
            $C_R = GUICtrlRead($1combo)
            If $C_R = "" Then
              MsgBox(0,"ПУСТО","???",4)
            Else
            MsgBox(0,'',$C_R)
            EndIf

    EndSwitch
WEnd

есть ли способ получить значение текущего содержимого из вот этого, "расширенного" ComboBox?

Mike909 12-05-2015 12:33 2506353

Вот тут можно подсмотреть функции GuiComboBoxEx.au3
Код:

...
            $C_index = _GUICtrlComboBoxEx_GetCurSel($1combo)
            $C_array = _GUICtrlComboBoxEx_GetItem($1combo,$C_index)
            $C_R = $C_array[0]
...

искал как одной функцией получить, но что-то не нашел, хотя наверняка есть..

VNRed_OK 12-05-2015 13:20 2506369

Mike909, благодарствую. Попробую разобраться

madmasles 12-05-2015 16:57 2506458

VNRed_OK,
Можно так.
Код:

#include <GUIConstants.au3>
#include <GUIComboBoxEx.au3>

Local $sTxt

$hGUI = GUICreate('ComboBoxEx', 300, 150)
$idBtn = GUICtrlCreateButton('OK', 180, 18, 50, 20);OK
$hCombo = _GUICtrlComboBoxEx_Create($hGUI, 'Брх|Чеп|Леб|Б-Б|Нов', 110, 10, 60, 200, $CBS_DROPDOWNLIST)
_GUICtrlComboBoxEx_SetCurSel($hCombo, Random(0, 4, 1))
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $idBtn
            If _GUICtrlComboBoxEx_GetItemText($hCombo, _GUICtrlComboBoxEx_GetCurSel($hCombo), $sTxt) > 0 Then
                ConsoleWrite($sTxt & @LF)
            Else
                ConsoleWrite('!Error' & @LF)
            EndIf
    EndSwitch
WEnd


VNRed_OK 13-05-2015 08:21 2506721

madmasles, Благодарствую. Просто замечательный вариант. Этого решения будет достаточно.


Время: 21:14.

Время: 21:14.
© OSzone.net 2001-