Rubrik: Oberfläche · Effekte | VB-Versionen: VB4, VB5, VB6 | 05.10.05 |
Form am Bildschirmrand abprallen lassen Die Form bewegt sich auf dem Bildschirm und prallt dabei an den Bildschirmrändern ab. | ||
Autor: K.W. | Bewertung: | Views: 11.739 |
ohne Homepage | System: Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 | Beispielprojekt auf CD |
Nachfolgender Tipp zeigt, wie man eine Form per Timer-Control am Bildschirm bewegen lässt, wobei sich die Bewegungsrichtung automatisch ändert, wenn die Form einen der Bildschirmränder erreicht. Die Form prallt am Bildschirmrand ab
Erstellen Sie ein neues Projekt (Standart-EXE) und platzieren Sie auf das Form ein Timer-Control. Setzen Sie für den Timer ein Intervall von z.B. 10 Millisekunden.
Kopieren Sie den folgenden Quellcode in den Codeteil der Form:
Private Sub Form_Load() ' Timer-Intervall festlegen Timer1.Interval = 10 ' 10 Millisekunden End Sub
Private Sub Timer1_Timer() Static runter As Boolean Static rechts As Boolean Dim verschiebung As Integer verschiebung = 10 ' Verschiebung in Pixel pro Timerdurchlauf With Me ' Wenn Form.Top kleiner 0 (oberer Bildschirmrand) dann nach unten If .Top < 0 Then runter = True ' Wenn Form.Top größer als die Höhe des Bildschirms minus die Höhe der ' Form dann nicht nach unten, also nach oben ;-) If .Top > Screen.Height - .Height Then runter = False ' Wenn Form.Left kleiner 0 (linker Bildschirmrand) dann nach rechts If .Left < 0 Then rechts = True ' Wenn Form.Left größer als die Bildschirmbreite minus die Formbreite, ' dann nicht nach rechts sondern nach links If .Left > Screen.Width - .Width Then rechts = False ' Wenn runter = true, dann Form.Top + 20, also 20 Pixel vom ' oberen Bildschirmrand weg ' Wenn runter = false, dann Form.Top - 20, also 20 Pixel zum ' oberen Bildschirmrand bewegen .Top = .Top + IIf(runter, verschiebung, -verschiebung) ' Wenn rechts = true, dann Form.Left + 20, also 20 Pixel vom ' linken Bildschirmrand wegbewegen ' Wenn nicht, dann 20 Pixel in Richtung linker Bildschirmrand .Left = .Left + IIf(rechts, verschiebung, -verschiebung) End With End Sub