Miten saisi nopeasti pilkottua VB:n värikoodin kolmeksi väriksi, eli punaiseksi, vihreäksi ja siniseksi? Meinasin ensin tehdä tähän oman systeemin silmukoilla ja if-lausekkeilla, mutta siitä ei olisi tullut alkuunkaan nopea. Muistaakseni tämän sai kätevästi bittioperaattoreilla, mutta en nyt taas muista miten.
Edit: Taisin kysellä kerran samaa QB:n suhteen, mutta QB:ssähän on vain 64 eri "voimakkuutta" väreille, vaikka typerästi seuraavat värit on kuitenkin kerrottava 256:lla ja 65536:lla. Eli QB:ssä väliin jäisi käyttämättömiä värikoodeja.
R = V and 255
G = V\256 and 255
B = V\65536
Edit Korjasin R ja B
rgb(255, 0, 0) on punainen. Vai mitä okein tarkoitit
Edit: niin just ehdi vaikka väliin, setä
Tapoja on varmasti useampia, tässä on käytetty apuna jakolaskua ja jakojäännöstä.
Dim vari As Long Dim r As Integer, g As Integer, b As Integer vari = RGB(12, 34, 56) r = vari Mod 256 g = (vari \ 256) Mod 256 b = vari \ 65536 MsgBox r & " " & g & " " & b
Joo rndprogy, ymmärsit muuten oikein, mutta tarkoitin päinvastaista kääntämistä, että värikoodi puretaan väreiksi, eikä värit värikoodiksi. Tuo sedän esimerkki näkyisi toimivan.
Edit: Joo, Laaksosenkin koodi osoittautui hyödylliseksi.
Nopeaa keskustelua, kiitos taas kaikkien aktiivisten koodaajien ja Antti Laaksossen ;)
Aihe on jo aika vanha, joten et voi enää vastata siihen.