Удаление IWTreeViewItems вызывает исключение при выпуске формы - PullRequest
0 голосов
/ 18 сентября 2009

В моей форме у меня есть IWTreeView и две кнопки. Одна кнопка удаляет некоторые IWTreeViewItems, другая освобождает форму:

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

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

При освобождении формы после удаления IWTreeViewItems возникает исключение:

Сообщение об ошибке, выдаваемое приложение: нарушение прав доступа на адрес 004E0D8A в модуле 'TryTree.exe. Читать адрес 00000000

Когда активна другая форма, и приложение не прекращает работу при выпуске этой формы, появляется сообщение об ошибке:

Сообщение об ошибке, выдаваемое приложение: список из списка границы (-1)

Использование IntraWeb 9.0.42 (из-за элементов управления TMS и Delphi 2006, поскольку TMS не тестировался с 10.0.17 и delphi 2006).

Я пытался IWTreeView1.ClearAll в форме уничтожить, что совсем не помогло.

1 Ответ

0 голосов
/ 18 сентября 2009

Вместо SubItems.Clear я теперь использую

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

Это работает. Все еще открыты для лучших решений, возможно, не включая цикл по всем подпунктам.

...