|
|
|
ListView мерцает при заполнении записями
|
|||
|---|---|---|---|
|
#18+
Это происходит если при добавлении выполнять DoEvents Как бы это безобразие прекратить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2006, 18:44:34 |
|
||
|
ListView мерцает при заполнении записями
|
|||
|---|---|---|---|
|
#18+
попробуй так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. дуивентом прогрессбар обновляешь самописный? лучше поискать другой вариант обновления окна. посмотри что-нибудь типа: Private Declare Function UpdateWindow Lib "user32.dll" (ByVal hwnd As Long) As Long ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 01:27:48 |
|
||
|
ListView мерцает при заполнении записями
|
|||
|---|---|---|---|
|
#18+
кстати, проверил LockWindowUpdate ListView1.hWnd ... LockWindowUpdate 0& тоже работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 02:27:01 |
|
||
|
ListView мерцает при заполнении записями
|
|||
|---|---|---|---|
|
#18+
Виктоша, спасибо, но мне нужно чтобы юзер мог на кнопку отмены нажать, за заголовок окно тащить, без DoEvents это не получится. Ты этот пример без DoEvents наверное имеешь в виду, а с ним все опять замерцает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 11:10:46 |
|
||
|
ListView мерцает при заполнении записями
|
|||
|---|---|---|---|
|
#18+
PantaloneВиктоша, спасибо, но мне нужно чтобы юзер мог на кнопку отмены нажать, за заголовок окно тащить, без DoEvents это не получится. Ты этот пример без DoEvents наверное имеешь в виду, а с ним все опять замерцает. не "этот". незамороженное окно, на котором проходили изменения содержания обязательно будет моргать при выполнении DoEvents. замороженное окно формы мерцать не будет. у меня не мерцает и по последнему варианту LockWindowUpdate ListView1.hWnd попробуй. что до DoEvents - дело даже не столько в его катастрофической тормознутости, сколько в способе "обеспечении доступности" твоего собственного приложения. в том самом нажатии кнопок. если ты сознательно используешь дуивенс именно для этой цели, то необходимо приложение специальных усилий для предотвращения побочных последствий. фактически тогда ты обязан ввести дополнительные правила кодирования своих форм. Типа - ввсести состояния "рассчитываю то или сё". иначе иногда пользователь будет сильно удивляться, а ты не понимать, что он тебе рассказывает. Применительно к отмене расчета и даже протаскиванию окна формы можно (думаю, и весьма желательно именно для предотвращения побочных последствий повторного входа в процедуры обработки событий или их пропуска) обойтись без дуивентс настолько, насколько это вообще возможно. смотри в тырнете примеры на использование GetInputState и рядом на функции работы с очередями сообщений. простейший вариант If GetInputState() Then DoEvents но он для ускорения по сравнению с "голым" DoEvents. обработав самостоятельно накопившуюся очередь сообщений можно обойтись совсем без DoEvents. Правда из всего этого не следует, что исключение DoEvents гарантирует уход от ясного создания модели состояний твоей формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 11:48:25 |
|
||
|
ListView мерцает при заполнении записями
|
|||
|---|---|---|---|
|
#18+
уточнение: я работаю исключительно с "классическим" рабочим столом. Без всяких XP стилей. Что будет, если разрешить применение стилей - не проверял. Надеюсь, тоже не будет мерцать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.01.2006, 12:14:56 |
|
||
|
|

start [/forum/topic.php?fid=60&fpage=298&tid=2166565]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
2ms |
| others: | 195ms |
| total: | 328ms |

| 0 / 0 |
