| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > ListBox и длительное действие |
| Автор: MacTep 21.5.2006, 14:02 |
| Есть ListBox. В немн несколько пунктов. При щелчке на каждый из этих пунктов, выполняется како-либо длительное действие. У меня такая фигня. При щелчке на один из них, действие начинает выполняться, но в этот момент, если случайно сдвинуть мушь на следующий пункт, то действие прерывается и выполняется уже второе, т.е. то, которое назначено на уже тот пункт, который в данный момент под мышью??? Как этого не допустить? |
| Автор: Dynamic 21.5.2006, 14:26 |
| заводишь флаг, типа InProcess: boolean, перед выполнением процесса проверяешь его на false |
| Автор: MacTep 21.5.2006, 14:49 | ||
Делаю так:
|
| Автор: Dynamic 21.5.2006, 14:55 |
| вот это попробуй вставить в тело |
| Автор: Демо 21.5.2006, 15:08 | ||
|
| Автор: MacTep 21.5.2006, 15:41 |
| Dynamic, Демо, ни один из перечисленных вами способов не дал результата. А в примере Демо вообще странно все работает... Для чего, например, выводит окно с названием пункта ListBox? |
| Автор: Демо 21.5.2006, 16:08 |
Ну блин... Это пример. в обработчиеке сообщения нужно заменить вывод на твой код - то, что тебе нужно выполнить. |
| Автор: Демо 21.5.2006, 16:09 | ||
|
| Автор: MacTep 21.5.2006, 16:29 | ||
| нет, так тоже не работает. Какое-то странное действие: как будто бы команда OnClick выполняется два раза. Сначала первый раз после того, как я нажал на пункт списка. Второй раз, после завершения действий по нажатию на первый пункт. Добавлено @ 16:34 вот содержимое процедуры:
|
| Автор: Демо 21.5.2006, 16:35 | ||
Значит, лшибка в другом месте. |
| Автор: Yanis 21.5.2006, 22:14 | ||
Может быть не в тему (так и не понял в чём проблема), но почему нельзя делать просто
|
| Автор: MacTep 21.5.2006, 23:47 |
| Yanis, потому что это тоже, хотя странно, не привело к успеху. |
| Автор: Dynamic 22.5.2006, 05:35 |
| КАК вариант: запоминай значение ItemIndex в момент клика в листбоксе и процедуре RefreshLB работай с переменной, а не с ItemIndex....... |
| Автор: Albinos_x 22.5.2006, 06:00 |
видимо всё таки: |