Mega Code Archive

 
Categories / Delphi / Graphic
 

How to get an inverse color value to a color

Title: How to get an inverse color value to a color procedure EdBackColor(FontC: TColor; var EditableColor, ReadOnlyColor: TColor); // Calculate the luminance of the color using the simplified formula // luminance = 0.25*red + 0.625*green + 0.125*blue // If greater than 0.5, use a dark background var R, G, B: Integer; begin R := GetRValue(FontC) * 2; G := GetGValue(FontC) * 5; B := GetBValue(FontC); if R + G + B 1024 then begin EditableColor := clWhite; ReadOnlyColor := clSilver; end else begin EditableColor := clBlack; ReadOnlyColor := clDkGray; end; end;