Dispose | Treeview

Delphi

24/09/2007

Estou migrando um sistema de Delphi 5 para o BDS 2006.

No evento onDeletion de um treeview.. tem um Dispose(Node.Data).

No BDS... quando aciono este comando... está dando AccessViolation.

Alterei para
if Assigned(Node.Data) then
Dispose(Node.Data)

mas mesmo assim ele entra no Dispose...

Alguém tem uma ideia de como resolver!?


Diegus

Diegus

Curtidas 0

Respostas

Massuda

Massuda

24/09/2007

Experimente fazer...
if Assigned(Node.Data) then begin 
  Dispose(Node.Data);
  Node.Data := nil;
end;



GOSTEI 0
Diegus

Diegus

24/09/2007

Experimente fazer...
if Assigned(Node.Data) then begin 
  Dispose(Node.Data);
  Node.Data := nil;
end;


Massuda.. desde já agradeço a atenção...
Mas ainda não funcionou... Invalid Variant Type!

Mais alguma sugestão!?!? Preciso muito resolver isto!

Valeu!


GOSTEI 0
Paulo Samurai

Paulo Samurai

24/09/2007

Outra sugestão baseada na do colega massuda:

  
var
  p: ^UmTipo;
begin
  p := Node.Data; 
  if p <> nil then dispose(p);
  Node.Data := nil;


p deve ser do mesmo tipo que voce armazena em node.data

[]´s


GOSTEI 0
POSTAR