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

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

Мигание [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]

Выводи в буфер, а буфер на канву.


Наверх

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