IWTreeViewItemsを削除すると、フォームのリリース時に例外が発生する

StackOverflow https://stackoverflow.com/questions/1442886

  •  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;

これは動作します。すべてのサブアイテムをループする必要はないかもしれません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top