Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: Liuku väristä toiseen

hunajavohveli [04.05.2005 15:07:45]

#

Keskustelussa oli vähän aikaa sitten puhetta liukuväristä, joten tein tämmöisen simppelin ohjelman, jolla pystyy määrittämään liukuvärin kahden värin välillä. Ohjelmalle syötetään ensin kaksi väriä ja sitten kerrotaan, kuinka paljon kumpaakin väriä painotetaan. Toimintaa on vähän vaikea selittää tämän tarkemmin. Kokeile itse. :)

Formille pitää laittaa HScrollBar, TextBox ja kaksi CommandButtonia. CommandButtoneiden Style-arvo täytyy olla Graphical.

Option Explicit
Dim Res As Long
Dim r1 As Long, g1 As Long, b1 As Long
Dim r2 As Long, g2 As Long, b2 As Long
Private Sub Form_Load()

' Asetetaan toiseksi väriksi musta ja toiseksi valkoinen
r1 = 0: g1 = 0: b1 = 0
r2 = 255: g2 = 255: b2 = 255

Res = 255                               ' Kuinka monta eri astetta
HScroll1.Max = Res                      ' Astemäärä maksimiarvoksi
HScroll1.LargeChange = 15
Command1.Caption = "Määritä väri 1"
Command2.Caption = "Määritä väri 2"
Text1.Text = 0

End Sub
Private Sub Command1_Click()

' Kysytään väriarvot ja näytetään väri CommandButtonissa
r1 = InputBox("Punainen? (0-255)")
g1 = InputBox("Vihreä? (0-255)")
b1 = InputBox("Sininen? (0-255)")
Command1.BackColor = RGB(r1, g1, b1)

End Sub

Private Sub Command2_Click()

' Kysytään väriarvot ja näytetään väri CommandButtonissa
r2 = InputBox("Punainen? (0-255)")
g2 = InputBox("Vihreä? (0-255)")
b2 = InputBox("Sininen? (0-255)")
Command2.BackColor = RGB(r2, g2, b2)

End Sub
Private Sub HScroll1_Change()
Dim r As Long, g As Long, b As Long
Dim I As Single

Text1.Text = HScroll1.Value        ' Näytetään aste TextBoxissa
I = HScroll1.Value / Res           ' Määritetään kerroin (0-1)
r = r1 + (r2 - r1) * I             ' Lasketaan väriarvot
g = g1 + (g2 - g1) * I
b = b1 + (b2 - b1) * I
Form1.BackColor = RGB(r, g, b)

End Sub

Private Sub Text1_Change()

' Vaihdetaan astetta, jos arvo on kunnollinen
If Text1.Text = "" Then Exit Sub
If Val(Text1.Text) >= 0 And Val(Text1.Text) <= Res Then HScroll1.Value = Val(Text1.Text)

End Sub

Harrastelija [05.05.2005 13:39:47]

#

Jeh, onhan se ihan kiva :)

Gary534 [07.05.2005 21:52:58]

#

Tää on hyvä sillä kun muuttaa ton form_load() siitä ton
text1.text = 0 jutun toiste päin

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta