|
本帖最后由 wangvoldp 于 2023-5-15 16:25 编辑
如果有一个设置窗口,用户没点开这个窗口,那没有必要构造这个窗口类
因为火山视图中没有参考,所以定义的窗口都将直接创建对象,占用内存空间
包括所有的类只要在作用于定义变量,构造函数就会执行,内存就会分配
用 创建对象指针 和 销毁对象指针 可以实现不显示的窗口不占用内存(指针要占4字节)
------------------------------------------------------------
一、动态弹出窗口(弹出窗口可以阻塞线程,函数返回时就能销毁)
挂接事件 (读指针处对象 (Addr, 弹出窗口类)) // 将事件挂接到本类
读指针处对象 (Addr, 弹出窗口类).编辑框.内容 = "测试内容" // 设置编辑框内容
读指针处对象 (Addr, 弹出窗口类).编辑框.文本颜色 = 颜色类.红色 // 设置编辑框颜色
读指针处对象 (Addr, 弹出窗口类).创建对话框 () // 弹出窗口并等待窗口关闭
还是因为没有参考 每次访问弹出窗口的成员属性或方法都需要使用 读指针处对象 (Addr, 弹出窗口类)
不能读取窗口类后放到局部变量,那样会再构造一个 弹出窗口类(浪费),而且就算不考虑浪费,局部变量也只是真实窗口的副本,会有很多副作用
比如不能挂接事件 不能修改标记和标记值 不能修改弹出窗口的成员变量,好多东西都不行
------------------------------------------------------------
二、动态弹出其他窗口(其他窗口可以和主窗口同时操作,所以要用一个类管理他的对象指针)
源码里有个 动态窗口类,他里面只有一个成员变量用来保存对象指针
挂接了 已被销毁 事件,当窗口销毁自动销毁对象指针
当程序结束 或 当类析构时 也自动销毁对象指针
就能实现再多再大的窗口,在不显示时都不会占用内存
1. 创建和销毁动态窗口
如果 (动态窗口.有效 == 假)
动态窗口.Init (自定窗口类)
动态窗口.创建窗口 ()
否则
动态窗口.销毁 ()
2. 访问动态窗口
动态窗口.取对象 (自定窗口类).标题 = "新修改的标题"
动态窗口类 里还有其他功能自己体会吧
|
|