Fórum Pintar no canvas #203746

31/12/2003

0

Estou usando o metodo draw para pintar uma imagem no canvas de um TCustomControl, porem quando ele sai da tela e volta a imagem desaparece, para que a imagem continue eu preciso sobreescrever o metodo WMPaint ? Ficar pintando a imagem toda hora nao iria consumir muito processamento ? Tipo, eu usava um timage no TCustomControl, mais pensei em melhorar meu component para consumir menos memoria e resolvi tirar o timage e pintar direto no canvas, alem de tirar os tlabels tbm e escrever com textout. Existe alguma outra maneira de fazer a imagem pintada com draw ficar nao desaparecer, inclusive se tiver barra de rolagem e rolar para fora da visao do componente depois voltar a imagem some tbm, alguem pode me ajudar ?
Obrigado
Emilio


Emilio.cini

Emilio.cini

Responder

Posts

02/01/2004

Emilio.cini

ninguem tem uma ideia ai nao ??? :lol:


Responder

Gostei + 0

02/01/2004

Beppe

Quando você pinta uma coisa num canvas, isto persiste até que o canvas seja sobrescrito. Se este canvas vem de um TImage, a imagem do canvas não é perdida quando o controle é, mesmo que totalmente, oculto. Isto se deve ao fato de que o canvas do TImage é próprio, baseado em um TBitmap. Já um TCustomControl compartilha uma área do canvas do desktop, então você precisa informá-lo quando deve ser repintado.

Em suma, você soprepõe o método protegido Paint, e coloca o código que pinta ali.


Responder

Gostei + 0

02/01/2004

Emilio.cini

Tem como eu definir para o canvas so for pintado quando eu chamar a funcao paint, pra nao ficar atualizando sozinho ?


Responder

Gostei + 0

02/01/2004

Beppe

Bem, não tem sentido fazer isso, afinal você não quer que fiquem apagadas algumas partes...


Responder

Gostei + 0

26/04/2004

Nigro

ondee posso conseguir o código para desenvolver uma ferramenta que faz a pintura dentro de um poliigono, como aquela do Paint?


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar