Fórum Apagar um componente TImage em tempo de execução #368377

12/02/2009

0

Por favor,...
me ajudem,...
como apagar um timagem em tempo de execução?
criar é fácil agora apagar ta osso,....


Douglas Morette

Douglas Morette

Responder

Posts

12/02/2009

Maikel

Olá...

Mas você precisa mesmo excluir ele? nunca fiz isso.... nem sei se é possivel...
Você não consegue deixar ele como visible:=false ?

Se for para não exibir na tela.... oculta ele, creio que é mais prático.

Att

Maikel


Responder

Gostei + 0

12/02/2009

Douglas Morette

Olá... Mas você precisa mesmo excluir ele? nunca fiz isso.... nem sei se é possivel... Você não consegue deixar ele como visible:=false ? Se for para não exibir na tela.... oculta ele, creio que é mais prático. Att Maikel



Desde já agradeço pela atenção...

Mas... preciso apagar sim.
motivo: tenho uma imagem e nesta imagem eu clico em um determinado ponto e crio um marcador TImagem em cima desta imagem, é como se fosse uma legenda de ícones. eu escolho o ícone e clico em um ponto da imagem para criar o ícone da legenda que eu escolhi. só que se eu criar o icone errado, eu tenho que apagar ele...

dá para entender?


Responder

Gostei + 0

12/02/2009

Maikel

Entendi... acho que o código a seguir resolve o problema então... adapte sua forma de criação de componente em runtime e veja como remove-los.

procedure TForm1.btCriarClick(Sender: TObject);
var
  campo : TEdit;
begin
  Campo := TEdit.Create(Self);
  campo.Parent := Self;
  campo.Top := btCriar.Top + 40;
  campo.Left := btCriar.Left;
  campo.Name := ´Edit1´;
end;

procedure TForm1.btExcluirClick(Sender: TObject);
var
  Campo: TComponent;
begin
  Campo := FindComponent(´Edit1´);
  if not (Campo = nil) then begin
    Campo.Free;
  end;
end;


Att

Maikel


Responder

Gostei + 0

12/02/2009

Maikel

Entendi... acho que o código a seguir resolve o problema então... adapte sua forma de criação de componente em runtime e veja como remove-los.

procedure TForm1.btCriarClick(Sender: TObject);
var
  campo : TEdit;
begin
  Campo := TEdit.Create(Self);
  campo.Parent := Self;
  campo.Top := btCriar.Top + 40;
  campo.Left := btCriar.Left;
  campo.Name := ´Edit1´;
end;

procedure TForm1.btExcluirClick(Sender: TObject);
var
  Campo: TComponent;
begin
  Campo := FindComponent(´Edit1´);
  if not (Campo = nil) then begin
    Campo.Free;
  end;
end;


Att

Maikel


Responder

Gostei + 0

12/02/2009

Woinch

Se você quer remover o componente TImage que foi criado em tempo de execução basta dar um FreeAndNil(Nome); Caso você queira apagar apenas um pedaço da imagem que foi criado pelo Canvas o único jeito será utilizando o próprio Canvas para redesenhar a imagem onde você desenhou outra por cima antes.


Responder

Gostei + 0

14/02/2009

Douglas Morette

Entendi... acho que o código a seguir resolve o problema então... adapte sua forma de criação de componente em runtime e veja como remove-los.
procedure TForm1.btCriarClick(Sender: TObject);
var
  campo : TEdit;
begin
  Campo := TEdit.Create(Self);
  campo.Parent := Self;
  campo.Top := btCriar.Top + 40;
  campo.Left := btCriar.Left;
  campo.Name := ´Edit1´;
end;

procedure TForm1.btExcluirClick(Sender: TObject);
var
  Campo: TComponent;
begin
  Campo := FindComponent(´Edit1´);
  if not (Campo = nil) then begin
    Campo.Free;
  end;
end;
Att Maikel



agradeço a todos a atenção

resolvido esse problema

e qual era? -> eu criava um timagem com um função de deleção chamando-a pelo onclick da timagem criada, ai quando eu clicava em cima da imagem a ser excluida, excluia e dava erro pq tinha um evento onclick direcionado para aquela timagem... mas resolvido e obrigado mesmo.......



mais já vou deixar uma e essa eu nunca fiz mais preciso saber:
Como dar um printscreen em uma determinada parte da tela e e salva em um arquivo de imagem?
desde já agradeço...


Responder

Gostei + 0

16/02/2009

Woinch

Criei agora, não testei...

  keybd_event(VK_SNAPSHOT, 0, 0, 0);
  Sleep(100);
  Image1.Picture.LoadFromClipBoardFormat(CF_BITMAP, ClipBoard.GetAsHandle(CF_BITMAP),0);
  Image1.Picture.SaveToFile(´C:\nome do arquivo.bmp´);


PS: Quando for perguntar algo que foge do assunto inicial do tópico original favor criar um novo tópico para que o fórum fique melhor organizado.

Muito obrigado...


Responder

Gostei + 0

18/02/2009

Alexcyberstar

Ja tentou assim?

Image1.Picture := nil;


Responder

Gostei + 0

18/02/2009

Alexcyberstar

Explicando melhor....

Image1.Picture := nil; //Limpa imagem no Image1 apresentada

FreeAndNil(Image1); //Elimina o componente Image1 do Form


Responder

Gostei + 0

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

Aceitar