Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0293: Eine scrollende Credits-Box erstellen

 von 

Beschreibung 

In Anlehnung an den vorletzten Tip, hier jetzt eine kleine Credits-Box mit Farbverlauf.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [2,52 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Project1.vbp -------------
'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "cmdStart"
' Steuerelement: Timersteuerelement "Timer1"
' Steuerelement: Bildfeld-Steuerelement "Picture1"
' Steuerelement: Beschriftungsfeld "lblMove" auf Picture1
' Steuerelement: Schaltfläche "cmdOK"


'Autor: Elmar Steinböck
'E-Mail: elmar@activevb.de

Private Sub cmdOK_Click()
  Unload Me
End Sub

Private Sub cmdStart_Click()
  Timer1.Enabled = True
End Sub

'We colorize the Picturebox with a simple
'Subroutine without API-Calls !
Private Sub ShadePic(pic As PictureBox)
  Dim DS, DW, SM, sh
  Dim i As Integer
  
    'save the values before drawing...
    DS = pic.DrawStyle
    DW = pic.DrawWidth
    SM = pic.ScaleMode
    sh = pic.ScaleHeight
    
    pic.DrawStyle = vbInsideSolid
    pic.DrawWidth = 2
    pic.ScaleMode = vbPixels
    pic.ScaleHeight = 256
    For i = 0 To 255
      pic.Line (0, i)-(pic.Width, i + 1), _
                RGB(0, 0, 255 - i), B 'blue
    
    'change the RGB for all colors you want
    'i.e.: RGB(255, 0, 255-i) = red to magenta
    '      RGB(0, 255-i, 0) = green
    
    Next i
    
    'settings to default:
    pic.DrawStyle = DS
    pic.DrawWidth = DW
    pic.ScaleHeight = sh
    pic.ScaleMode = SM
End Sub

'Initialize picturebox and timer
Private Sub Form_Load()
  ShadePic Picture1
  Picture1.Visible = True
  Picture1.AutoRedraw = True
  Timer1.Interval = 100
End Sub

'Timer moves the label to the top
Private Sub Timer1_Timer()
  Dim MoveBy As Integer
   
    'Scalemode is Twips!
    If lblMove.Top > Me.ScaleHeight Then
      lblMove.Top = 0
    Else
      MoveBy = 20 '-20 direction =  top to bottom
    End If         '20 direction = bottom to top
    lblMove.Move lblMove.Left, lblMove.Top - MoveBy
End Sub
'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Project1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 3 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von razor am 14.04.2009 um 21:18

hi, super Idee sieht auch nicht schlecht aus.

Aber, ist es möglich das das "Ruckeln" des textes irgendwie behoben werden kann ? Wäre noch toller, wenn es weicher scrollen würde, sodass es nicht mehr ruckelt

hoffe ihr versteht was ich meine.

gruß

Kommentar von Tom Kericht am 01.12.2000 um 04:22

Hallo lieber Kyron,
ein kurzer Vergleich zeigt zwar, daß Deine Routine mit der hier angebotenen mit einer Zeile weniger auskommt, dafür vermisse ich aber irgendwie bei Deinem Vorschlag den Farbverlauf.

Kommentar von Kyron am 29.11.2000 um 21:50

CreditBox
Warum so umständlich?
Meine Creditbos hat lediglich 6 Zeilen
Private Sub
Ich habe alle Lables mit dem nötigen Zeugs in eine PictureBox gepackt und diese PictureBox dann ganz unten an ausserhalb der Form gepackt. Dann einen Timer dazu und fertig...
Timer1_Timer()
PictureBoxStart = 1200
If PictureBox.Top 0 - PictureBox.Height Then
PictureBox.Top = PictureBox.Top - 20
Else
PictureBox.Top = PictureBoxStart
End If
End Sub
Siehe da...die PictureBox wandert solange nach oben bis der untere Rand erreicht ist und fängt dann wieder von vorne an.
Dies ist ein wirklich guter Tip für Deine Seite *gg* den auch solche Programmierer wie ich, die nicht sehr viel wissen, ganz realisieren können. Bei der Credit-Box die Du da hast sehe ich bei weitem nicht durch.
MfG
Kyron