Мерцание элементов при перемещении

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
4Gremlin
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 14.04.2003 (Пн) 9:38
Откуда: Чита, Россия

Мерцание элементов при перемещении

Сообщение 4Gremlin » 14.04.2003 (Пн) 10:19

На собственном скроллбаре,я на mousemove забиндил перемещение лэйблов и графики (изменением топа) и они при этом перемещении очеь сильно мерцают. Можно ли этого избежать???

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 14.04.2003 (Пн) 10:27

Конечно можно - например, проапгрейдив систему ;)



А если серьезно то может запостишь код по перемещению - может чего и удасться соптимизировать.

Ronin_1978
Новичок
Новичок
 
Сообщения: 46
Зарегистрирован: 05.04.2003 (Сб) 14:42
Откуда: Москва

Сообщение Ronin_1978 » 14.04.2003 (Пн) 12:19

Насколько я знаю, мерцает только Image. Попробуй Picture Box

4Gremlin
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 14.04.2003 (Пн) 9:38
Откуда: Чита, Россия

Сообщение 4Gremlin » 15.04.2003 (Вт) 8:04

Мощности компа у меня вполне хватает (Cel Tua 1200, GF4 64mb...) А вот мерцает одинакого почти везде :-(((
Код примерно такой:

Private sub Image1_mousemove(x as integer, y as integer)

image2.top = image2.top + (495 + y)

end sub

где 495 - середина бегунка моего скроллбара, но это в общем неважно. Попробуйте например посадить передвижение лейбла (изменеием топа или лэфта, либо методом move) с текстом(3-4 строки) на таймер с интервалом около 100-200 и увидите мерцание.

new_programmer
Новичок
Новичок
 
Сообщения: 27
Зарегистрирован: 10.02.2003 (Пн) 21:20
Откуда: Russia

Сообщение new_programmer » 15.04.2003 (Вт) 8:38

Попробуй разместить все перемещаемые элеменнты внутри Frame,
и перемещай его.

4Gremlin
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 14.04.2003 (Пн) 9:38
Откуда: Чита, Россия

Сообщение 4Gremlin » 16.04.2003 (Ср) 2:39

А без фрейма ни как не обойтись???

4Gremlin
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 14.04.2003 (Пн) 9:38
Откуда: Чита, Россия

Сообщение 4Gremlin » 18.04.2003 (Пт) 5:10

Народ, ну помогите плз! :cry: :cry:
Может исходник кому-нить выслать?

sslion
Постоялец
Постоялец
 
Сообщения: 334
Зарегистрирован: 12.04.2002 (Пт) 9:44
Откуда: Russia

Сообщение sslion » 18.04.2003 (Пт) 7:17

Ну это же затасканый донельзя вопрос!!! Вместо того чтобы менять координаты верхнего угла через TOP и LEFT выполняй просто метод MOVE - он работает быстрее!

sslion2000@mail.ru

4Gremlin
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 14.04.2003 (Пн) 9:38
Откуда: Чита, Россия

Сообщение 4Gremlin » 18.04.2003 (Пт) 9:03

Я уже пробовал. Результат тот же :(

4Gremlin
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 14.04.2003 (Пн) 9:38
Откуда: Чита, Россия

Сообщение 4Gremlin » 18.04.2003 (Пт) 17:21

К тому же мне кажется, что дело не в скорости выполнения перемещения а в скорости апдейта контрола. Возможно, существует какое-то свойство отвечающее за апдейт, а я просто его не знаю.

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 18.04.2003 (Пт) 17:22

Я уже ..цать постингов назад сказал - апгрейдись. Нет никаких свойств и ничего подобного типа FastScreenControlsMoveMode = vbFastestWayPossible просто нет.



Как вариант можешь делать всем контролам .Enabled = False до перемещения и True после.

GoGosha
Постоялец
Постоялец
 
Сообщения: 642
Зарегистрирован: 02.08.2002 (Пт) 9:14
Откуда: Russia

Сообщение GoGosha » 18.04.2003 (Пт) 17:35

К сожалению ни чем помочь не могу, потому, что у меня НЕ МЕРЦАЕТ с моим то Matrox-om G400 (правда 512MB оперативки и 1700+(ещё и разогнан))

Я думаю, что есть способ без апгрейда

4Gremlin
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 14.04.2003 (Пн) 9:38
Откуда: Чита, Россия

Сообщение 4Gremlin » 19.04.2003 (Сб) 6:45

Спасибо уж всем :lol:
Мне один перец из инста должен принести инфы по этому поводу. Что-то связанное как раз с рефрешом толи контрола то-ли форма, если что потом опубликую.

serix
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 177
Зарегистрирован: 09.11.2002 (Сб) 17:54
Откуда: Russia

Сообщение serix » 19.04.2003 (Сб) 14:01

Может я неправ, но заметил очень интересную фишку: в XP некоторые контролы мерцают, а в 9x нет... Вот так-то :wink:
ZU

4Gremlin
Начинающий
Начинающий
 
Сообщения: 10
Зарегистрирован: 14.04.2003 (Пн) 9:38
Откуда: Чита, Россия

Сообщение 4Gremlin » 20.04.2003 (Вс) 4:15

Гы, у меня как рах XP.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот, Хакер, Yandex-бот и гости: 83

    TopList