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
Jeh, onhan se ihan kiva :)
Tää on hyvä sillä kun muuttaa ton form_load() siitä ton
text1.text = 0 jutun toiste päin
Aihe on jo aika vanha, joten et voi enää vastata siihen.