Avatar billede martin Nybegynder
30. maj 2000 - 15:36 Der er 10 kommentarer og
1 løsning

RGB => Webfarver

Hej,

Jeg er ny i VB og kunne godt tænke mig at vide hvordan jeg får lavet RGB farver om til Webfarver?

Eks. RGB(255,0,0) = #FF0000

Og ja, jeg er startet med at lave et farve vælger program, mangler bare at få andet end RGB ud af det :o)
Avatar billede jper Nybegynder
30. maj 2000 - 16:33 #1
Nedenstående opbygger en String med det ønskede format....

Dim lngRGBNumber As Long
Dim strHexNumber As String
Dim intCounter As Integer

'Skal være en long da integer ikke kan rumme værdierne
lngRGBNumber = RGB(255, 0, 0)

'Husk HEX funktionen returnere en string
strHexNumber = Hex(lngRGBNumber)

'Lidt strengmanipulation fordi HEX() ikke returnere bagved stillede numre og vi skal bruge FF0000
If Len(strHexNumber) < 6 Then
    intCounter = 6 - Len(strHexNumber)
    For intCounter = 1 To intCounter
        strHexNumber = strHexNumber + "0"
    Next intCounter
End If
strHexNumber = "#" + strHexNumber
'Vis mig resultat i en MsgBox
MsgBox strHexNumber
Avatar billede hojou Nybegynder
30. maj 2000 - 16:59 #2
Du kunne bruge:

strHexval = "#" & Right("00000" & Hex(RGB(CLng(red), CLng(green), CLng(blue))), 6)

RGB tager long. Hex returnerer mellem 0 og FFFFFF så du "padder med 5 0'er - og sætter en # foran.
Avatar billede vbghost Nybegynder
30. maj 2000 - 19:56 #3
Du kan bruge denne function (dog skal du huske at sende R,G,B)

Function RGB2HEX(Color As String) As String
Dim mindre_16 As Boolean
Dim f, tmpClr

If Color < 16 Then
mindre_16 = False
Else
mindre_16 = True
End If


Do
f = Color Mod 16
Color = Color / 16
Color = Int(Color)
f = Hex(f)
tmpClr = f + tmpClr
Loop Until Color = 0

If mindre_16 = True Then
    RGB2HEX = tmpClr
Else
    RGB2HEX = "0" + tmpClr
End If
End Function
Avatar billede hojou Nybegynder
31. maj 2000 - 09:25 #4
Ja hvorfor gøre noget nemt når man kan gøre det svært?
Avatar billede vbghost Nybegynder
31. maj 2000 - 17:38 #5
For at spare kræfter!

Hoju: I din kan man ikke sende G, man skal sende RGB, mens...

Og denne function er trukket ud min program
Avatar billede hojou Nybegynder
31. maj 2000 - 17:58 #6
Hehe
Avatar billede martin Nybegynder
05. juni 2000 - 19:27 #7
>hojou

Jeg har brugt dit svar... da det var den nemmeste kode. Men du har ikke valgt Svar, da du svarrede, så jeg kan ikke give dig points før du svarre :o)
Avatar billede martin Nybegynder
05. juni 2000 - 22:05 #8
Hmmm... der var jeg for tideligt ude. Efter et gennemtjek af alle tre koder, så er vbghost's den eneste som virker :o)

Forresten, vbghost, er koden også Web-color-safe?
Avatar billede vbghost Nybegynder
06. juni 2000 - 22:39 #9
JA!
Avatar billede vbghost Nybegynder
06. juni 2000 - 22:41 #10
jeg buger den til i mine programmer (HTML editor...)
Avatar billede hojou Nybegynder
17. juni 2000 - 12:34 #11
martin:
Min kode virker fint - den bruger jeg selv, men jeg har ikke brug for pointene og da jper svarede først (og hans iøvrigt også virker) burde du give dem til ham :)
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