Mudar tonalidade de cor em rumtime
09/03/2006
0
Como faço para capturar uma cor e diminuir ou aumentar sua tonalidade em tempo de execução ?
Exemplo:
Criei um componente que tem o fundo da mesma cor do form (quando muda a cor do form tb muda a cor do componente).
porem este componente tem a borda superior da mesma cor com tonalidade menor, e a borda inferior com tonalidde maior.
desde ja agradeço
Ricardo Oliveira
Posts
09/03/2006
Edilcimar
09/03/2006
Ricardo Oliveira
exp: (mais ou menos isso)
MeuComponente.Color := Form.Color;
09/03/2006
Edilcimar
MeuComponente.Color := Form.Color + inttohex(100);
se aceitar então dá para vc mudar
09/03/2006
Marcelo.l
Tente as funções abaixo:
function ClareiaCor(BaseColor: TColor; Adjust: Integer): TColor; begin Result := RGB(Min(GetRValue(ColorToRGB(BaseColor)) + Adjust, 255), Min(GetGValue(ColorToRGB(BaseColor)) + Adjust, 255), Min(GetBValue(ColorToRGB(BaseColor)) + Adjust, 255)); end; function EscureceCor(BaseColor: TColor; Adjust: Integer): TColor; begin Result := RGB(Max(GetRValue(ColorToRGB(BaseColor)) - Adjust, 0), Max(GetGValue(ColorToRGB(BaseColor)) - Adjust, 0), Max(GetBValue(ColorToRGB(BaseColor)) - Adjust, 0)); end;
Por exemplo:
MeuComponente.Color := ClareiaCor(Form.Color, 30);
Espero ter ajudado
09/03/2006
Marcelo.l
Faltaram duas funções...
function Min(X, Y: Integer): Integer; begin if X < Y then Result := X else Result := Y; end; function Max(X, Y: Integer): Integer; begin if X > Y then Result := X else Result := Y; end;
Clique aqui para fazer login e interagir na Comunidade :)