kostenloser Webspace werbefrei: lima-city


RGB

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    impirial-war

    impirial-war hat kostenlosen Webspace.

    Hey
    wie kann ich in VB machen, dass sich der Rot-Wert einer Farbe nach und nach erhöht?

    So in der Form:

    Do
    I=I+1
    Me.backcolor=RGB(I, 50, 50)
    Loop until I=100

    mfg
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. r*s

    Also wenn du die Veränderung sehen möchtest, musst du einen Timer einsetzen, weil dein Prozessor viel zu schnell ist, als dass du die Veränderungen, die er durch eine Schleife berechnet sehen könntest.
    Ich nehme an, dass du VB.NET verwendest, da du Me.backcolor schreibst und nicht Form1.backcolor .

    Also hier ein Beispiel was direkt beim Starten des Programms anfängt die Hintergrundfarbe nach deinen Wünschen zu ändern. (Hab ich selber gecodet und auch getestet - funktioniert ;-))

    Public Class Form1
        Dim i As Integer
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            i = 0
            Timer1.Start()
        End Sub
    
        Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
            Me.BackColor = Color.FromArgb(i, 50, 50)
            i = i + 1
        End Sub
    End Class


    Die Geschwindigkeit wird über das Intervall des Timers geregelt.

    Beitrag zuletzt geändert: 1.12.2009 15:51:30 von rms
  4. Autor dieses Themas

    impirial-war

    impirial-war hat kostenlosen Webspace.

    Danke! Jetzt klappt es.
  5. Es wäre auch Möglich, einfach nach jeder Veränderung den Befehl
    Application.DoEvents()

    aufzurufen.


    Implementiert in deine Variante:
    Do
    I=I+1
    Me.backcolor=RGB(I, 50, 50)
    Application.DoEvents()
    Loop until I=100


    Oder hier eine andere Variante:
    For i As Integer = 0 to 100
      Me.BackColor = RGB(i, 50, 50)
      Application.DoEvents()
    Next



    Wenn du Application.DoEvents() verwendest, brauchst du keinen zusätzlichen Timer verwenden, aber kannst, während die "Veränderung läuft" nicht wirklich auf das Formular zugreifen (<-- Dieses reagiert dann etwas verlangsamt)
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!