Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
126
Assunto : Visual Basic
Titulo: Efeito de explosão na abertura do form

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



O código a seguir cria um efeito de explosão na abertura do form muito interessante. A única API utilizada é a Sleep, que irá controlar a velocidade do efeito.

O efeito é produzido com calculos no tamanho do formulário e um laço que faz com que o form abra do zero até o tamanho com o qual foi criado. Um algorítimo bem interessante.

Eis o código :

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

' Show a form with an explosion effect.
' the lNumSteps parameter is the number of steps to increase the form size from
' 0 to the original size
' the lStepDuration argument is the number of milliseconds between each step

' Example:
Private Sub Form_Load()
ExplodeForm Me, 20, 2
End Sub

Sub ExplodeForm(frm As Form, Optional ByVal lNumSteps As Long = 25, _
Optional ByVal lStepDuration As Long)
Dim sngLeft As Single, sngTop As Single
Dim sngHeight As Single, sngWidth As Single
Dim sngNewHeight As Single, sngNewWidth As Single
Dim sngHeightStep As Single, sngWidthStep As Single
Dim iStep As Long

On Error Resume Next

'exit if the form is minimized/maximized
If frm.WindowState <> vbNormal Then Exit Sub

'save current size and position
sngLeft = frm.Left
sngTop = frm.Top
sngHeight = frm.Height
sngWidth = frm.Width

'calc the step for the height/width increase
sngHeightStep = sngHeight / lNumSteps
sngWidthStep = sngWidth / lNumSteps

'resize the form in several steps
For iStep = 1 To lNumSteps
'calc the new height/width
sngNewHeight = sngNewHeight + sngHeightStep
sngNewWidth = sngNewWidth + sngWidthStep
' display the form
frm.Move sngLeft + (sngWidth - sngNewWidth) / 2, _
sngTop + (sngHeight - sngNewHeight) / 2, sngNewWidth, sngNewHeight
frm.Visible = True
frm.Refresh
' pause if so requested
Sleep lStepDuration
Next

' ensure that the form is completely visible
frm.Move sngLeft, sngTop, sngWidth, sngHeight

End Sub




Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 8/31/2007 1:41:00 PM
nome: Almeida
email: almeida@predialnet.com.br
comentário:
Essa linha esta aparecendo em amarelo:
Sub ExplodeForm(frm As Form, Optional ByVal lNumSteps As Long = 25, Optional ByVal lStepDuration As Long)

E tá dizendo que alguem erro nesta linha:
Sleep lStepDuration


data: 8/31/2007 1:30:00 PM
nome: Almeida
email: almeida@predialnet.com.br
comentário:
Muito interessante, não só a dica como site em geral, porem eu não consegui colocar essa ai pra funcionar, deu uma menssagen dizendo que só posso colocar comentarios após o "end".

 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br