【问题标题】:Deleting IWTreeViewItems causes exception on form release删除 IWTreeViewItems 会导致表单发布异常
【发布时间】:2009-09-18 06:38:35
【问题描述】:

在我的表单上,我有一个 IWTreeView 和两个按钮。一键删除部分IWTreeViewItem,一键释放表单:

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 进行销毁,但完全没有帮助。

【问题讨论】:

    标签: delphi delphi-2006 intraweb


    【解决方案1】:

    我现在使用的不是 SubItems.Clear

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

    这行得通。仍然对更好的解决方案持开放态度,可能不会涉及所有子项的循环。

    【讨论】:

      猜你喜欢
      • 2015-09-06
      • 1970-01-01
      • 2011-10-26
      • 2023-04-09
      • 2010-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多