Slik pakker du ut RGBS i VB6
Trekke de røde, grønne og blå (RGB) komponenter i en fargekode i Visual Basic 6.0 (VB6) er nyttig når du konverterer fargedataformater mellom ulike programmer. VB6 gir en "RGB" funksjon for å konvertere farger fra sine røde, grønne og blå komponentene i en numerisk "Long" datatype, men mangler noen innebygd funksjon for å konvertere i den andre retningen. I tillegg er fargekoder i VB6 lagret med lite endian format, noe som betyr bytes lagres i minnet i omvendt rekkefølge. Pakk "RGB" verdier fra fargekoder ved å legge til en subrutine å behandle og konvertere kodene automatisk for deg.
Bruksanvisning
1 Åpne VB6 filen i et redigeringsprogram, for eksempel Microsoft Visual Studio 6.0.
2 Lag en subrutine å konvertere en VB6 fargekode i sine røde, grønne og blå komponentene ved å legge til følgende kode i filen:
Public Sub Hex2RGB (LColor As Long, r As Byte, g As Byte, b As Byte)
Dim HColor As String
Dim n Som Byte
Dim strHexVal As String
strHexVal = Hex $ (LColor)
strHexVal = Right ((strHexVal), 6)
For n = 1 til (6 - Len (strHexVal))
HColor = HColor & "0"
neste
HColor = HColor & strHexVal
r = CByte ( "& H" & Right $ (HColor, 2))
g = CByte ( "& H" & Mid $ (HColor, 3, 2))
b = CByte ( "& H" & Left $ (HColor, 2))
End Sub
Fargekoden er konvertert fra "Long" til "Hex" for enklere behandling. Den "Right ((strHexVal), 6)" kommandoen fjerner noen ekstra tegn på begynnelsen av strengen som "& H." "For" loop legger 0-er før hver karakter å løse eventuelle formatering problemer. VB6 bruker lite endian å lagre fargeverdiene slik at "RGB" bytes faktisk lagret i revers som "BBGGRR." Koden bruker funksjonen "Cbyte" å splitte hverandre strengen for å hente de røde, grønne og blå verdier og lagre dem hver som en "Byte".
3 Erklærer variablene, sette en farge og deretter ringe subrutine å konvertere fargekode ved å legge til følgende kode i funksjon:
Dim r, g, b As Byte
Dim LColor As Long
LColor = RGB (11, 200, 25)
Ring Hex2RGB (LColor, r, g, b)
4 Lagre VB6 filen, kompilere og kjøre programmet for å konvertere fargekode.