I'm still using the good old TColorDialog coming with Lazarus and Delphi basic components There are easy to use functions to extract r,g,b values from them.