![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
Есть ListBox. В немн несколько пунктов. При щелчке на каждый из этих пунктов, выполняется како-либо длительное действие. У меня такая фигня. При щелчке на один из них, действие начинает выполняться, но в этот момент, если случайно сдвинуть мушь на следующий пункт, то действие прерывается и выполняется уже второе, т.е. то, которое назначено на уже тот пункт, который в данный момент под мышью??? Как этого не допустить?
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| Dynamic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 372 Регистрация: 5.7.2004 Где: Салехард Репутация: 12 Всего: 15 |
заводишь флаг, типа InProcess: boolean, перед выполнением процесса проверяешь его на false
-------------------- Было бы о чем молчать, а уж что сказать – всегда найдется... |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
Делаю так:
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| Dynamic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 372 Регистрация: 5.7.2004 Где: Салехард Репутация: 12 Всего: 15 |
вот это
попробуй вставить в тело -------------------- Было бы о чем молчать, а уж что сказать – всегда найдется... |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
-------------------- |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
Dynamic, Демо, ни один из перечисленных вами способов не дал результата.
А в примере Демо вообще странно все работает... Для чего, например, выводит окно с названием пункта ListBox? -------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Ну блин... Это пример. в обработчиеке сообщения нужно заменить вывод на твой код - то, что тебе нужно выполнить. -------------------- |
|||
|
||||
| Albinos_x |
|
||||||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
моё предположение... хотя может и не верное, т.к. не знаю содержание процедуры RefreshLB видимо ты действие передаёшь в отдельный поток, а переменную не правильно устанавливаешь.... т.е. при выполнении:
запускает поток, делает process:=false и выходит, а поток продолжает работать.... отсюда делаем вывод что установить process:=false надо в конце работы потока...
это всего лишь пример... -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
||||||
|
|||||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
-------------------- |
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
нет, так тоже не работает. Какое-то странное действие: как будто бы команда OnClick выполняется два раза. Сначала первый раз после того, как я нажал на пункт списка. Второй раз, после завершения действий по нажатию на первый пункт.
Добавлено @ 16:34 вот содержимое процедуры:
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Значит, лшибка в другом месте. -------------------- |
|||
|
||||
| Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
Может быть не в тему (так и не понял в чём проблема), но почему нельзя делать просто
|
|||
|
||||
| MacTep |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1292 Регистрация: 4.8.2003 Где: г. Самара Репутация: 4 Всего: 4 |
Yanis, потому что это тоже, хотя странно, не привело к успеху.
-------------------- (A)bort, (R)etry, (I)gnore = Haфиг, Heфиг, Пoфиг ... :) |
|||
|
||||
| Dynamic |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 372 Регистрация: 5.7.2004 Где: Салехард Репутация: 12 Всего: 15 |
КАК вариант: запоминай значение ItemIndex в момент клика в листбоксе и процедуре RefreshLB работай с переменной, а не с ItemIndex.......
-------------------- Было бы о чем молчать, а уж что сказать – всегда найдется... |
|||
|
||||
| Albinos_x |
|
|||
![]() Evil Skynet ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3288 Регистрация: 28.5.2004 Где: X-6120400 Y-1 4624650 Репутация: 26 Всего: 108 |
видимо всё таки: -------------------- "Кто владеет информацией, тот владеет миром" Уинстон Черчилль |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |