加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 项目控件,用于从容器控件中删除自身

发布时间:2020-12-15 09:24:22 所属栏目:大数据 来源:网络整理
导读:有一个容器控件,一个TScrollBox,它有多个项控件. 每个项目控件都是复合本身,包含(父母和拥有)一个删除按钮.按下按钮开始删除项目控件. 删除涉及释放组件,因此实际操作应该是关于项目的外在的.问题是,最好的方法是什么? 我实际上知道几个选项: 间隔小的计时
有一个容器控件,一个TScrollBox,它有多个项控件.

每个项目控件都是复合本身,包含(父母和拥有)一个删除按钮.按下按钮开始删除项目控件.

删除涉及释放组件,因此实际操作应该是关于项目的外在的.问题是,最好的方法是什么?

我实际上知道几个选项:

>间隔小的计时器(通过按钮点击启动);
>一个隐藏的外部按钮(鼠标向下和向上发布消息);
>表单的自定义消息处理程序.

虽然我可以自信地实施任何这些方法,但是当我自我奉承时,我不确定哪一种方法最好.此外,计时器选项似乎幼稚,隐藏按钮一个hackish,自定义消息有点矫枉过正.简而言之,这三者似乎都是半可接受的,或多或少.

我可能只是偏见,不介意相反.最重要的是,我想知道在这种情况下使用的常用方法是什么(可能是我一直都缺少的东西).

解决方法

通常的方法是将消息发布到要释放的控件.例如,了解如何实现TForm.Release.事实上,我认为你甚至无法重复使用CM_RELEASE消息.

关于发布消息的要点是,它发送到队列的后面,只有在任何同步消息(即由SendMessage传递的消息)完成处理后才会被处理.这样可以避免在对象被释放后调用它,这显然是一个你很清楚的错误.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读