Что нового

Выбор элемента по индексу в TDBLookupComboBox

AngrySpoon

Новичок
Сообщения
15
Репутация
0
Доброго времени суток!

Имеется приложение (Delphi 6, вносить изменения в него не могу), на форме которого присутствует контрол TDBLookupComboBox.
Необходимо выбрать первый элемент списка.

Хэндл определяется корректно, но SetCurSel хоть и возвращает 0, индекс текущего элемента не меняется, соответственно DBLookupComboBox остается пустым.

Получить список всех элементов с помощью GetList тоже не получается.

В AutoIt есть возможность работать с этим типом контролов?
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
Попробуйте ControlCommand() с "SetCurrentSelection" или "SelectString".
 
Автор
A

AngrySpoon

Новичок
Сообщения
15
Репутация
0
Yashied сказал(а):
Попробуйте ControlCommand() с "SetCurrentSelection" или "SelectString".

Да, с помощью SetCurrentSelection я пытался, контрол так и остался пустым(
а вторая команда не подходит, т.к. текст в комбобоксе мне неизвестен, а получить GetList тоже не работает с этим контролом(
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
AngrySpoon
Попробуйте раскрыть список через команду "ShowDropDown" в функции ControlCommand(). Или так (при установленном на элементе фокусе)
Код:
Send("!{down}")
 
Автор
A

AngrySpoon

Новичок
Сообщения
15
Репутация
0
InnI сказал(а):
AngrySpoon
Попробуйте раскрыть список через команду "ShowDropDown" в функции ControlCommand(). Или так (при установленном на элементе фокусе)
Код:
Send("!{down}")

Открыть список получается по ControlClick, но, к сожалению, вариант с {down} не подходит(

С обычным TComboBox получается сделать _GUICtrlComboBox_SetCurSel($hCombo, 1) , а вот с TDBLookupComboBox не выходит(((
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
AngrySpoon
вариант с {down} не подходит
Если невозможно выбрать пункт не раскрывая список, значит, либо раскрывая, либо никак.

С обычным TComboBox получается
В том то и дело, что AutoIt использует стандартные сообщения для элементов, а TDBLookupComboBox, вероятно, эти сообщения игнорирует.
 
Автор
A

AngrySpoon

Новичок
Сообщения
15
Репутация
0
InnI,

Большое спасибо за разъяснение, придется через раскрытие(((
 

InnI

AutoIT Гуру
Сообщения
4,922
Репутация
1,432
AngrySpoon
придется через раскрытие
Исходя из названия DBLookup могу предположить, что список отображает данные из базы. Значит при раскрытии он их запрашивает и отображает. Другими словами, пока вы список не раскроете - данных в нём не будет.
 
Верх