Fórum Remover imagem desenhada em um TImagem #420798

31/07/2012

0

Dei uma pesquisada aqui no fórum mas não achei.

Estou desenhando a minha imagem assim:

begin

  imgExemplo:= TPNGGraphic.Create;

  Try
    Try
       imgExemplo.LoadFromFile(figura); 
       Image1.Canvas.Draw(H,V,imgExemplo);
  Except

      ShowMessage( Arquivo não foi localizado !);
  end;

  finally
  imgExemplo.Free;
  end;

No botão: Desenha(C:\Imagem.png,10,20);


Já ta adicionando a imagem normal, como faço pra remover essa imagem que ta desenhada em cima do meu TImagem ?

Obs: Preciso remover somente a imagem adicionada, pq posso ter mais de uma imagem no TImagem.

[]s
Vander Carlos

Vander Carlos

Responder

Posts

31/07/2012

Joel Rodrigues

Você pode desenhar várias imagens sobre o TImage e quer remover apenas a última? Acredito não ser possível.
Responder

Gostei + 0

31/07/2012

Ewerton Rodrigues

Não sei se é isto mesmo
Mas você poderia fazer o IMAGE receber NIL

ex: image1.picture := NIL;

Responder

Gostei + 0

31/07/2012

Vander Carlos

Eu não quero remover a última, quero remover independente dela ser a primeira ou a última.

Eu tenho várias imagens que podem ser adicionadas em cima dessa TImagem.

Ex:

imgExemplo1: TPNGGraphic;
imgExemplo2: TPNGGraphic;
imgExemplo3: TPNGGraphic;

Image1.Picture:= nil; //Assim ele remove tudo.


Minha ideia é fazer isso:

[url]http://totalclinic.com.br/wp-content/gallery/odontograma/odontograma_0.png[/url]

[]s
Responder

Gostei + 0

01/08/2012

Joel Rodrigues

Bom, se você se refere a desenhar as imagens dos dentes, uma ideia é você definir áreas para cada dente. Assim, para excluir uma imagem, bastaria desenhar um retângulo preenchido sobre a mesma.

Porém, se você deseja fazer a parte dos desenhos sobre as imagens dos dentes (contornos e marcas), ainda acredito não ser possível, infelizmente.
Responder

Gostei + 0

01/08/2012

Vander Carlos

Todas essas imagens que estão sobre os dentes estão prontas, então é só adicionar a posição delas sobre os dentes.

Cada dente desse vai ser uma Image, e cada dente vai ter um PopupMenu1 para selecionar a imagem.

Deu pra entender melhor?

[]s
Responder

Gostei + 0

01/08/2012

Joel Rodrigues

Então, para limpar o canvas, tente usar o TCanvas.Refresh ou TImage.Repaint.
Responder

Gostei + 0

01/08/2012

Vander Carlos

Tentando usar o Refresh dessa forma:

imgExemplo.Canvas.Refresh;


Me retornou esse erro:

Access violation at address 00431BB7


Ai tirei ele do finally:

imgExemplo:= TPNGGraphic.Create;
  Try
  //  Try

  imgExemplo.LoadFromFile(figura);
  Image1.Canvas.Draw(H,V,imgExemplo);

  Except
      ShowMessage( Arquivo não foi localizado !);
  end;
 // finally
 // imgExemplo.Free;
  end;
//end;


Depois disso ele não retornou o erro mas também não fez nada.
Responder

Gostei + 0

01/08/2012

Joel Rodrigues

Não é no imgExemplo e sim no Image1.Canvas.
Responder

Gostei + 0

01/08/2012

Vander Carlos

Também não faz nada, mas se dessa forma ele vai remover todas as imagens que foram criadas em cima dele nao ?

[]s
Responder

Gostei + 0

01/08/2012

Joel Rodrigues

Sim, amigo, dessa forma o canvas será limpo (ou deveria).
Bom, não conheço nenhuma rotina que possa lhe ajudar nesse caso, infelizmente.
Tente o Image1.Repaint, é minha última sugestão.
Responder

Gostei + 0

01/08/2012

Vander Carlos

Hm, ta certo.

Vou tentar aqui depois posto um resultado, valeu pela ajuda.

[]s
Responder

Gostei + 0

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

Aceitar