Вниз
Скачать: CL | DM;

Реакция на быстрое изменение выбранной строки в списке   Найти похожие ветки 

 
kva   (2003-01-22 11:36) [0]

Привет всем! Необходимо по изменению ListBox.ItemIndex выполнять некоторую довольно длительную процедуру, входным параметром которой является элемент списка. Хочу при быстром изменении (например, когда пробегаю список в Listbox"е с помощью клавиатуры) отключить, не запускать эту процедуру, пока не будет сделан окончательный выбор.
Первое, что пришло в голову - это использовать таймер. Например, в OnKeyPress делать Timer.Enabled на 200 мсек и уже по OnTimer запускать эту процедуру и затем отключать таймер.
Какие еще способы существуют?
Слышал по OnIdle, но сам не делал. Может кто кусок кода бросит..
Заранее спасибо.


 
stone ©   (2003-01-22 11:44) [1]

Запускай процедуру при Listbox.OnCloseUp


 
REA ©   (2003-01-22 12:25) [2]

OnCloseUp кстати кажется не срабатывает при выборе с клавиатуры, так что осторожно. Может подготовить кэш, чтобы процедура была не столь длительной?


 
kva   (2003-01-22 12:39) [3]

Listbox.OnCloseUp ????
Listbox не DBLookupComboBox, и не TDateTimePicker

Еще варианты ?


 
kva   (2003-01-22 13:10) [4]

Нет вариантов?


 
VAleksey ©   (2003-01-22 13:20) [5]

Да нормальный вариант с таймером. Главное простой.


 
VAleksey ©   (2003-01-22 13:21) [6]

Второе что пришло в голову :))
Может все-таки, если процедура длительная, явно ее стартовать ? По клику на кнопке " Выбрать элемент ", например ?



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.011 c
6-96907
NeXWiZ
2002-12-03 20:24
2003.01.30
PINGwini


1-96647
bvn123
2003-01-21 12:32
2003.01.30
Будут проблемы? GetMem(Buffer, FileSize); FileSize>1M;


14-97005
Maximator Vetera
2003-01-12 20:52
2003.01.30
Песня


1-96863
Anton
2003-01-21 10:29
2003.01.30
что такое Application.ProcessMessages;


1-96721
Delph
2003-01-20 11:29
2003.01.30
По зазному вставляются записи в TClientDataSet.




   Наверх