от чего тормозит изменение Opacity?

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

areh
Постоялец
Постоялец
 
Сообщения: 530
Зарегистрирован: 02.12.2002 (Пн) 12:28
Откуда: РОССИЯ, Салехард

от чего тормозит изменение Opacity?

Сообщение areh » 23.01.2006 (Пн) 11:31

Всем привет!

суть проблеммы:
в программе, в качестве "красивости" при выводе информации, используется такая штука:
создается форма frm_back - для фона, и форма для вывода информации frm_ShowInfo.
обе отображаются одновременно, причем frm_back является "родителем" для frm_ShowInfo.
вначале у них обеих прозрачность равна 0 (т.е. обе полностью прозрачные)
потом, в таймере (который находится на frm_ShowInfo), делается вот что:

Private Sub tmp_Opacity_Tick(...) Handles tmr_Opacity.Tick
Me.Opacity += 0.03
Me.Owner.Opacity += 0.02

If Me.Opacity >= 0.9 Then
Me.Opacity = 1
tmr_Opacity.Enabled = False
End If
End Sub

получается такая вещь: постепенно появляется окно с информацией и фон (на весь экран).. а когда таймер перестает работать окно с информацией становится полностью не прозрачным, а окно фона "полу-прозрачное".

проблемма вот в чем:
на моем компьютере, все смотрится замечательно, но вот на некоторых других:
1. появляется мерцание экрана
2. весь этот процесс проходит очень медленно...

уже пробывал вводить 2 параметра, с помощью которых предполагалось изменять интервал у таймера и шаг изменения прозрачности... не помогло... при всяких разных сочетаниях, проблемма остается..

можно ли с этим что-то сделать? из-за чего может возникать такая проблемма?
может это все из-за видеокарты+процессора?

PS:
у меня P4 3.2/512/ATI x600 XT

проблеммы возникают на:
P4 2.4/512/встроенная (intel)
P4 2.4/256/ATI Radeon 7000
Athlon XP 2500+/512/ATI Radeon 8500
P4 3.06/1024/ATI Radeon 9800 Pro

Maitris
Постоялец
Постоялец
 
Сообщения: 656
Зарегистрирован: 02.03.2005 (Ср) 21:00
Откуда: Из другой цивилизации.

Сообщение Maitris » 23.01.2006 (Пн) 12:12

Обычно тормоза появляются при большой степени прозрачности на загруженном фоне (например на фоне десктопа) т.к. системе приходится обрабатывать большое колл-во данных.. Прозрачность другой формы на фоне первой не должна тормозить.
Не делай прозрачность больше разумного (maybe min opacity 40%), даже для быстрых пк это нелегко, тем более когда работаешь не с одной формой.
----


Вернуться в Visual Basic .NET

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 40

    TopList