-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Krool
...
I also think it gets time to bring out the next OCX release.
But as the forum rules are restricted about closed binaries I am thinking of publishing the source code along the binary.
This way I could upload everything in "UtilityBank - Components" and make a link from here to there.
What you guys think?
I am also okay either way. I see a lot of new forum users having problem with sending PM. If you release OCX source code, you may want to provide a "warning" on avoiding compatibility issue if any after the release of source code. But I guess using the reg-free manifest method should avoid this.
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Krool
Update released.
the 32-bit thumb scrolling support works now properly in each "scenario" in the ListBoxW control.
Means vertical scolling is always 32-bit.
Horizontal scrolling is only 32-bit when also the MultiColumn property is set to True.
Else it remains 16-bit, which is the case for 'HorizontalExtent' scrolling. And that should certainly be sufficient. ;)
Sorry for the confusion..
I also think it gets time to bring out the next OCX release.
But as the forum rules are restricted about closed binaries I am thinking of publishing the source code along the binary.
This way I could upload everything in "UtilityBank - Components" and make a link from here to there.
What you guys think?
Krool, OCX version should not free. You can get a little money from commercial users for inspiration.
Free always means poor service and slow bugs removal. For reliability and unity, I prefer OCX is sealed with close source.
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Krool
Update released.
the 32-bit thumb scrolling support works now properly in each "scenario" in the ListBoxW control.
Means vertical scolling is always 32-bit.
Horizontal scrolling is only 32-bit when also the MultiColumn property is set to True.
Else it remains 16-bit, which is the case for 'HorizontalExtent' scrolling. And that should certainly be sufficient. ;)
Sorry for the confusion..
I also think it gets time to bring out the next OCX release.
But as the forum rules are restricted about closed binaries I am thinking of publishing the source code along the binary.
This way I could upload everything in "UtilityBank - Components" and make a link from here to there.
What you guys think?
The open source (standard exe) version was enough for me :)
In my opinion, this ActiveX is very valuable. Krool has lost more time on this project... Time is very important... I'm not a rich person otherwise I'll pay a very high price for it... Instead, i can pray for krool every month, and i think it's so valuable than money... every month 1 unique prayer just for krool :) :wave: God bless him
-
Re: CommonControls (Replacement of the MS common controls)
Krool,
Maybe you consider to delay the decision to release the OCX source code and give yourself more time to decide. I also do support a paid OCX should you decide to go that direction.
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
chosk
Maybe you consider to delay the decision to release the OCX source code and give yourself more time to decide. I also do support a paid OCX should you decide to go that direction.
Thanks for your opinion. I'm not money driven on this project. And actually those people with some knowledge could just build the OCX out of the Std-EXE version.
Quote:
Originally Posted by
Jonney
Free always means poor service and slow bugs removal. For reliability and unity, I prefer OCX is sealed with close source.
First point I don't agree, but certainly with your second point I do agree.
So I still don't know. :)
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Jonney
Free always means poor service and slow bugs removal.
I also rather strongly disagree, but just didn't want to be the first to say it. I think it's important to differentiate between free and open-source. Those two terms mean something entirely different. For instance, we can find all kinds of free software. However, it's often not open-source.
And, on the other hand, just because a program is open-source doesn't mean it has to be free. My work is a prime example of that. I distribute (and wrote) a large application used by many orthopedic hospitals. It assists with assessing the gait (walking ability) of a person. It's all open-source, but I also charge nice consulting fees to come in and modify various reports and/or make additional enhancements to it (such as the recent addition of a "balance" protocol, with work ongoing to make it work with a variety of hardware platforms).
Also, the idea that free (or open-source) means poor service is antithetical to many facts. I'd give myself as an example, but let's use Krool instead. He's incredibly active and responsive in this thread (as are many others who've posted in the codebank). Also, we can look at two rather classic examples: The Unix OS (and all its derivatives) and the C language. Both are open-source and extremely actively maintained and enhanced by a vibrant open-source community.
Sure, there are plenty of examples of abandoned-and-buggy open-source, but there are also plenty of examples of abandoned-and-buggy proprietary (for profit) software. If software is abandoned, I'd much rather have it be open-source than closed-source. The actual VB6 IDE comes to mind as a classic (and extremely irritating) example of an abandoned closed-source program.
Best Regards,
Elroy
-
Re: CommonControls (Replacement of the MS common controls)
Difference between the classic Combobox with the Combobox designed by @Krool:
In Classic Combobox:
Code:
Dim Tcombo As Integer
For Tcombo = 1 To 10
Combo1.AddItem (CStr(Tcombo))
Next Tcombo
Combo1.text={Recordset Data}
After that, All items of the classic combobox (added before) will be deleted :eek:
In the Combobox designed by @Krool
Code:
Dim Tcombo As Integer
For Tcombo = 1 To 10
ComboBoxW1.AddItem (CStr(Tcombo))
Next Tcombo
ComboBoxW1.text={Recordset Data}
After that, the text value will be selected in the combox without removing the last data :) :wave:
Edited:
Difference between the classic Richtextbox with the Richtextbox designed by @Krool: His Richtextbox supports Zoom .ZoomFactor
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Mahdi Jazini
Difference between the
classic Combobox with the
Combobox designed by @Krool:
In Classic Combobox:
Code:
Dim Tcombo As Integer
For Tcombo = 1 To 10
Combo1.AddItem (CStr(Tcombo))
Next Tcombo
Combo1.text={Recordset Data}
After that, All items of the classic combobox (added before) will be deleted :eek:
In the Combobox designed by @Krool
Code:
Dim Tcombo As Integer
For Tcombo = 1 To 10
ComboBoxW1.AddItem (CStr(Tcombo))
Next Tcombo
ComboBoxW1.text={Recordset Data}
After that, the text value will be selected in the combox without removing the last data :) :wave:
For me on both cases will be nothing deleted..
-
Re: CommonControls (Replacement of the MS common controls)
I think open source is great, but you spend a lot of time for the project, should be rewarded, I want to take this project to translate into Chinese so that China programmers can use, if approved, I can also do pay.
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Krool
For me on both cases will be nothing deleted..
My VB version is: Ver. 6.0 (Version 8176)
Anyway i have deleted the classic combo box and replaced with yours :)
-
Re: CommonControls (Replacement of the MS common controls)
Update released.
As in the ListBoxW control the 32-bit thumb scrolling support has been implemented into the ComboBoxW control.
Beside that another point is resolved.
On 29-Feb-2016 update I noticed that CB_GETCOMBOBOXINFO "seems" to be not supported on Windows 2000.
So I made then on that time an workaround to retrieve at least the edit handle.
However, .hWndList was still 0 when using Windows 2000.
Now I found out that there is a GetComboBoxInfo API in user32.dll, and that works as of Windows 2000.
In MSDN is described that the GetComboBoxInfo API is equivalent to CB_GETCOMBOBOXINFO.
Although CB_GETCOMBOBOXINFO returns 1 (success) in Windows 2000 there is no handle returned. But GetComboBoxInfo API works, odd?
So I decided to just replace CB_GETCOMBOBOXINFO with the GetComboBoxInfo API, then it will work in any case. :rolleyes:
-
Re: CommonControls (Replacement of the MS common controls)
Update released.
By now I think one of the last differences between intrinsic VB controls and my controls are resolved.
Before this update the Locked property in my ComboBoxW control only prevented text change (by user) in the edit control.
However, selecting items in the list box portion was possible. In the VB ComboBox this is not possible.
So now the Locked property is
1. supported in all three ComboBox styles
2. works like in the original, means no user select possible.
To achieve this the ComboBoxW control needs now to subclass also the internal ListBox (.hWndList) control. (So now everything is being subclassed :))
However, this subclass was also necessary to have 32-bit thumb scrolling support. So the additional subclass has it "right to exist" in my opinion. ;)
Info: ComCtlsIDEStopProtectionHandler() was amended accordingly. (subclass of .hWndList)
Edit: Same improvements implemented into the ImageCombo control.
-
Re: CommonControls (Replacement of the MS common controls)
Krool,
Would it possible to script a VB6 form and controls using your VBCCR13.OCX on the fly? I'm able to interact with a VB6 form generated as an ActiveX/OCX form control now.
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Krool
Thanks for your opinion. I'm not money driven on this project. And actually those people with some knowledge could just build the OCX out of the Std-EXE version.
. :)
that is so true, I used to do that but then I thought of the conflict that could happen if my ocx would find itself on a pc with an ocx of somebody else enjoying this forum. I therefore use the ocx version. I rarely use the Std-EXE version, only when I need no more then 1 or 2 controls.
thanks krool, I am looking forward for the next ocx version
you are the greatest.
-
Re: CommonControls (Replacement of the MS common controls)
Hi Again
while its not part of the common controls, but the control is quite common, I am of course referring to the office ribbon, did you ever consider working on that?
-
Re: CommonControls (Replacement of the MS common controls)
Big announcement. :)
The new 1.4 ActiveX Control version is now released. You can find the link to it in the first page of this thread.
Or here: http://www.vbforums.com/showthread.p...55#post5129155
The source code is also included. But please refrain from building another binary out of it as this will cause redundancies.
If modification is necessary please rename the library before.
Quote:
Originally Posted by
Semke
I am looking forward for the next ocx version
Done. ;)
Quote:
Originally Posted by
ScriptBASIC
Would it possible to script a VB6 form and controls using your VBCCR13.OCX on the fly? I'm able to interact with a VB6 form generated as an ActiveX/OCX form control now.
I don't know what you mean. But creating controls on the fly should be possible with Controls.Add. (?)
-
Re: CommonControls (Replacement of the MS common controls)
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
But creating controls on the fly should be possible with Controls.Add
I may have to instantiate a blank form as an ActiveX DLL before adding controls via scripting. I'll let you know how it works out. Thanks for 1.4 and all your hard work to keep VB6 relevant.
-
Re: CommonControls (Replacement of the MS common controls)
Update released.
Again bugfixes, this time the ListBoxW control.
First bug was a non-critical behavior bug in a multi-column checkbox style list box. Default behavior is that checking a checkbox is possible even when the item is not selected before, but then it must be a "direct click" within the checkbox. And that was not working.
Second bug (supposedly a nasty "MS bug") is that everything goes crazy (top index gets negative) when both RightToLeft and MultiColumn are set to True.
But that could be solved by a little workaround on control creation.
The OCX is also updated accordingly with these two fixes.
-
1 Attachment(s)
Re: CommonControls (Replacement of the MS common controls)
Update released.
No bugfix this time, but new feature.
The Style property in the ListBoxW control can now be '2 - Option', beside '1 - Checkbox' and '0 - Standard'.
With this the list box can have options that are mutually exclusive.
Benefit to a OptionButton-Array is obvious as it inherits some useful features like scrolling, sorting, data binding and multi-column.
With the new 'OptionIndex' run-time property the app can control the current checked item.
Setting OptionIndex to -1 will clear everything.
However, the ItemChecked property can also be used. Also the ItemBeforeCheck and ItemCheck events are called by this.
Attachment 144389
Second point is for the ListView.
There is a behavior difference between MS ListView version 5.0 and 6.0.
By that new property 'AutoSelectFirstItem' the behavior can be chosen actually. By default it is True to match the behavior of MS 6.0 ListView.
EDIT:
Fixed a bug that the item's checkboxes/options were not drawn grayed in a disabled non-standard Style ListBoxW control.
On update from 18-Oct-2016 was only the text fixed to drawn grayed in that case, but not the button itself.
The OCX has been updated accordingly that the checkboxes will now drawn grayed in a disabled Checkbox Style ListBoxW control. (options not available in OCX)
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Krool
The OCX has been updated accordingly that the checkboxes will now drawn grayed in a disabled Checkbox Style ListBoxW control. (options not available in OCX)
What do you mean, "options not available in OCX" not available in this update or will never be available?
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Semke
What do you mean, "options not available in OCX" not available in this update or will never be available?
That means it will not be available in the 1.4 OCX.
Will be available in 1.5 OCX. (future version)
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Krool
That means it will not be available in the 1.4 OCX.
Will be available in 1.5 OCX. (future version)
Hi Kroll,
I got a problem with last update. I have registered OleGuids in sysWow64 as usual...
but when I ran demo in IDE, I got:
"To use this functionality, you must provide a manifest specifying comctl32.dll version 6.0 or higher."
then IDE crash. (Vb6 IDE close down unexpectly)
I look all over forum, could you please give me a step by step on how to install the whole thing ?
1. install Oleguids in Syswow64 ? regtlib Oleguids.tlb ??
2. over last version, do we need to uninstall the Oleguids, if so, wich method do you use, RegTlib doesn't have -u
3. do we need manifest, if so, how to implement, where to place the file
thanks for everythings.
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
VbNetMatrix
Hi Kroll,
I got a problem with last update. I have registered OleGuids in sysWow64 as usual...
but when I ran demo in IDE, I got:
"To use this functionality, you must provide a manifest specifying comctl32.dll version 6.0 or higher."
then IDE crash. (Vb6 IDE close down unexpectly)
I look all over forum, could you please give me a step by step on how to install the whole thing ?
1. install Oleguids in Syswow64 ? regtlib Oleguids.tlb ??
2. over last version, do we need to uninstall the Oleguids, if so, wich method do you use, RegTlib doesn't have -u
3. do we need manifest, if so, how to implement, where to place the file
thanks for everythings.
The .Groups functionality in ListView is causing the error. (When no manifest for VB6.exe)
There is a On Error Resume Next in the Demo to avoid the crash.
However it only works when setup following:
- In order to trap error raises via "On Error Goto ..." or "On Error Resume Next" it is necessary to have "Break on Unhandled Errors" selected instead of "Break in Class Module" on Tools -> Options... -> General -> Error Trapping.
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
VbNetMatrix
Hi Kroll,
I got a problem with last update. I have registered OleGuids in sysWow64 as usual...
but when I ran demo in IDE, I got:
"To use this functionality, you must provide a manifest specifying comctl32.dll version 6.0 or higher."
then IDE crash. (Vb6 IDE close down unexpectly).
I get the same thing. This is such an amazing project but it's a shame the demo doesn't run at all.
I read in another link you need to hack the VB6.EXE file to include resources. Frankly I have no idea what a manifest is and I'm a bit reluctant to hack the VB6.EXE - but if I have to, I'll do it. I downloaded a resource hacker and gave it a go but no luck.
I know it must be simple to get it up and running but honestly coming in late in the game like this and see the demo crash and burn it's tempting to just say "meh it doesn't work" and move on.
Still, I'm determined to ditch some of these old MS dependencies and move on to something more modern - without having to ditch VB6 entirely. It would be great if there was some kind of comprehensive install guide.
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Darkbob
I get the same thing. This is such an amazing project but it's a shame the demo doesn't run at all.
I read in another link you need to hack the VB6.EXE file to include resources. Frankly I have no idea what a manifest is and I'm a bit reluctant to hack the VB6.EXE - but if I have to, I'll do it. I downloaded a resource hacker and gave it a go but no luck.
I know it must be simple to get it up and running but honestly coming in late in the game like this and see the demo crash and burn it's tempting to just say "meh it doesn't work" and move on.
Still, I'm determined to ditch some of these old MS dependencies and move on to something more modern - without having to ditch VB6 entirely. It would be great if there was some kind of comprehensive install guide.
http://www.vbforums.com/showthread.p...nifest-Creator
-
Re: CommonControls (Replacement of the MS common controls)
Thanks for the general info link. I'm afraid it doesn't really help in this case.
Digging into this project a bit I've found the problem is in the Public Function ComCtlsSupportLevel()
On my computer it's return a null.
Digging deeper it looks like I'm running some DLL that's at v5.82. ComCTLsSupportLevel is written in such a way as to return 1 if you have v6.0 and 2 if you have higher than 6.0 but it doesn't handle a situation where you have anything lower than 6.
I modified the routine to return a value of 2 and the demo now runs. But clearly something's wrong either with this routine or with my VB install.
Edit. Further digging and I see my version of ComCtl32.OCX - digitally signed by Microsoft November 2, 2016 is version 5.82. I'm guessing I have an old version of ComCtl32.OCX somehow?
https://s27.postimg.org/fdq5bnyhv/comctl32.jpg
Whats weird is that ComCTL32.dll is 6.1.
https://s23.postimg.org/z0a4e6cuj/comctl32dll.jpg
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Cube8
that's very nice but it doesn't tell us what to include in the manifest so Vb6.exe DON'T CRASH.
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
Darkbob
Whats weird is that ComCTL32.dll is 6.1.
Where did you get that information? how can you make such deduction? I'm tyring to understand, you lost me here.,
What is your OS ?
I'm on Win7x64, in my Syswow64, my version of comctl32.dll is 5.82.7601.18837
plz post more.
-
Re: CommonControls (Replacement of the MS common controls)
I know your product is great... and I'm pretty sure you did it this way for a reason.
however, the question remain:
1. install Oleguids in Syswow64 ? regtlib Oleguids.tlb ??
2. over last version, do we need to uninstall the Oleguids, if so, wich method do you use, RegTlib doesn't have -u
3. do we need manifest, if so, how to implement, where to place the file
as for the on error hack, I got other class that I use that need to use the error debug as it is by default.
so I'm stuck...
and finally... it doesn't explain why the Vb6 IDE completely crash and close upon this error. are you subclassing ? (if so I missed it)
-
Re: CommonControls (Replacement of the MS common controls)
Using a manifest to use ver 6 of comctl32.dll has been well publicized in many sources on the Internet.
This began during the time long ago when WinXP was the then latest Windows and that is like 15 or 16 years ago. That was the time when VB6 users wanted to use the XP Theme for the software they wrote so that they will look modern. This same manifest method also works to make VB6 software work with the new themes in WinVista, Win7, Win8 and Win10.
This is the same manifest method that is asked here.
For reading of what this manifest thing is all about:
Making VB Apply XP Visual Styles at Design and Debug Time
This links in that page are not working, they both point to:
Adding XP Visual Styles to Your Visual Basic Application
Read the para titled Manifests. You can ignored the para titled "Ensuring Your Application Links to ComCtl32.dll" because Krool has already handled that in the source.
Hope this helps.
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
VbNetMatrix
I know your product is great... and I'm pretty sure you did it this way for a reason.
however, the question remain:
1. install Oleguids in Syswow64 ? regtlib Oleguids.tlb ??
2. over last version, do we need to uninstall the Oleguids, if so, wich method do you use, RegTlib doesn't have -u
3. do we need manifest, if so, how to implement, where to place the file
as for the on error hack, I got other class that I use that need to use the error debug as it is by default.
so I'm stuck...
and finally... it doesn't explain why the Vb6 IDE completely crash and close upon this error. are you subclassing ? (if so I missed it)
If you change the error trapping setting the On Error ... will work in both UserControl and Class Module. So dont worry.
The OLEGuids you can actually just overwrite by copy&paste.
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
chosk
Using a manifest to use ver 6 of comctl32.dll has been well publicized in many sources on the Internet. (...) like 15 or 16 years ago.
Must have missed that... but then again, 15 years ago, I was already making my own skin for all my commercial program.
I just don't like too much how people act on forum when you ask a question and they are like "you should know it"
and then provide link that talk about the subject, but not answering the question directly. and you have to dig and dig and look at like 10 web site with different discussion on the subject to finally find what you're looking for.
this being said, this information is very apreciated and I'm glad you enlight me on this.
-
Re: CommonControls (Replacement of the MS common controls)
The links I posted have all the explanation and implementation. They answer your questions directly. They do it better than I can if I were just give the answer without explanation. After all, the posts were the authoritative source back at that time and it is better you read direct from Steve McMahon, rather than from me. HE is the man.
I was merely trying to explain the background of how the use of manifest to use v6 of comctl32.dll came about.
-
Re: CommonControls (Replacement of the MS common controls)
Quote:
Originally Posted by
chosk
The links I posted
thanks... and don't take my answer bad. It was really apreciated.
-
Re: CommonControls (Replacement of the MS common controls)
Hi Krool,
I have a project has many forms and I started it when it was still VBCCR13.ocx. Now I want to move the project to VBCCR14.ocx and looking for a more efficient way instead of manually redoing all the controls on all the forms, realigning, resizing, etc. which can be very tedious.
I experimented first starting a simple test project to use VBCCR13.ocx. Then I made the following changes to the test project files to VBCCR14.ocx:
1) In Project1.vbp:
Change
Object={07C05129-C2E5-483C-8237-8636C3F11E4E}#1.1#0; VBCCR13.ocx
to
Object={A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}#1.0#0; VBCCR14.ocx
2)In Form1.frm
Change
Object = "{07C05129-C2E5-483C-8237-8636C3F11E4E}#1.1#0"; "VBCCR13.ocx"
to
Object = "{A99BDCD4-AB6D-490E-A03D-BF90764CBC6B}#1.0#0"; "VBCCR14.ocx"
Within the Begin VB.Form Form1... End Loop,
change all
Begin VBCCR13.<control> <control name>
to
Begin VBCCR14.<control> <control name>
The "converted" test project seems to work. Is this a safe way? Are there unforeseen consequences?
Thanks
Edit to add:
I should have done a search on the Internet before I posted. I just found OCX Updater .
I tested and it works. I think it change automatically what I would have change manually.
Thanks anyway.
-
Re: CommonControls (Replacement of the MS common controls)
Hello
I changed my converter to the new version (v14)
1 Open your project with "Charger VBP"
2. The conversion is done ....
3. The project is converted for the new version (v14):thumb:
Converted files are saved (.bak)
-
Re: CommonControls (Replacement of the MS common controls)
Hi Ird_VB6,
I did not realize a solution already existed in this thread. Now bookmarked.
Thanks.
-
Re: CommonControls (Replacement of the MS common controls)
Update released.
The RightToLeft property did not work in the TabStrip control. (but only when RightToLeftLayout is set to False)
Reason was that the control apparently ignores the WS_EX_RTLREADING flag. Instead the TCIF_RTLREADING mask bit must be included on each tab item.
Somehow this fact I had overlooked when the RightToLeft properties got included..
The OCX has been updated accordingly.
-
Re: CommonControls (Replacement of the MS common controls)
Quite impressive! The demo still crashes VB6 so that doesn't instill confidence. And I've had zero luck with any of the visual styles and manifest and all that. But using the OCX is fairly simple. Nice easy drop-in replacement for the standard controls. Thanks!