李先森 发表于 2022-3-30 19:00 火山视窗没有参考赋值啊 只是单纯要改成员的话,你可以在局部变量里修改了,再赋值到原对象,比如 读指针处对象 (对象指针, 对象类).检查复制对象 (局部变量) 其实用读指针处对象给成员赋值也没差多少,就是写起来长一些,但这复制粘贴就可以解决 |
Xelloss0618 发表于 2022-3-30 13:41 这个试了下确实可以,有没有新建 局部变量=方法返回的参考值,然后操作局部变量来修改数据,因为自定义类里面有很多成员需要赋值和修改,每次都得用方法调用才能赋值,太麻烦了,要是能通过变量来批量赋值和修改,要方便些, |
Xelloss0618 发表于 2022-3-30 13:41 果然如此,你真是太厉害了。 |
itismine 发表于 2022-3-30 11:05 火山默认是返回变量的副本(跟复制赋值差不多) 你可以在方法上加上属性 @视窗.参考返回 = 真 这样就会返回变量本身(确保是外部变量,且没有被销毁) |
Xelloss0618 发表于 2022-3-29 23:22 谢谢各位了,只是这种复制方式太麻烦了,要是能引用多方便啊,官方为什么不支持呢? |
Xelloss0618 发表于 2022-3-30 10:28 在样例解决方案中有个ADO的例子。关于共享数据库连接的。具体你可以看一下。好像有些问题。 我这个是根据那个改的一个简单的对象。比较好控制。 具体见图。 不知道这2种调用方式有什么区别。好像一种方式是另一种方式的指针一样。 |
itismine 发表于 2022-3-30 10:13 这个没哪里可以看,要说的话,得看对象类的源码了。 火山的类都是复制赋值。 我上面举窗口组件类的例子,真较真的话,实际上赋值后也是两个不同的对象,因为它们的对象指针不一样。 但操作窗口组件靠的是窗口句柄,把句柄复制过去的,操作自然还是同一个窗口, |
Xelloss0618 发表于 2022-3-29 23:22 不知道这个关于类的东西在哪里看到的? |
本帖最后由 Xelloss0618 于 2022-3-30 10:28 编辑 这样重新赋值一般不会有效果的,火山的类默认是复制赋值,例如: 对象B = 读指针处对象 (对象A指针, 对象类) 对象B复制了对象A的数据,但跟对象A是互相独立的,你操作对象B不会改变对象A的内容,你现在该明白了吧? 下面这样写才能通过指针修改对象A的内容: 读指针处对象 (对象A指针, 对象类).文件名 = "wwwwww" 回到第一句,我说的是一般不会有效果,但有部分类是比较特别,比如窗口类和各种窗口组件类。 你把窗口组件赋值到新变量,操作的仍是同一个窗口组件。 |
|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )
GMT+8, 2024-11-25 02:41 , Processed in 0.096047 second(s), 22 queries .
Powered by Discuz! X3.4
© 2001-2017 Comsenz Inc.