TComboBox и его глючная реакция OnKeyDown...

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

TComboBox и его глючная реакция OnKeyDown...

Сообщение leo_bsv » 15.10.2011 11:17:20

Не хочу чтобы пользователь что-то писал в комбо, пишу так
Код: Выделить всё
procedure TMainForm.ComboBoxKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState
  );
begin
  Key:=0;
end;

результат: если встать в комбо и тыкать медленно - не пишется :), а если тыкать в клаву быстро обеими руками и всё подряд - пишется :shock: Это глюк такой или что :?:
свойство ReadOnly не предлагать - ComboBox.Style изменяется на csDropDownList после чего программно невозможно указать свойство ComboBox.Text или даже ComboBox.ItemIndex... или я ошибаюсь?
Аватара пользователя
leo_bsv
постоялец
 
Сообщения: 276
Зарегистрирован: 04.08.2010 16:26:10
Откуда: Йошкар-Ола

Re: TComboBox и его глючная реакция OnKeyDown...

Сообщение Владимир » 15.10.2011 16:40:11

У меня не пишется, что быстро, что медленно жать кнопки...
Вообще-то для Ваших целей следует использовать OnKeyPress с указанием, например key:=#27
В свойство .text писАть - не вижу особого смысла, т.к. это элемент отображения одного из Items[ItemIndex]. Другое дело, если необходимо реализовать расширение списка с добавлением новой строки с содержимым .text - тогда используем метод Add (например, в обработчике OnKeyDown).
Как-то так.
Владимир
постоялец
 
Сообщения: 355
Зарегистрирован: 23.08.2007 19:48:39
Откуда: Москва


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 242

Рейтинг@Mail.ru