![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Мигание [D6, Win95/98]
Nubie © (2002-11-22 14:37:00)Есть 4-ре ListView ,вывожу их поочередно на канву, при этом наблюдается нежелательное мигание.
Как от этого избавиться?
apay (2002-12-11 21:33:00) [1]возьми Parent у ентих ListView (maybe TForm или какой-либо TPanel, на время переключения используй:
LockWindowUpdate( [FormX|PanelX].Handle );
[ переключение ]
LockWindowUpdate( 0 );
Zwerg (2002-12-11 16:41:00) [2]//Перед выводом
SendMessage(Form1.Handle,WM_SETREDRAW,0,0);
// Здесь прячем и показываем нужные ListView
//После вывода
SendMessage(Form1.Handle,WM_SETREDRAW,1,0);
RedrawWindow(Form1.Handle, nil,0, RDW_FRAME+RDW_INVALIDATE+RDW_ALLCHILDREN+RDW_NOINTERNALPAINT);
kostik78ua (2002-11-27 01:03:00) [3]А ты не скрывай, а просто выводи нужный ListView на передний план.
Что-нибудь типа: BringWindowToTop, SetForegroundWindow, SetWindowPos...
F1 (2002-11-26 16:11:00) [4]А попробуй сначала ShowNext, а потом HidePrev. Хотя не уверен, что поможет :)
Nubie (2002-11-26 16:07:00) [5]А на WinAPI?
kostik78ua (2002-11-22 18:10:00) [6]Возьми компонент TNotebook с 20-ю закладками.
Переключайся между ними и не мучайся. Только что проверил - замечательно работает. :)
LongIsland (2002-11-22 17:53:00) [7]Если не поможет MBo © (22.11.02 14:40), то никак
Nubie (2002-11-22 17:49:00) [8]Допустим есть 20-ть ListView.
Они выводятся циклом на одно и то же место.
Например в первом ListView какие-то имена,
во втором фамилии и т.д.
Скрываю 1-й list ShowWindow(...,sw_hide), а второй
ShowWindow(...,sw_show).
Наблюдаю мигание.
Как от него избавиться?
MBo (2002-11-22 14:40:00) [9]>вывожу их поочередно на канву
Не совсем ясно, что имеется в виду.
Может помочь
DoubleBuffered:=True;
для формы
F1 (2002-11-22 14:39:00) [10]Выводи в буфер, а буфер на канву.