Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: WinAPI и системное программирование > Выбор элемента в выпавшем списке ComboBox


Автор: Stibrus 2.3.2006, 14:48
Задача такая:
Запускаю некое внешнее приложение, и ввожу в элементы ввода данные.
Все нормально, но... когда дохожу до ComboBox, начинаются траблы
В появившемся списке (вызываю посылкой Alt+Down окну приложения) выбор нужного элемента посылкой событий ввода с клавиатуры не происходит

Может, кто-нибудь решал такую проблему?

События посылаю так:
Код

    SetForeGroundWindow(hWindow);
    i:=1;
    while i<=length(s) do
    begin
      w:=VkKeyScan(s[i]);
      keybd_event(w,0,0,0);
      keybd_event(w,0,KEYEVENTF_KEYUP,0);
      inc(i);
    end;

где
hWindow - окно приложения
s - строка символов

Автор: Stibrus 2.3.2006, 16:09
Такое ощущение, что события съедаются по дороге. Или их надо посылать напрямую классу ComboLBox ?

Автор: Rrader 3.3.2006, 11:52
Выбрать элемент по индексу:
Код

...
SendMessage(ComboBox1.Handle, CB_SETCURSEL, <Индекс, начинающийся с нуля>, 0);
...

По названию:
Код

...
Var
  P: PChar;
Begin
  P := 'Заголовок';
  SendMessage(ComboBox1.Handle, CB_SELECTSTRING, -1, LongInt(P));
...

Автор: Stibrus 3.3.2006, 13:35
Большое спасибо, второй пример - именно то, что надо. Помогло.

Пробовал это событие, но невнимательно прочитал MSDN и третьим параметром передавал 0.

Спасибо, дорогой профессор, вы спаслиии меня (с) "Тайна третьей планеты" smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)