dim 后面加不加 new有什么区别?比如 Dim mypoint as New PointType

nust_yao 2003-01-20 02:58:28
我在VB程序里引入了一个控件,这个有很多的对象可以用,比如说PointType对象,
但是我在
Dim mypoint as PointType后
用myType.x=123;程序就提示91号错误

但我用了一个new 后
Dim mypoint as New PointType,再使用myType.x=123就没有问题了
为什么呢?
...全文
292 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
nust_yao 2003-01-20
  • 打赏
  • 举报
回复
好的,分不多,谢谢你:)
canyqf 2003-01-20
  • 打赏
  • 举报
回复
shake
没用过delphi,不知道
nust_yao 2003-01-20
  • 打赏
  • 举报
回复
楼上的兄弟,你说得对。
但是我现在是用delphi编程,不知道用delphi怎么实现的,您知道吗?
canyqf 2003-01-20
  • 打赏
  • 举报
回复
先用
set ad = new soGeoPoint
初始对象再进行操作。

还有赋值操作的不是对象不要用set,直接=就可以了。

Dim ad As soGeoPoint
set ad = new soGeoPoint '这是关键
ad.x = 12
ad.y = 21

这样就ok了
nust_yao 2003-01-20
  • 打赏
  • 举报
回复
不行啊,我用了一个GIS软件提供的控件,这个控件下面有很多的子对象

soGeoPoint就是它的子对象,但是不是显式的包含在里面的
也就是说:在这个GIS控件下比如gisActivex1后面打一个. 是不会出现soGeoPoint对象的。大家帮我看看问题在哪里


代码如下:

Private Sub Command1_Click()
Dim ad As soGeoPoint
Set ad.x = 12
Set ad.y = 21
End SuB //但是失败了
//////////////////////////
Private Sub Command1_Click()
Dim ad As new soGeoPoint
ad.x = 12
ad.y = 21
End SuB //成功了
OFFICE之门 2003-01-20
  • 打赏
  • 举报
回复
new之后就给该变量分配的内存空间,实例化,退出时最好释放掉
canyqf 2003-01-20
  • 打赏
  • 举报
回复
像你的第一段程序在Dim后加一行:
set mypoint=new PointType
就不会有错了。
canyqf 2003-01-20
  • 打赏
  • 举报
回复
不用new只是定义变量的类型,
用new是在定义之后创建变量所定义类的对象赋给定义的变量。

就是说没有用new定义的要用set语句来初始化才可使用。
nust_yao 2003-01-20
  • 打赏
  • 举报
回复
各位,有想法吗?

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧