Avatar billede tdaugaard Nybegynder
10. september 2001 - 20:25 Der er 8 kommentarer og
2 løsninger

RGB color fade ?

Jeg skal bruge noget kode der kan fade fra een RGB farve til en anden, om den bliver angivet med en Long og f.eks. RGB(58, 110, 165) eller om man angiver R, G og B som seperate parametre er ligegyldigt, så længe man SELV kan vælge farverne uden at skulle lave noget om.

Jeg har, uden success søgt på PSC (www.planetsourcecode.com) men har intet fundet der kunne bruges.

ActiveX\'s har ingen interesse.
Avatar billede mukanus Nybegynder
10. september 2001 - 20:35 #1
2 sek.
Avatar billede mukanus Nybegynder
10. september 2001 - 20:37 #2
http://users.theroom.dk/digiman/fade.js kan du hente scriptet.

Så skal du bare sætte <script language=\"javascript\" type=\"text/javascript\" src=\"fade.js\"></script> ind i dit <head> tag og så huske at lave linket sådan <a href=\"http://www.ditlink.dk\" class=\"fade\" name=\"link1\">linktekst</a>
ellers virker det ikke. For at ændre på farverne skal du bare åbne fade.js med notepad, der er beskrivelse af hvordan det klares.

smart ik\'  c\",)

det virker og det ser vildt fedt ud !!

// Mu Kanus
Avatar billede tdaugaard Nybegynder
10. september 2001 - 20:39 #3
Lagde du mærke til at der står \"PROGRAMMERING: VISUAL BASIC\"!! Og IKKE JavaScript!
Avatar billede mukanus Nybegynder
10. september 2001 - 20:40 #4
arg undskyld damn !!!

men det er også fedt !!
Avatar billede tdaugaard Nybegynder
10. september 2001 - 20:43 #5
hæ hæ :o)
Avatar billede clausjacobsen Nybegynder
10. september 2001 - 21:36 #6
Ok, jeg ved det er hurtigt, men det kan måske gi\' lidt forståelse, hvis ikke allerede har den ;-)


Option Explicit
Private Declare Sub Sleep Lib \"kernel32\" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
Dim a As Byte
Dim b As Byte
Dim c As Byte

For a = 0 To 254
Sleep 50
Me.Refresh
Me.Show
lblColor.BackColor = RGB(a, b, c)
lblColor.Refresh
Next a

a = 0

For b = 0 To 254
Sleep 50
Me.Refresh
Me.Show
lblColor.BackColor = RGB(a, b, c)
lblColor.Refresh
Next b

b = 0

For c = 0 To 254
Sleep 50
Me.Refresh
Me.Show
lblColor.BackColor = RGB(a, b, c)
lblColor.Refresh
Next c

End Sub

Pfttt
ClausJacobsen
Avatar billede tdaugaard Nybegynder
10. september 2001 - 22:09 #7
ClausJacobsen:> Det der er ikke den slags fade jeg vil have.

Jeg skal have en der fader mellem to farver som JEG kan vælge ligesom jeg har lyst uden at skulle ændre halvdelen af koden.
Avatar billede ea_data Nybegynder
11. september 2001 - 20:13 #8
Hej

Her er en rutine hvor du kan indsætte en start og en slutfarve, som der så fades til.
Er det det du ønsker

Option Explicit
Private Declare Sub Sleep Lib \"kernel32\" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()
Dim x As Integer
Dim a As Byte
Dim b As Byte
Dim c As Byte
Dim fraR As Byte
Dim fraG As Byte
Dim fraB As Byte
Dim tilR As Byte
Dim tilG As Byte
Dim tilB As Byte
\'her angives de to farver
\'Angiv farve 1 -------
fraR = 0
fraG = 100
fraB = 66
\'angiv farve 2 -------
tilR = 254
tilG = 0
tilB = 25
\'----------------------
a = fraR
b = fraG
c = fraB
For x = 0 To 254

If fraR > tilR And a <> tilR Then a = a - 1
If fraR < tilR And a <> tilR Then a = a + 1

If fraG > tilG And b <> tilG Then b = b - 1
If fraG < tilG And b <> tilG Then b = b + 1

If fraB > tilB And c <> tilB Then c = c - 1
If fraB < tilB And c <> tilB Then c = c + 1

Sleep 10
Me.Refresh
Me.Show
DoEvents
lblcolor.BackColor = RGB(a, b, c)
lblcolor.Refresh
Next


Avatar billede tdaugaard Nybegynder
11. september 2001 - 20:19 #9
Well .. nu har jeg faktisk lavet min egen (lavede den for nogle timer siden):

Private Sub FadeRGB(Destination As Object, Size As RECT, fRed As Integer, fGreen As Integer, fBlue As Integer, tRed As Integer, tGreen As Integer, tBlue As Integer, gWay As Byte)
    Dim r As Byte, g As Byte, b As Byte

    r = fRed: g = fGreen: b = fBlue

    Do
        If r < tRed Then r = r + 1
        If g < tGreen Then g = g + 1
        If b < tBlue Then b = b + 1

        i = i + 1
    Loop Until (r = tRed And g = tGreen And b = tBlue)

    t = ((Size.Right - Size.Left) / 15) / i
    r = fRed: g = fGreen: b = fBlue

    i = IIf(gWay = 0, 0, (i * t) - t)
    Do
        Destination.Line (i * 15, 0)-((i + t) * 15, Size.Bottom - Size.Top), RGB(r, g, b), BF
        If r < tRed Then r = r + 1
        If g < tGreen Then g = g + 1
        If b < tBlue Then b = b + 1

        i = IIf(gWay = 0, i + t, i - t)
        DoEvents
    Loop Until (r = tRed And g = tGreen And b = tBlue)
End Sub

sååe ... du bliver nok negativ hvis jeg tager alle 100 tilbage ;o) så du får 50 point og jeg tager selv 50 .. ok ?
Avatar billede ea_data Nybegynder
11. september 2001 - 20:35 #10
OK!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester