Ir ao conteúdo

destruindo componente Timage


Fazzioni

Posts recomendados

Postado

Boa tarde, vamos ao que interessa, eu estou criando dinamicamente Imagens segue o código:


procedure TForm1.CriaPonto(x, y: Smallint; Cor: TColor);
Var
Image : TImage;
begin
Image := TImage.Create(self);
with Image do
begin
Parent := self;
Width := 30;
Height := 30;
Left := x;
Top := y;
Tag := 2;
Canvas.CopyRect(Rect(0,0,Width,Height), Image1.Canvas, Rect(x,y,x +Width,y +Height));
Canvas.Brush.Color:=cor;
Canvas.TextOut(5,5,'TESTE');
end;
end;

Mas toda vez q vou destruir aparece o erro 'List index out of bounds(ak vai o numero do componente)' , mas não são todas as imagem que dão erro, estou usando o seguinte código



var i : : Smallint;
begin
For i := 0 to ComponentCount -1 do
If (Components[i] is TImage) then
If (Components[i] as TImage).Tag = 2 then
(Components[i] as TImage).Free;
end;

O código parece estar todo certo, eu sempre uso Freeandnil, mas como eu estou falando de um componente... se alguém puder ajudar agradeço.

Postado

Fazzioni,

Mas toda vez q vou destruir aparece o erro 'List index out of bounds(ak vai o numero do componente)' , mas não são todas as imagem que dão erro, estou usando o seguinte código

var i: Smallint;
begin
For i := 0 to ComponentCount -1 do
If (Components[i] is TImage) then
If (Components[i] as TImage).Tag = 2 then
(Components[i] as TImage).Free;
end;

O código parece estar todo certo, eu sempre uso Freeandnil, mas como eu estou falando de um componente... se alguém puder ajudar agradeço.

Implemente o laço FOR usando downto; desta forma, ComponentCount será avaliado uma única vez e não haverá acessos indevidos.

for i := ComponentCount - 1 downto 0 do

[]'s

LNW

  • Moderador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...