Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.09.2009, 00:14   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию Как проврить, обновляется ли лист (delphi 2009)

Привет всем!
Есть listView с событиями onSelectItem и onItemChecked.
Проблема в том, что когда пишу, например,
listView.items[someItemIndex].checked := someBoolValue, то обезательно вызывается событие onItemChecked. Или ещё лучше. Если вызываю listView.clear, то для всех выделенных item-ом вызывается onSelectItem.
При однократных вызовах это ещё ничё, но когда у меня, например, listView.items[someItemIndex].checked := someBoolValue вызывается раз 20 в цикле, то мне совершенно не нужно, что-бы каждый раз вызывался-бы onItemChecked. Перед и после циклов у меня стоят listView.items.beginUpdate и listView.items.endUpdate соответственно, но выше описанные события всё равно вызываются. Как мне без объявления лишних переменных определить, обновляется ли щас лист, или нет?

Что-то типа
Код:
procedure tSomeFormClass.listViewOnItemChecked(sender: tObject);
begin
   if listView.items.nowUpdating then exit;
   {else some actions}
end;
Altera вне форума Ответить с цитированием
Старый 03.09.2009, 07:10   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

я делаю так
Код:
x:=lictview.onchecked;
listview.onchecked:=nil;
listview.beginupdate;

listview.endupdate;
listview.onchecked:=x;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 03.09.2009, 08:15   #3
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
я делаю так
Код:
x:=lictview.onchecked;
listview.onchecked:=nil;
listview.beginupdate;

listview.endupdate;
listview.onchecked:=x;
знаю, но не прикольно как-то. Это в 2009-ой такие уведомительный финты появились. До этого их не было.

А больше никак нельзя определить?
Altera вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi 2009. Как иземнить стандартный путь сохранения файлов? TwiX Общие вопросы Delphi 2 25.08.2009 21:13
Как убрать привязку в Delphi 2009? TwiX Общие вопросы Delphi 4 25.08.2009 12:39
Как пользоваться Delphi 2009 rangel Общие вопросы Delphi 7 28.05.2009 19:30
Как? Окно с плеером поверх основого и не обновляется grisha-star JavaScript, Ajax 2 10.03.2009 15:47