0

私のフォームには、IWTreeViewと2つのボタンがあります。1つのボタンで一部のIWTreeViewItemを削除し、もう1つのボタンでフォームを解放します。

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

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

IWTreeViewItemsを削除した後にフォームを解放すると、例外が発生します。

アプリケーションによって発生したエラーメッセージ:モジュール'TryTree.exe'のアドレス004E0D8Aでのアクセス違反。アドレス00000000の読み取り

アクティブな別のフォームがあり、このフォームリリースによってアプリケーションが終了しない場合、エラーメッセージは次のとおりです。

アプリケーションによって発生したエラーメッセージ:リストインデックスが範囲外です(-1)

IntraWeb 9.0.42の使用(TMSは10.0.17およびdelphi 2006でテストされていないため、TMSコントロールおよびDelphi 2006のため)。

破棄の形式でIWTreeView1.ClearAllを試しましたが、まったく役に立ちませんでした。

4

1 に答える 1

0

Instead of SubItems.Clear I now use

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

This works. Still open for better solutions, maybe not involving a loop through all subitems.

于 2009-09-18T12:23:36.880 に答える