Avatar billede vbghost Nybegynder
01. maj 2000 - 19:13 Der er 11 kommentarer og
1 løsning

RGB af en farve!...

Hvordan får jeg R, G eller B fra eks. en farve...

eks.
Sådan at jeg kan Red fra en vbfarve (eks. fra BackColor)...
Avatar billede hougaard Nybegynder
01. maj 2000 - 19:46 #1
Her er en sub, som kan løse dit problem

Public Sub UnRGB(Color As Integer, ByRef R As Integer, G As Integer, B As Integer)
  B = Color / 65536
  Color = Color - B * 65536
  G = Color / 256
  R = Color - G * 256
End Sub
Avatar billede hougaard Nybegynder
01. maj 2000 - 19:48 #2
Rettelse:

Public Sub UnRGB(Color As Long, ByRef R As Integer, G As Integer, B As Integer)
  B = Color / 65536
  Color = Color - B * 65536
  G = Color / 256
  R = Color - G * 256
End Sub
Avatar billede tdaugaard Nybegynder
01. maj 2000 - 20:11 #3
<< hougaard >>

ByRef R As Integer

hvad skal ByRef gøre godt for ?? Alle variabler er bliver per default passed by reference. Og du har det ikke på hverken G eller B kan jeg *slet* ikke se nogen grund til at bruge den.
Avatar billede hougaard Nybegynder
01. maj 2000 - 20:22 #4
Du har helt ret!
Avatar billede hougaard Nybegynder
01. maj 2000 - 20:28 #5
i øvrigt virker sub'en heller ikke i alle tilfælde! - beklager!

Prøv den her istedet:

Public Sub UnRGB(Color As Long, R As Integer, G As Integer, B As Integer)
  Dim L As Long
 
  Color = Abs(Color)
 
  L = Int(Color / 256)
  R = Color - L * 256
  Color = Int(Color / 256)
 
  L = Int(Color / 256)
  G = Color - L * 256
  B = Int(Color / 256)
End Sub


Avatar billede vbghost Nybegynder
01. maj 2000 - 20:58 #6
jeg prøver lige..
Avatar billede vbghost Nybegynder
01. maj 2000 - 21:02 #7
sorry, men hvordan bruger jeg koden?
----

Avatar billede vbghost Nybegynder
01. maj 2000 - 21:03 #8
jeg vil have sådan en funktion: at jeg kan sende eks. Picture1.Backcolor og at den kan Outputte... Red
-----

Avatar billede hougaard Nybegynder
01. maj 2000 - 21:05 #9
eks:

Dim Red as integer
Dim Green as integer
Dim Blue as integer

UnRGB Form1.BackColor, Red, Green, Blue

-- Ikke testet --
Avatar billede hougaard Nybegynder
01. maj 2000 - 21:07 #10
Hvis du bare vil have Red, kan du bare gøre sådan:

Red = int(Picture1.Backcolor / 256)
Avatar billede hougaard Nybegynder
01. maj 2000 - 21:09 #11
Sludder!
Sådan:

Dim L As Long

L = Int(Picture1.Backcolor / 256)
R = Picture1.Backcolor - L * 256
Avatar billede vbghost Nybegynder
01. maj 2000 - 21:16 #12
Puha... The code works...

det var bare mig...
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