Re: (VB6) SSTabEx: SSTab replacement. Themed and with new features
Dear Eduardo,
Please find attached my test project for the 'Gaps between tabs' issue. Its named "2. Gaps between Tabs.zip"
In my test app, sst1 gets resized whenever the Form_Resize() event happens.
I see that during app startup itself, sst1 gets resized. And, I observe the gaps between tabs immediately, after app startup itself. Please see screenshot below. Gaps are seen between tabs 1&2, tabs 5&6 and tabs 8&9.
You may kindly please try manually resizing my test app's form's width (increase/decrease the width randomly). While doing so, you can observe gaps between tabs appearing, at several random widths of sst1. At some other random widths of sst1, you can observe that there are no gaps (its all perfect). For a sample, I just chose two such random widths (498px - a width at which I see gaps, and 503px - a width at which I don't see any gaps) to be used in the code of my command button cmd1's Click event. Please see screenshots below (sst1 at 498px and 503px, respectively), in this regard. At 498px, gaps are seen between tabs 1&2, tabs 5&6 and tabs 8&9.
Note-1:
My VB6 IDE is themed. I am not sure whether it has DPI awareness too.
My screen resolution is 1920*1080.
Under 'Scale and Layout' in Display settings, it shows "100% (Recommended)" in my system.
My test app's SSTabEx (named sst1) has 10 tabs with TabsPerRow set to 10. No other default property of sst1 has been changed, as far as I can say.
My test app's form's background color is set to 'Highlight' color (as you can see in the screenshots). The Highlight color's RGB is "0, 128, 215" in my system.
Note-2: In case the "gaps between tabs" do not appear at your end and its all working correctly, then kindly bear with me and kindly let me know what could be the mistake I am doing at my end which makes the "gaps between tabs" appear.
Note-3: If the "gaps between tabs" do appear at your end too, and if it is not due to 'Sst', then kindly let me know as to what I should do further.
I take this opportunity to once again thank you, in abundance, for your fabulous sst control.
Re: (VB6) SSTabEx: SSTab replacement. Themed and with new features
Updated.
Sometimes it happens that fixing a bug, another bug is introduced.
It was the case of the update on 08-Jun-2022 (less than a couple of weeks ago).
Changing .hWnd to .hWndUserControl for Krool's controls everywhere, had the side effect that in one place it actually needed the hWnd of the internal control.
Fixed now.
PS: the problem was that the backcolor of Krool's controls were not painted right when themed. They were painted with the normal backcolor and not with the backcolor of the tab.
Last edited by Eduardo-; Jun 19th, 2022 at 03:49 PM.
Re: (VB6) SSTabEx: SSTab replacement. Themed and with new features
Originally Posted by Eduardo-
Updated.
Sometimes it happens that fixing a bug, another bug is introduced.
It was the case of the update on 08-Jun-2022 (less than a couple of weeks ago).
Changing .hWnd to .hWndUserControl for Krool's controls everywhere, had the side effect that in one place it actually needed the hWnd of the internal control.
Fixed now.
PS: the problem was that the backcolor of Krool's controls were not painted right when themed. They were painted with the normal backcolor and not with the backcolor of the tab.
Re: (VB6) SSTabEx: SSTab replacement. Themed and with new features
Dear Eduardo,
Once again, thanks a TON for your truly wonderful control.
This post is regarding the display of run-time error (please see screenshot below) while filling up certain values in the 'Property Pages' sheet. So, I am not attaching any sample project. I am just explaining the errors alone.
Well, in a new form,
1) Add an sst control.
2) Allow it to be in its default values itself.
3) Now, right click the control, click on 'Properties' to display the 'Property Pages' sheet.
4) Try to change the values of certain properties in it.
5) For some (not all) values, run-time error gets displayed. When that happens, the sst control appears with slanted lines across it so that when you right click the sst control, no more the 'Properties' menu item shows up.
The above happens in the following cases, as far as I have observed. May be there are some more cases too.
--
TabMaxWidth: a value of 150 and below results in run-time error.
TabMinWidth: a high value (say, 7000) results in run-time error.
TabSeparation: a value of 21 and above results in run-time error.
TabHeight: a high value (say, 5000) results in run-time error.
TabsPerRow: a value of 66 and above results in run-time error.
TabCount: It allows its box to be empty and if you click 'Apply' button when it is empty, it results in run-time error.
TabCount: If the value is '0', it results in run-time error.
TabsPerRow: It allows its box to be empty and if you click 'Apply' when it is empty, it results in run-time error.
TabsPerRow: If the value is '0', it results in run-time error.
--
'May be' the above values I have mentioned are related to my system resolution and hence may vary in your system if your resolution is not same as mine (1920*1080).
I do observe that in some cases of the values, the right message 'Invalid property value' gets displayed. If such a message gets displayed for all invalid values instead of a run-time error, that would suffice, I believe. Anyway, you are the best judge.
Please note that the TabsPerRow error (the value of '0' resulting in runtime error) is the one about which I actually wanted to inform you but before letting you know about the same, I just thought I will test it more and test the other input boxes as well and thus noticed the additional errors I have mentioned above.
I had faced the TabsPerRow error when I started using the control for the first time itself and thereafter becoming careful while entering the value in its input box. So, I don't remember exactly what made me enter '0' in it but I think the following might have happened.
--
Even today, when I try to place the mouse cursor after the value (say 12) present in the input box of TabsPerRow, in order to change the value (say, to 10), the whole value (12) gets selected and highlighted (please see sample screenshot below - for the default value of 3). So, habitually, if I press the backspace key to erase the '2' in 12 and type '0' to make it '10' and then press the 'Enter' key immediately, what actually happens is that the whole value (12) gets deleted (since it is fully selected already) and '0' gets typed. So, when I eventually press 'Enter', it results in error, since only '0' is there and not '10'.
--
I request you to do the needful, if and when possible, so that when I place the cursor in the input box of any property, the cursor stays at the far right of the value. This is the behaviour when I place the cursor in the input box of the 'TabHeight' property alone. The value in the input box does not get selected fully and the cursor stays at the far right of the value (please see screenshot below). If this is the behaviour for other input boxes as well, I would be happy.
One more issue to inform (as follows). I have tried my best in explaining the following issue but if you still feel that I am not clear enough, then sorry about it. That is the best extent to which I am able to explain the following issue, as of now.
--
1. Try to fully select the value in an input box (other than that of TabHeight's) by placing the mouse cursor at the far right of the value and dragging the mouse to the left with the left-mouse-button pressed.
2. The cursor goes to the far left of the value instead of selecting the whole value.
3. The thing is that the value is already selected fully as soon as the cursor is placed at the far right and me dragging the mouse takes the cursor to the far left only.
4. In the case of 'TabHeight' alone, the behaviour is normal. The whole value gets selected as it should (while carrying out the mouse movements as explained above). If this is the behaviour for other input boxes as well, I would be happy.
--
In case the above errors and/or issues do not happen in your system at all, then, kindly bear with me and kindly let me know what mistake I could be doing at my end and guide me further.
Re: (VB6) SSTabEx: SSTab replacement. Themed and with new features
Originally Posted by Eduardo-
Thanks for your detailed report.
Updated, please check if everything is working as expected now.
Thanks a TON, as always, Eduardo.
I tested to a good extent.
As for mouse actions, all perfect and working as expected.
As for run-time error, all working as expected except in the following case.
1. Add an sst in a form.
2. Open the 'Property Pages' sheet to show up in its 'General' tab.
3. Type '0' for 'TabsPerRow'. i.e change the default value of '3' to '0'. It will get accepted.
4. Type '4' for 'Tab Count'. i.e. change the default value of '3' to '4'.
5. Click 'Apply'.
6. Run-time error gets displayed.
I was able to produce run-time error in one other case also but it was happening only very rarely and very randomly if I kept repeatedly giving a high value for TabSelExtraHeight. For all practical purposes, nobody is going to do this. So, not to bother about this but I still thought of mentioning it since you asked me to check. That's all.
Thanks a TON, once again, dear Eduardo, for your fabulous control.
Re: (VB6) SSTabEx: SSTab replacement. Themed and with new features
Thank you softv, I added the validation so TabsPerRow can't be 0 now.
About TabSelExtraHeight, I think it is not possible to have a problem with its values because they are limited to max the TabHeight, can't be more than that. It means that the active tab can't be taller than twice the other tabs.
Re: (VB6) SSTabEx: SSTab replacement. Themed and with new features
Ocx project can first check (remote server file) to generate TLB, then set it to binary compatibility and select the generated OCX file.
If you don't want to bring OCX files to others, you can refer to TLB instead. After the OCX is generated by the client computer, you can select binary compatibility to refer to the OCX.
---------------------------
Activation control' VB.UserControl' failed. This control may not be compatible with your application. Make sure that the version of the control you are using is provided by your application.
---------------------------
If the control is edited again, the project that references the control will be useless. What should I do?