Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Timer vs ListBox [D7]


Страницы:   1 2 3 4

Наталья ©   (2013-01-21 11:06:00) 

Здравствуйте. При прокрутке ListBox колесом мыши (именно при прокрутке колесом) Работа таймера в программе приостанавливается. Как можно обойти этот не желательный эффект?


aka   (2013-01-23 13:34:00) [1]


> aka   (23.01.13 12:53) [67]
>
> Ну а если таймер в отдельном потоке запустить или так не
> получится?


Нет - не работает. Попробовал создать таймер в отдельном потоке, а эффект остался прежний.


brother   (2013-01-23 13:06:00) [2]

ты не читатель? уже более худшие варианты испробовали...


aka   (2013-01-23 12:53:00) [3]

Ну а если таймер в отдельном потоке запустить или так не получится?


brother   (2013-01-22 20:13:00) [4]

w7x64 d7 проблемма остается...


NoUser   (2013-01-22 19:45:00) [5]


> brother ©   (22.01.13 06:17) [49]
> [48] не получится так...

Спецом проверил (даж гадкую прокрутку включил) - проблема была, после такого "решения" - не проявлялась.
W7, XE2.


QAZ10   (2013-01-22 17:46:00) [6]


> aka   (22.01.13 14:34) [63]

все проще на самом деле, под списком (в руском переводе) в винде подразумеваются 2 элемента - листбокс и комбобокс
и опция плавности их прокрутки это чисто мультик, когда создается битмап и попиксельно сдвигается


aka   (2013-01-22 14:34:00) [7]

Дело в том, что ListView или другие аналогичные компоненты, которые не вещают вывод все используют
procedure WMVScroll(var Message: TWMVScroll); message WM_VSCROLL;

А вот как крутит скролл ListBox нужно смотреть, но точно не так.


O'ShinW   (2013-01-22 13:29:00) [8]


> словил ситуацию включением


> у всех по умолчанию включено

да понял-понял
написал почему не воспроизвелось тогда


QAZ10   (2013-01-22 12:57:00) [9]


> O'ShinW ©   (22.01.13 12:39) [59]

дело не в том, что у тебя выключено, а в том, что у всех по умолчанию включено


sniknik   (2013-01-22 12:46:00) [10]

> все в 0 / выключено.
> ответ тут (словил ситуацию включением, события "кончились")


O'ShinW   (2013-01-22 12:39:00) [11]

блин, ну нет у меня такой проблемы :)
не воспроизводится.

w7, оформление классика, спецэффекты / аеро ( / гидро / космо:) ) - все в 0 / выключено.


brother   (2013-01-22 11:11:00) [12]

все, я умываю руки, Натальи удачи и прислушайтесь к [9]


brother   (2013-01-22 11:07:00) [13]

[55] проверил - висит...


brother   (2013-01-22 10:53:00) [14]

[54] ща проверил, так и получается - висит...


clickmaker   (2013-01-22 10:50:00) [15]

поток + SendMessage + RedrawWindow(PaintBox.Handle,nil,0,RDW_INVALIDATE or RDW_UPDATENOW)


brother   (2013-01-22 10:39:00) [16]

> + таймер можно заменить на поток.

можно конечно, но имхо, при синхронизации с основным потоком приложения (для рефреша например лэйблов), будем также висеть тк, имхо, основной поток в этот момент жестко висит...


sniknik   (2013-01-22 10:33:00) [17]

хотя нет, все не то (все что выше написал фигня)
ответ тут (словил ситуацию включением, события "кончились")
QAZ10   (21.01.13 11:58) [9]

+ таймер можно заменить на поток.


sniknik   (2013-01-22 10:22:00) [18]

и кстати проверь, если еще не проверил, вот такой глупый вариант -
type
 TListBox = class(StdCtrls.TListBox)
 protected
   procedure WMMouseWheel(var Msg: TWMMouseWheel); message WM_MOUSEWHEEL;
 end;

 TForm1 = class(TForm)
 ....
 ....

procedure TListBox.WMMouseWheel(var Msg: TWMMouseWheel);
begin
 inherited;
 Application.ProcessMessages;
end;


sniknik   (2013-01-22 10:13:00) [19]

+
может еще от операционки зависит... все таки события из нее - XP, без схем(классика).


sniknik   (2013-01-22 10:12:00) [20]

> проблемму подтверждаю, но мне кажется пока идет такой скролл вешается все окно...
сравните с автором установленные в дельфю доп.компоненты... у меня пример (Наталья   (21.01.13 14:49) [19])  ничего не вешает. дельфя (D7) "чистая".


Страницы:   1 2 3 4

Наверх

Титульная страница Поиск, карта сайта Написать письмо