vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: Oberfläche · Effekte   |   VB-Versionen: VB4, VB5, VB605.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 HomepageSystem:  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



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.