Qual a regra de TColor(clred or clyellow)?

Delphi

10/02/2004

Por que na seguinte linha o resultado é sempre amarelo?

TEdit(sender).Color := TColor(clred or clyellow);

e na seguinte é sempre branco?

TEdit(sender).Color := TColor(clblue or clyellow);


Grato. :evil:


Ronaldo

Ronaldo

Curtidas 0

Respostas

Fórum Vini

Fórum Vini

10/02/2004

Olá,
O tipo TColor ocupa 4 bytes na memória:
$00AABBCC
00 -> Indica como a cor deve ser representada de acordo com a paleta de cores;
AA -> Indica a quantidade de vermelho na cor;
BB -> Indica a quantidade de verde na cor;
CC -> Indica a quantidade de azul na cor;

Quando você coloca clRed or clYellow, o compilador faz um ou lógico com os bytes:
clYellow -> $0000FFFF
clRed    -> $00FF0000
--------------------------
            $00FFFFFF == clWhite


O mesmo vale para o clBlue e clYellow.


Espero ter ajudado.
Vinicius.


GOSTEI 0
Ronaldo

Ronaldo

10/02/2004

Ajudou sim, Obrigado. :oops:


GOSTEI 0
POSTAR