December 4
Estrazione dei componenti rosso, verde e blu (RGB) di un codice colore in Visual Basic 6.0 (VB6) è utile per la conversione di formati di dati di colore tra i diversi programmi. VB6 fornisce una funzione "RGB" per convertire i colori da loro componenti rossa, verde e blu in un tipo di dati "Long" numerica, ma manca qualsiasi funzione incorporata per convertire nell'altra direzione. Inoltre, i codici di colore in VB6 sono memorizzati utilizzando il formato Little Endian, byte significato sono immagazzinati nella memoria in ordine inverso. Estrarre i valori "RGB" da codici di colore con l'aggiunta di una subroutine per elaborare e convertire automaticamente i codici per voi.
1 Aprire il file VB6 in un editor, ad esempio Microsoft Visual Studio 6.0.
2 Creare una subroutine per convertire un codice di colore VB6 nelle sue componenti rosso, verde e blu aggiungendo il seguente codice nel file:
Public Sub Hex2RGB (lcolor As Long, R come Byte, g As Byte, B come Byte)
Dim HColor As String
Dim n As Byte
Dim strHexVal As String
strHexVal = Hex $ (lcolor)
strHexVal = Right ((strHexVal), 6)
Per n = 1 A (6 - Len (strHexVal))
HColor = HColor e "0"
Il prossimo
HColor = HColor & strHexVal
r = CByte ( "& H" & Right $ (HColor, 2))
g = CByte ( "& H" & Mid $ (HColor, 3, 2))
b = CByte ( "& H" & Left $ (HColor, 2))
End Sub
Il codice colore viene convertito da "Long" per "Hex" per l'elaborazione più facile. Il "diritto ((strHexVal), 6)" comando elimina tutti i caratteri in più all'inizio della stringa, ad esempio "& H". Il ciclo "per" aggiunge 0 di prima di ogni carattere di risolvere gli eventuali problemi di formattazione. VB6 utilizza little endian per memorizzare i valori di colore in modo che i byte "RGB" sono in realtà memorizzati in senso inverso come "BBGGRR." Il codice utilizza la funzione "CByte" per dividere a parte la stringa per recuperare i valori di rosso, verde e blu e ogni punto vendita come un "byte".
3 Dichiarare le variabili, impostare un colore e quindi chiamare la subroutine per convertire il codice del colore aggiungendo il seguente codice nella funzione:
Dim r, g, b As Byte
Lcolor Dim As Long
Lcolor = RGB (11, 200, 25)
Chiamare Hex2RGB (lcolor, r, g, b)
4 Salvare il file VB6, compilare ed eseguire il programma per convertire il codice colore.