Fórum Mudar tonalidade de cor em rumtime #315550
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
Curtir tópico
+ 0Posts
09/03/2006
Edilcimar
Gostei + 0
09/03/2006
Ricardo Oliveira
exp: (mais ou menos isso)
MeuComponente.Color := Form.Color;
Gostei + 0
09/03/2006
Edilcimar
MeuComponente.Color := Form.Color + inttohex(100);
se aceitar então dá para vc mudar
Gostei + 0
09/03/2006
Ricardo Oliveira
Gostei + 0
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
Gostei + 0
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;
Gostei + 0
13/03/2006
Ricardo Oliveira
Valeu,
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)