Animasyon ve tema

09/08/2011, 22:40

gkhn_face

İnternette araştırırken vb6 için form açılış kapanış efekti bulmuştum slayt gibi açılıp kapanıyodu fakat ben 2008 kullanmayı seviyorum acaba bunu nasıl 2008 e uyarlayabilirm.Sizin bildiğiniz bu tür efektler ve kodları var mı?Birde form için nasıl tema hazırlayabilirm?

Herkese teşekkürler.İyi akşamlar....
10/08/2011, 10:38

aobendes

Bir ara ben de ilgilenmiştim. Arşivlerimde şöyle bir şey var,
Visual Basic'de Transparan Formlar Ve Fade Efekti Oluşturmak için Boş Bir Module Açın Ve İçine Aşağıdaki Kodu Yapıştırın.
'--------------------------MODULE BAŞLANGICI------------------------
Option Explicit
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hWnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_ALPHA = &H2
Private Const WS_EX_LAYERED = &H80000
Public Function MakeTransparent(ByVal hWnd As Long, Perc As Integer) As Long
Dim Msg As Long
On Error Resume Next
If Perc <> 255 Then
MakeTransparent = 1
Else
Msg = GetWindowLong(hWnd, GWL_EXSTYLE)
Msg = Msg Or WS_EX_LAYERED
SetWindowLong hWnd, GWL_EXSTYLE, Msg
SetLayeredWindowAttributes hWnd, 0, Perc, LWA_ALPHA
MakeTransparent = 0
End If
If Err Then
MakeTransparent = 2
End If
End Function
'-------------------------MODULE BiTTi--------------------------------
'Daha Sonra Boş Bir Form Oluşturun.Bir Commandbutton(Command1),Bir Label(Label1) Ve Bir Timer(Timer1) Ekleyin.Sonra Aşağıdaki Kodu Yapıştırın.Timer interval=10 enabled=false olması gerekir.
'Bu Kod Sayesinde Program Açılırken Yavaş Yavaş Görünerek Gelecek,Kapanırken de Aynı Şekilde Kapanacak.
Private Sub Command1_Click()'programı kapatmak için
Dim x As Integer
x = 255
Do Until x = 0' x 0 olana kadar
DoEvents
Label1.Caption = "Kapatılıyor..."
x = x - 3' x 3 er 3er azaltıyrouz yani formu giderek transparanlaştırıyoruz MakeTransparent Me.hWnd, x
Loop' x 0 olunca
Unload Me'kapattık
End Sub
Private Sub Form_Load()
Label1 = "Yükleniyor..."
MakeTransparent Me.hWnd, 0 'ilk açılışta form görünmüyor.
Timer1.Enabled = True 'timer olayında form yavaş yavaş görünür olacak.
End Sub
Private Sub Timer1_Timer()
Dim x As Integer
x = 3
Do Until x = 255' x 255 yani form tamamen görünür olana kadar.
DoEvents
x = x + 3' 3er 3er arttır.
MakeTransparent Me.hWnd, x
Loop'x 255 olunca
Timer1.Enabled = False
Label1.Caption = "Yüklendi."
End Sub
'ÖNEMLİ NOT:Eğer Daha Hızlı Veya Daha Yavaş Geçiş Olmasını İstiyorsanız x=x+3 veya x=x-3 deki 3 değerini değiştirebilirsiniz.Ya da Tam Görünür Olmasın Transparan Kalsın Diyorsanız Timer Olayında Do Until x=255 yerine 200 yapabilirsiniz.Ancak x=x+3 gibi ifadede örneğin x=x+2 yaparsanız Do Until x=254 yapın yani 2nin katı bir sayı yoksa owerflow hatası meydana gelir.Ayrıca Form Ne Kadar Büyük Olursa Fade Efekti O Kadar Yavaş Olur.O Yüzden Küçük Boyutlu Formlar Kullanın.Yine De Bir Problem Yaşıyorsanız Bana Mail Atabilirsiniz.
'xpander@programmer.net
'NOT2:Eğer Sadece Formu Transparan Yapmak İstiyorsanız FORM_LOAD olayına
'MakeTransparent Me.hWnd, 0 ekleyin.hWnd den Sonra Gelen Sayı Değeri 0-255 Arası Bir Değer Alabilir. Transparan Derecesi:0 için Form Görünmez,255 için Transparan Değildir.

AlıntıdırFatih Karaarslan)
10/08/2011, 11:09

gkhn_face

yardımınız için çok teşekkür ederim
12/04/2012, 12:21

accessman

bu accese uyarlanırmı