Destruir checkbox.. como???

Delphi

18/07/2005

Pessoal estou tentando fazer uma procedure para destruir os checkbox que eu fiz.. mas esta dando um erro... alguem tem uma ideia como fazer isso??
procedure TFmPendencias.DestruirCheckBox; var Contador: Integer; begin for Contador:=0 to ComponentCount-1 do begin if components[contador] is TCheckBox then TCheckBox(components[contador]).Destroy; end; end;

Esse e o codigo... se alguem souber me ajudem por favor... brigadao


Japa

Japa

Curtidas 0

Respostas

Rjun

Rjun

18/07/2005

Tente fazer assim:


procedure TFmPendencias.DestruirCheckBox; 
var 
  Contador: Integer; 
begin 
  for Contador := (ComponentCount - 1) downto 0 do 
    if components[contador] is TCheckBox then 
      TCheckBox(components[contador]).Destroy; 
end; 



GOSTEI 0
Massuda

Massuda

18/07/2005

estou tentando fazer uma procedure para destruir os checkbox que eu fiz..
Se você criou o CheckBox com um Owner (parametro usado no Create) diferente de nil, você não precisa destruir o CheckBox, ele será automaticamente destruído pelo Owner.

Com relação ao código que você postou...
for Contador:=0 to ComponentCount-1 do
...faça o loop de trás para frente, pois se você está destruindo os componentes, o valor do ComponentCount também está mudando, o que gera alguns erros estranhos; portanto, faça algo assim...
for Contador :=ComponentCount-1 downto 0 do...

Outra coisa, ao invés de escrever...
TCheckBox(components[contador]).Destroy;
...acostume-se a escrever
TCheckBox(components[contador]).Free;
...embora não esteja errado, o ideal é não chamar Destroy diretamente, mas sim usar Free.


GOSTEI 0
Japa

Japa

18/07/2005

Muito mas muitooo obrigado Rjun e Massuda.... Deu certinho :D


GOSTEI 0
POSTAR