Animationen (Flüssige)

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von TG22997.

    Animationen (Flüssige)

    Hallo VB-Paradise,

    ich programmiere schon ein bisschen mit Visual BAsic und möchte nun wissen wie man
    eine Flüssige Animation hinbekommt zB wenn ich zB
    Bei der Load funktion von der Windows Forms die Durchsichtbarkeit ämdern will und dies in

    VB.NET-Quellcode

    1. ' Arbeitet zwar Flüssig aber mehr kann ich nicht machen...
    2. Me.Opacity = 0.01
    3. Do While Me.Opacity < 1.0
    4. Me.Opacity += 0.09
    5. Me.Refresh()
    6. System.Threading.Thread.Sleep(100)
    7. Loop
    8. Me.Opacity = 1.0


    Wie mache ich zB. Das es Flüssig Zoomt das fenster?
    Also es ist klein und wird immer größer... ?
    Also was ich dir jetzt gebe ist kein wirklicher zoom aber das fenster färt aus... :thumbup:

    VB.NET-Quellcode

    1. Dim height As Integer = Me.Height
    2. Dim width As Integer = Me.Width
    3. Private Sub Form_load(ByVal sender As Object, ByVal e As System.EventArgs) Handels MyBase.Load
    4. Me.Width = 0
    5. Me.Height = 0
    6. Zoom(height, width)
    7. End Sub
    8. Shared Function Zoom(ByVal Form_Height As Integer, ByVal Form_Width As Integer)
    9. 'set width
    10. For width_form As Integer = 1 To Form_Width
    11. Me.Width += 1
    12. Next
    13. 'set height
    14. For height_form As Integer = 1 To Form_Height
    15. Me.Height += 1
    16. End Function


    Sollte so klappen ... :thumbsup:

    mfg Tim;)

    Joda schrieb:

    Danke dir, bekomme zwar 5 Error und 2 Warnings - behebe ich morgen :)

    ich hab den code grad ohne zu testen entworfen das kann schon möglich sein^^ ich werds ma testen...
    pls schreib ma die errors bzw. warnings

    mfg Tim ;)
    so hier:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim _width As Integer = Me.Width
    3. Dim _height As Integer = Me.Height
    4. Dim i_width As Integer = 0
    5. Dim i_height As Integer = 0
    6. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    7. Me.Width = 0
    8. Me.Height = 0
    9. Timer1.Enabled = True
    10. End Sub
    11. Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    12. Dim finish_width As Boolean
    13. Dim finish_height As Boolean
    14. If i_width <= _width Then
    15. i_width += 2
    16. Me.Width = i_width
    17. Else
    18. finish_width = True
    19. End If
    20. If i_height <= _height Then
    21. i_height += 2
    22. Me.Height = i_height
    23. Else
    24. finish_height = True
    25. End If
    26. If finish_width = True And finish_height = True Then
    27. Timer1.Enabled = False
    28. End If
    29. End Sub
    30. End Class

    Samus Aran schrieb:

    Dieser Zoom fährt das Fenster nur nach unten rechts aus, mein Zoom hält das Fenster während der Vergrößerungsaktion zentriert. ;)

    weiß ich doch =)
    aber ich muss ihm auch nicht gleich den komplett-fertigen code geben x'P
    Ist auch nicht gerade schlau von dir ihm den Source zu geben :thumbdown:

    Naja da ich kb hab weiter hier rum zu gammeln hier der source:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
    2. Me.Timer1.Start
    3. Me.Timer2.Start
    4. End Sub
    5. <DebuggerStepThrough> _
    6. Private Sub InitializeComponent()
    7. Me.components = New Container
    8. Me.Timer1 = New Timer(Me.components)
    9. Me.Timer2 = New Timer(Me.components)
    10. Me.Panel1 = New Panel
    11. Me.SuspendLayout
    12. Me.Timer1.Interval = 10
    13. Me.Timer2.Interval = 20
    14. Me.Panel1.BackgroundImageLayout = ImageLayout.Center
    15. Me.Panel1.Dock = DockStyle.Fill
    16. Dim point As New Point(0, 0)
    17. Me.Panel1.Location = point
    18. Me.Panel1.Name = "Panel1"
    19. Dim size As New Size(&H86, &H70)
    20. Me.Panel1.Size = size
    21. Me.Panel1.TabIndex = 0
    22. Dim ef As New SizeF(6!, 13!)
    23. Me.AutoScaleDimensions = ef
    24. Me.AutoScaleMode = AutoScaleMode.Font
    25. size = New Size(&H86, &H70)
    26. Me.ClientSize = size
    27. Me.Controls.Add(Me.Panel1)
    28. Me.MaximizeBox = False
    29. Me.MinimizeBox = False
    30. Me.Name = "Form1"
    31. Me.ShowIcon = False
    32. Me.ShowInTaskbar = False
    33. Me.SizeGripStyle = SizeGripStyle.Hide
    34. Me.StartPosition = FormStartPosition.CenterScreen
    35. Me.ResumeLayout(False)
    36. End Sub
    37. Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs)
    38. If (Me.Width <> 500) Then'musst du noch anpassen
    39. Dim size As New Size((Me.Width + 1), (Me.Height + 1))
    40. Me.Size = size
    41. Else
    42. Me.Timer1.Stop
    43. End If
    44. End Sub
    45. Private Sub Timer2_Tick(ByVal sender As Object, ByVal e As EventArgs)
    46. If (Me.Height <> 500) Then'musst du noch anpassen
    47. Dim point As New Point((Me.Location.X - 1), (Me.Location.Y - 1))
    48. Me.Location = point
    49. Else
    50. Me.Timer2.Stop
    51. End If
    52. End Sub

    hab dir gleich die InitializeComponents mitgegeben =)

    Viel Spaß damit^^