Pergunta

No meu formulário eu tenho um IWTreeView e dois botões. Um botão exclui alguns IWTreeViewItems, os outros lançamentos a forma:

procedure TIWForm1.IWButton1Click(Sender: TObject);
begin
  IWTreeView1.Items[0].Subitems.Clear;
end;

procedure TIWForm1.IWButton2Click(Sender: TObject);
begin
  Release;
end;

A liberação do formulário após a exclusão do IWTreeViewItems causa uma exceção:

Mensagem de erro levantada pela aplicação: Violação de acesso no 004E0D8A endereço no módulo 'TryTree.exe'. Leitura do endereço 00000000

Quando há outra forma ativa eo aplicativo não é terminada por este lançamento forma, a mensagem de erro é:

Mensagem de erro levantada pela O índice da lista de: application limites (-1)

Usando IntraWeb 9.0.42 (por causa de controles TMS e Delphi 2006, como TMS não testou com 10.0.17 e Delphi 2006).

Eu tentei IWTreeView1.ClearAll na forma destruir, o que não ajudou em tudo.

Foi útil?

Solução

Em vez de SubItems.Clear Eu agora uso

for i := IWTreeView1.Items[0].SubItems.Count-1 downto 0 do begin
    TIWTreeViewItem(IWTreeView1.Items[0].SubItems[i]).Free;
end;

Isso funciona. Ainda em aberto de melhores soluções, talvez não envolvem um loop através de todos os subitens.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top