-
Dec 5th, 2022, 02:15 AM
#1
Thread Starter
Fanatic Member
[RESOLVED] Hide some Activex-Classes in VB6-Object-Browser
We know that by right-clicking in the Object-Browser of VB6-IDE, the "Show Hidden Members" menu item can be displayed. I'd like to know how to set the hidden status of members.
Additional Notes:
In my ActiveX DLL, there are some special classes with underscores as name suffixes, which I want to hide in VB6-Object-Browser, but users can still use these classes in the code editing window. I'd like to know how to make these classes hidden in the VB6-Object-Browser (of course, they can be displayed through the "Show Hidden Member" menu). Thanks.
Last edited by SearchingDataOnly; Dec 5th, 2022 at 05:22 AM.
-
Dec 5th, 2022, 11:41 AM
#2
Re: Hide some Activex-Classes in VB6-Object-Browser
You use the Procedure Attributes dialog. VB6 has the neat feature called "documentation" you can read.
-
Dec 5th, 2022, 06:01 PM
#3
Re: Hide some Activex-Classes in VB6-Object-Browser
In the Visual Basic 6 (VB6) Integrated Development Environment (IDE), the Object Browser is a tool that allows you to browse the properties, methods, and events of various objects in your code. By default, the Object Browser only displays members that are not marked as "hidden," but you can use the "Show Hidden Members" option to view all members, including those that are marked as hidden.
To set the hidden status of a member, you can use the Visible attribute of the member. For example, if you have a method named "DoSomething" that you want to hide from the Object Browser, you can add the following code:
Code:
Private Sub DoSomething()
' Method implementation here
End Sub
Attribute DoSomething.VB_UserMemId = -4
Attribute DoSomething.VB_Visible = False
The first line of code defines the method, and the second and third lines use the Attribute statement to set the Visible attribute of the method to False. This will cause the method to be marked as hidden in the Object Browser.
Alternatively, you can use the Visible attribute in the Properties window of the VB6 IDE to set the hidden status of a member. To do this, open the Properties window for the member, and then set the Visible property to False. This will have the same effect as using the Attribute statement in your code.
It's important to note that setting the hidden status of a member in the Object Browser will not prevent the member from being called or used in your code. It will only affect its visibility in the Object Browser.
(via ChatGPT. Since Wqweto started using it, I had to try it. It's not bad. )
Any software I post in these forums written by me is provided “AS IS” without warranty of any kind, expressed or implied, and permission is hereby granted, free of charge and without restriction, to any person obtaining a copy. Please understand that I’ve been programming since the mid-1970s and still have some of that code. My contemporary VB6 project is approaching 1,000 modules. In addition, I have a “VB6 random code folder” that is overflowing. I’ve been at this long enough to truly not know with absolute certainty from whence every single line of my code has come, with much of it coming from programmers under my employ who signed intellectual property transfers. I have not deliberately attempted to remove any licenses and/or attributions from any software. If someone finds that I have inadvertently done so, I sincerely apologize, and, upon notice and reasonable proof, will re-attach those licenses and/or attributions. To all, peace and happiness.
-
Dec 6th, 2022, 05:51 AM
#4
Thread Starter
Fanatic Member
Re: Hide some Activex-Classes in VB6-Object-Browser
Thank you, Elroy, dilettante.
What I want to hide is the "class name" instead of the "method name".
My ActiveX-Dll has hundreds of classes, and there are many companion-classes or helper-classes, for example: MyClass has a helper-class MyClass_, and the presence of these helper-classes in the Object-Browser can be confusing. So I want these classes to be hidden, but they can be displayed via "Show Hidden Members" menu.
Last edited by SearchingDataOnly; Dec 6th, 2022 at 06:46 AM.
-
Dec 6th, 2022, 07:27 AM
#5
Re: Hide some Activex-Classes in VB6-Object-Browser
You want to hide them but they are not private classes?
-
Dec 6th, 2022, 10:42 PM
#6
Thread Starter
Fanatic Member
Re: Hide some Activex-Classes in VB6-Object-Browser
 Originally Posted by Arnoutdv
You want to hide them but they are not private classes?
Yes, they are public classes. Users can call and use them normally in the code window. The purpose of hiding them in the Object-Browser window is only to reduce clutter.
The following are the classes displayed in the Object-Browser window
Code:
MyClass001
MyClass001_ (MyClass001Static)
MyClass002
MyClass002_ (MyClass002Static)
...
...
MyClass400
MyClass400_ (MyClass800Static)
I want to hide all classes with underscores as suffixes in the object browser.
Last edited by SearchingDataOnly; Dec 6th, 2022 at 10:56 PM.
-
Dec 7th, 2022, 02:52 AM
#7
Re: Hide some Activex-Classes in VB6-Object-Browser
Sounds like a lot of fuzz about nothing.
-
Dec 7th, 2022, 03:52 AM
#8
Re: Hide some Activex-Classes in VB6-Object-Browser
 Originally Posted by SearchingDataOnly
Yes, they are public classes. Users can call and use them normally in the code window. The purpose of hiding them in the Object-Browser window is only to reduce clutter.
The following are the classes displayed in the Object-Browser window
Code:
MyClass001
MyClass001_ (MyClass001Static)
MyClass002
MyClass002_ (MyClass002Static)
...
...
MyClass400
MyClass400_ (MyClass800Static)
I want to hide all classes with underscores as suffixes in the object browser.
You cannot do this with stock VB6 compiler.
It's completely possible to hide coclasses but you'll need some kind of post-compile processing done on the typelib.
cheers,
</wqw>
-
Dec 7th, 2022, 04:24 AM
#9
Thread Starter
Fanatic Member
Re: Hide some Activex-Classes in VB6-Object-Browser
 Originally Posted by wqweto
You cannot do this with stock VB6 compiler.
It's completely possible to hide coclasses but you'll need some kind of post-compile processing done on the typelib.
cheers,
</wqw>
Thank you, wewqto. I know it's difficult to handle it in VB6, so I'd like to know if there's a way to handle it in typelib. My current tlb file is generated from ActiveX-DLL. If typelib solves my problem, then I'll try to use typelib.
Last edited by SearchingDataOnly; Dec 7th, 2022 at 04:27 AM.
-
Dec 7th, 2022, 08:53 AM
#10
Re: Hide some Activex-Classes in VB6-Object-Browser
does hiding a coclass from the objbrowser hide it from intellisense? that would be a deal breaker.
If there were to many classes that it was annoying, I would probably just use a custom object browser
you could add filtering. While the vb6 objbrowser is good, it could certainly be made better.
-
Dec 8th, 2022, 02:15 AM
#11
Thread Starter
Fanatic Member
Re: Hide some Activex-Classes in VB6-Object-Browser
 Originally Posted by dz32
If there were to many classes that it was annoying, I would probably just use a custom object browser
you could add filtering. While the vb6 objbrowser is good, it could certainly be made better.
It's an excellent idea, maybe I can add "grouping" and "namespace" features to the custom object-browser. Thank you very much, dz32.
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|