如何获取对象实例个数,解决后再加分

ltpao 2001-12-15 02:18:21
当对象实例达到一定数量后再创建时就拒绝工作
...全文
107 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
flesh 2001-12-30
  • 打赏
  • 举报
回复
用 Enum 枚举!
Bardo 2001-12-30
  • 打赏
  • 举报
回复
解决后再加分,解决了吗?

  
ltpao 2001-12-16
  • 打赏
  • 举报
回复
比如我创建了一个CUser类,远程用户通过DCOM创建该对象,如CreateObject("MyLib.CUser",192.168.0.1),那么我在CUser类中怎么知道自己被创建了几次,有一个笨方法就是在注册表或文件中保存次数,在类构造时次数加1,析构时减1,我是否可以直接访问类的VTBL,如何访问,请斑竹指点?
Bardo 2001-12-16
  • 打赏
  • 举报
回复
Private Sub Class_Initialize()
If gCConnect Is Nothing Then
Dim CConn As Object
ConnNum = 1
Set CConn = New CDataConnection
Set gCConnect = CConn.CConnect
Else
ConnNum = ConnNum + 1
End If
End Sub

Private Sub Class_Terminate()
If ConnNum > 1 Then
ConnNum = ConnNum - 1
Else
gCConnect.Close
Set gCConnect = Nothing
End If
End Sub

以上程序即可以知道,实际只创建一个对象共用
并在全部关闭时 Set Nothing
ltpao 2001-12-16
  • 打赏
  • 举报
回复
Dynamic:在类中模块级变量不能是静态变量
yangzhaoyu:你理解错了
yangzhaoyu 2001-12-16
  • 打赏
  • 举报
回复
'add some label and other objects(name is free)
Private Sub Command1_Click()
Dim objTest As Object
Dim lngLabelsCount As Long
lngLabelsCount = 0
For Each objTest In Form1
If TypeName(objTest) = "Label" Then
lngLabelsCount = lngLabelsCount + 1
End If
Next
MsgBox ("The count of label is" + Str(lngLabelsCount))


End Sub
Dynamic 2001-12-16
  • 打赏
  • 举报
回复
在类中定义一个静态变量即可,每初始化一次+1,Terminate 一次就-1嘛
general2050 2001-12-15
  • 打赏
  • 举报
回复
这个问题很简单,在代码区的对象地方可直接看到,只要你不把“NAME”属性改掉!
syncbiny 2001-12-15
  • 打赏
  • 举报
回复
在对象TAG上加标志,检测同一标志有多少。
sxmzmxh 2001-12-15
  • 打赏
  • 举报
回复
假设label1是标签控件数组,则label1.Count就是label1控件的数量,
是这个意思吗?

7,763

社区成员

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

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