uso do canvas.copymode

Delphi

16/10/2003

Gostaria de saber como fazer p/ carregar um bitmap qualquer em cima de um desenho, mas sem apagar o que existe ... tipo a propriedade :

canvas.penmode := pmNotXor;

da caneta ... o modo normal apaga o que ja estiver embaixo, trocando pelo que qro desenhar .... o mode cmSrcErase quase funciona, mas deixa onde nao quero desenhar (que é branco) preto ....

Alguem sabe outro modo p/ usar, ou uma combinacao deles p/ conseguir o mesmo efeito do pmNotXor do penmode ????


@dils0n

@dils0n

Curtidas 0

Respostas

@dils0n

@dils0n

16/10/2003

Se o problema é q nao estao entendendo meu problema, tb posso dizer q qro um bmp ´transparente´ ... onde o bitmap source for branco, nao pintar em cima do destino !!!!


GOSTEI 0
Cebikyn

Cebikyn

16/10/2003

Use o BrushCopy:

Canvas.BrushCopy(DestRect, Bitmap, SourceRect, clWhite);


Em que DestRect é um TRect que especifica qual área do canvas será usada, Bitmap é o bitmap que se deseja copiar, SourceRect é um TRect que especifica qual parte do bitmap será copiada e clWhite é a cor que não será copiada (a cor ´transparente´, no seu exemplo).

Qq coisa deixe uma msg...


GOSTEI 0
@dils0n

@dils0n

16/10/2003

Eu nao entendo, mesmo usando o BrushCopy, ele ainda assim me sacaneia ... hehe. Mas eu consegui driblar isso usando o ImageList - apesar q nao é a melhor solucao, ja q se eu mudar o bitmap nao vai mudar automaticamente o ImageList ... mas pelo menos assim funciona !!

Valeu pela ajuda !!


GOSTEI 0
Beppe

Beppe

16/10/2003

Tem duas propriedades de TBitmap relevantes. Sete Transparent para True e TransparentColor para clWhite.

Ataliba


GOSTEI 0
POSTAR