Kleuren worden in Visual Basic bewaard in zogenaamde kleurconstanten (ColorConstants). In feite is dit een getal waarin de drie kleurcomponenten, rood groen en blauw, zitten opgeslagen als volgt:
Als voorbeeld hebben we een programma "Waaier"geschreven waarmee
u een kleurenwaaier kunt tekenen.
U kiest de linkerkleur, en de rechterkleur van de waaier. En het programma
berekent alle tussenschakeringen. Door op het formulier te klikken worden
voor de start- en eindwaarde van de waaierkleuren, én voor de achtergrondkleur
van het formulier willekeurige waarden gekozen.
Een ander kan er als hieronder uitzien:
of: |
![]() |
In het programma werd een functie KleurComp gebruikt die de drie
kleurwaarden rood, groen en blauw uit een kleurwaarde berekent:
| Private Sub KleurComp(ByVal C As ColorConstants, _ Rood As ColorConstants, _ Groen As ColorConstants, _ Blauw As ColorConstants) 'Kleur = Rood + 256*Groen + 256*256*Blauw 'Bereken de rood component Rood = C Mod 256 ' rest bij deling door 256 'groen C = (C - Rood) / 256 ' C = Groen + 256*Blauw Groen = C Mod 256 'en blauw Blauw = (C - Groen) / 256 End Sub |
De Kleur wordt als de eerste parameter C meegegeven. De drie basiskleuren worden berekend in de parameters Rood,Groen en Blauw.
ByVal en ByRef
Als u een parameter ByVal meegeeft, kunt u de waarde van die
parameter niet veranderen in de functie. Voor de kleurconstante c is dat
ook niet nodig. Als u de Byref meegeeft kunt u de waarde wél
veranderen in de procedure. ByRef is tevens de defaultwaarde.
Dus de parameters Rood,Groen en Blauw kunnen in de functie aangepast (berekend)
worden.
Om de drie kleurencomponenten te van een kleur Eindkleur te berekenen en de waarden voor rood, groen en blauw op te slaan in de variabelen RoodE, GroenE en BlauwE moet u deze functie dus als volgt aanroepen:
KleurComp Eindkleur, RoodE, GroenE, BlauwE