Страница: 1 |
Страница: 1 |
Вопрос: ListView мерцает при заполнении записями
Добавлено: 13.01.06 18:43
Автор вопроса: Pantalone
Это происходит если при добавлении выполнять DoEvents
Как бы это безобразие прекратить?
Ответы
Всего ответов: 15
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 13.01.06 19:12
Не выполнять при добавлении DoEvents?..
Номер ответа: 2
Автор ответа:
Pantalone
Вопросов: 32
Ответов: 104
Профиль | | #2
Добавлено: 13.01.06 19:16
Тогда вообще не видно что он заполняется и прога висит, юзер бесится
Номер ответа: 3
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #3
Добавлено: 13.01.06 19:22
Показать юзеру окно "Добавляю записи"...
Или прекратить вызывать DoEvents как только количество добавленных записей превысит количество одновременно отображаемых...
Номер ответа: 4
Автор ответа:
Pantalone
Вопросов: 32
Ответов: 104
Профиль | | #4
Добавлено: 13.01.06 19:54
Но если записей много нужно дать возможность юзеру прервать, без DoEvents как это сделать?
Номер ответа: 5
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #5
Добавлено: 13.01.06 21:35
Вызывать DoEvents реже. Скажем, раз в секунду.
Номер ответа: 6
Автор ответа:
Pantalone
Вопросов: 32
Ответов: 104
Профиль | | #6
Добавлено: 13.01.06 22:03
Пробовал уже, мигает но раз в секунду.
Пересмотрел кучу прог, там все с этим нормально, т.е. идет заполнение ListView тучей записей и хоть бы кто моргнул, нет, только скроллер размер меняет и идет отображение процесса. Видимо такой VB глюкавый. Не первый месяц уже эту прогу пишу, столько граблей при написании, просто неслыхано!
Номер ответа: 7
Автор ответа:
sne
Разработчик Offline Client
ICQ: 233286456
Вопросов: 34
Ответов: 5445
Web-сайт:
Профиль | | #7
Добавлено: 14.01.06 01:11
LockWindowUpdate ?
Номер ответа: 8
Автор ответа:
Pantalone
Вопросов: 32
Ответов: 104
Профиль | | #8
Добавлено: 14.01.06 09:47
Ни это ни SendMessage ListView1.hWnd, WM_SETREDRAW, 0, 0 не спасают, DoEvents каким-то образом заставляет его обновляться, все равно мигает.
Номер ответа: 9
Автор ответа:
VerhoLom
Вопросов: 20
Ответов: 285
Профиль | | #9
Добавлено: 14.01.06 14:49
Скройте ListView, покажите юзверю окошко с надписью "Заполнение данными" и кнопкой, отслеживайте как-то по-своему ее нажатие и используйте DoEvents свободно. Кстати, ListView в скрытом виде заполняется быстрее.
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 14.01.06 19:50
юзай не стандартный ListView, а API...
Номер ответа: 11
Автор ответа:
Pantalone
Вопросов: 32
Ответов: 104
Профиль | | #11
Добавлено: 14.01.06 20:13
И что мерцать не будет? С какой стати? Слишком сложно это для меня пока что. Но за совет спасибо, любой совет приветствуюется.
Номер ответа: 12
Автор ответа:
Pantalone
Вопросов: 32
Ответов: 104
Профиль | | #12
Добавлено: 14.01.06 20:55
Да, API не мерцает...
Блин, но столько гемору с этим API ListView.
Елки, чеж обычный-то мерцает, собака!
Номер ответа: 13
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #13
Добавлено: 14.01.06 21:52
Номер ответа: 14
Автор ответа:
Victor
ICQ: 345743490
Вопросов: 42
Ответов: 385
Web-сайт:
Профиль | | #14
Добавлено: 15.01.06 03:16
Номер ответа: 15
Автор ответа:
Pantalone
Вопросов: 32
Ответов: 104
Профиль | | #15
Добавлено: 20.01.06 15:18
Виктор и что, если окно прикроют, а потом глянут оно перерисуется, его можно будет свернуть, тащить, кнопки на нем нажимать? Или под каждое это действие надо будет писать что-то вроде обработчика?