Componente não é destruido
Olá amigos, vamos ver se alguém já passou por isso, tenho um vetor de 4 posições do componente panel, em tempo de execução coloco esses panels em um formulário e em determinado momento eu os destruo, o estranho é que o primeiro não esta sendo destruído, apenas os 3 restantes. O que eu não entendo é que os outros objetos foram criados com base no primeiro, onde eu apenas alterei as propriedades de acordo com o necessário.
Estou criando assim:
//panel1 recebe botões de sistema
vg_panel[1] := TPanel.Create(NIL);
WITH vg_panel[1] DO
BEGIN
Parent := Self;
Left := 16;
Top := 48;
Width := 489;
Height := 281;
TabOrder := 18;
Visible := TRUE;
END;
E destruindo assim:
vg_panel[1].Destroy;
vg_panel[1]:= NIL;
vg_panel[1].Free;
ou
FreeAndNil(vg_panel[1]);
Estou criando assim:
//panel1 recebe botões de sistema
vg_panel[1] := TPanel.Create(NIL);
WITH vg_panel[1] DO
BEGIN
Parent := Self;
Left := 16;
Top := 48;
Width := 489;
Height := 281;
TabOrder := 18;
Visible := TRUE;
END;
E destruindo assim:
vg_panel[1].Destroy;
vg_panel[1]:= NIL;
vg_panel[1].Free;
ou
FreeAndNil(vg_panel[1]);
Du_nirvana
Curtidas 0
Respostas
Du_nirvana
31/01/2008
Ninguém pode me ajudar??
GOSTEI 0
Djjunior
31/01/2008
estranho kra eu tenho uma rotina similar e funcina, a titulo de exemplo segue abaixo
procedure TForm2.DestroiPanels; var i: integer; panel: TPanel; begin for I := 1 to IndCreat do begin panel := TPanel(FindComponent(´panel´ + intToStr(i))); if panel <> nil then FreeAndNIl(panel); end; IndCreat := 0; end; o IndCreat é uma variável que vou incrementando a medida que tenho vou criando os componentes
GOSTEI 0
Du_nirvana
31/01/2008
Tenho vários outros componentes e faço da mesma maneira, mas com esse infeliz não está dando certo....
GOSTEI 0
Rodc
31/01/2008
Seu vetor não começa na posição zero?
GOSTEI 0
Du_nirvana
31/01/2008
O de componente não, e no momento em que eu crio eu não uso variável como índice, eu uso o numero 1 mesmo...
GOSTEI 0
Du_nirvana
31/01/2008
Alguém tem alguma idéia ?
GOSTEI 0
Du_nirvana
31/01/2008
Olá senhores, não sei ao certo o porque, mas ao passar o meu vetor de [1..4] para [0..4] deu certo, não alterei nenhuma vírgula a mais e tudo ficou OK, se alguém souber o porque posta ai, flw, abraços...
GOSTEI 0
Djjunior
31/01/2008
vc declarou seu vetor como [b:061ea1cd08]array[0,4][/b:061ea1cd08] não ? ou seja vc tem 5 elementos no vetor
GOSTEI 0