IWTreeViewItemsを削除すると、フォームのリリース時に例外が発生する
-
22-07-2019 - |
質問
フォームにはIWTreeViewと2つのボタンがあります。 1つのボタンはいくつかの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は10.0.17およびdelphi 2006でテストしていないため、TMSコントロールとDelphi 2006のため)
破壊形式でIWTreeView1.ClearAllを試みましたが、まったく役に立ちませんでした。
解決
SubItems.Clearの代わりに今使用しています
for i := IWTreeView1.Items[0].SubItems.Count-1 downto 0 do begin
TIWTreeViewItem(IWTreeView1.Items[0].SubItems[i]).Free;
end;
これは動作します。すべてのサブアイテムをループする必要はないかもしれません。
所属していません StackOverflow