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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.05.2014, 18:25   #1
HTTqp
Форумчанин
 
Регистрация: 20.12.2013
Сообщений: 164
По умолчанию BeginUpdate

Можно ли использовать BeginUpdate при обновления списка динамически созданных кнопок. Просто список может меняться во время работы с программой. И например если он меняется то происходит новая отрисовка всех кнопок(автоматически), и это происходит с отчетливым миганием этих кнопок при этом достаточно долго на протяжение 2-3 секунд. Как это исправить?

P.S. В работе с файлами вырузает
Код:
...
begin
ListView1.Items.BeginUpdate;{Начинаем прорисовку}
...
ListView1.Items.EndUpdate;{Завершаем прорисовку}
end;

Последний раз редактировалось HTTqp; 01.05.2014 в 18:28.
HTTqp вне форума Ответить с цитированием
Старый 01.05.2014, 18:41   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

чего ?
eval вне форума Ответить с цитированием
Старый 01.05.2014, 20:27   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

если они внутри ListView то да.
Человек_Борща вне форума Ответить с цитированием
Старый 01.05.2014, 20:42   #4
HTTqp
Форумчанин
 
Регистрация: 20.12.2013
Сообщений: 164
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
если они внутри ListView то да.
а что BeginUpdate применяется только к ListView к другим компонентам нет?
HTTqp вне форума Ответить с цитированием
Старый 01.05.2014, 21:12   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
при обновления списка динамически созданных кнопок
А причем тут ListView?
Цитата:
а что BeginUpdate применяется только к ListView к другим компонентам нет?
Применяется. Преимущественно к подобным ЛистВью, типа Мемо или Листбокс. Опять таки не во всех ситуациях уместно отключение перерисовки.
Ты поподробнее раскройся. Мне пока не понятно как связаны у тебя кнопки листвью файлы и перерисовка.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.05.2014, 21:12   #6
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Если ваши кнопки рисуются в процессе отрисовки ListView то достаточно так делать только с ListView.
Не задавайте глупых вопросов Вы сами в состоянии проверить это за 2 минуты максимум.
Человек_Борща вне форума Ответить с цитированием
Старый 01.05.2014, 21:39   #7
HTTqp
Форумчанин
 
Регистрация: 20.12.2013
Сообщений: 164
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А причем тут ListView?

Применяется. Преимущественно к подобным ЛистВью, типа Мемо или Листбокс. Опять таки не во всех ситуациях уместно отключение перерисовки.
Ты поподробнее раскройся. Мне пока не понятно как связаны у тебя кнопки листвью файлы и перерисовка.
вот пример моего кода:

Код:
var
   i: Byte;
 begin
   for i := 1 to n do
   begin
     Buttons[i] := TButton.Create(Self);
     with Buttons[i] do
     begin
       Parent  := Form1;
       Caption := 'Button ' + IntToStr(pos);
       Top     := i * Height;
       Tag     := i;
       Visible := True;
     end;
   end;
 end;
N-это переменная может измениться во время выполнения. Каждая кнопка это свое индивидуальное имя. Как можно определить что например кнопки не изменились и не надо обновлять массив кнопок.
HTTqp вне форума Ответить с цитированием
Старый 01.05.2014, 22:12   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Давай лучше проект в архиве в студию. Я спрашивал не о том. Я не пойму ка твои кнопки с листвью связаны. И зачем собсно они понадобились.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 02.05.2014, 10:35   #9
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,011
По умолчанию

автору надо делать так, перед созданием кнопок сделать ListView.BeginUpdate
конечно не забыть и его на форму кинуть.. ну или листбокс, собственно не принципиально

все автор будет удовлетворен
eval вне форума Ответить с цитированием
Ответ


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