Hexagora Forum
Hexagora Forum
Home | Profile | Active Topics | Members | Search | FAQ
Username:
Password:
Save Password
Forgot your Password?

 All Forums
 Other hexagora products
 Programs (Programmi)
 Vb6 ctlUniComboBoxXP Missing Functionality
 New Topic  Reply to Topic
 Printer Friendly
Author Previous Topic Topic Next Topic  

slimke
Novice

8 Posts

Posted - 29 Oct 2014 :  23:44:09  Show Profile  Reply with Quote
hello,

my company bought a licence of the vb6 unicoce controls. They work and look pretty well.

But we consider some problems.

1st:
- you load some items into the combobox using the ".additem" method
- you click on the arrow to open up the combobox
- you start writing inside the combobox (eg. "123") and the elements previously added to the combobox start scrolling to the wanted element "123" (compared to the text)

The ctlUniComboBoxXP Controls doesnt or i missed to set the right property. I tried each style but it didn't work.

2nd:
- you do like described above (1st)
- you leave the combobox by using the tab key
- the old vb6 combobox closes the item preview
- ctlUniComboBoxXP remains open.

i know i can use "ctlUniComboBoxXP.DropDown false" command to close the combobox but my program has about 200 comboboxes and that would't be nice to implement.

3rd:
if you open up a ComboBox and you want to select the last visible item with the mouse icon the items start scrolling down which makes it almost impossible to select the last visible item using the mouse. The old vb6 standard combobox doesn't.

4th:
the standard vb6 combobox automatically selects the text of an selected item. the ctlUniComboBoxXP doesn't.

5th:
the ctlUniComboBoxXP has no List-Property in the UI-Designer.

i have a sample project but i can't upload it here in forum?
Is there a chance to get an update of the combobox control to get the standard behaviour of the old control?

Thanks for listening
Greetings from germany
SLimke

Edited by - slimke on 31 Oct 2014 05:57:54

s.dav
Site Admin

Italy
3364 Posts

Posted - 31 Oct 2014 :  03:27:04  Show Profile  Visit s.dav's Homepage  Reply with Quote
Slimke, check out our contact page and send me a sample which compares the old one with our.
So I can check the issue and provide a solution (if possible)

Regards, Davide
Go to Top of Page

s.dav
Site Admin

Italy
3364 Posts

Posted - 03 Nov 2014 :  05:45:37  Show Profile  Visit s.dav's Homepage  Reply with Quote
Problems 1,2,4 have been fixed (for point 4 I added a new property SelectOnFocus (false by default))
I tried to fix point 3 but I've not found a solution yet; this seems to be a standard windows behavior
Point 5 is not necessary.

Please wait some days when I'll upload the new version

Regards, Davide
Go to Top of Page

slimke
Novice

8 Posts

Posted - 04 Nov 2014 :  00:35:00  Show Profile  Reply with Quote
Thanks very much for this quick fix!! This solves a lot of problems!!

But for the moment there is one more thing:

1st:
- you load some items into the combobox using the ".additem" method
- you click on the arrow to open up the combobox
- you start writing inside the combobox (eg. "123") and the elements previously added to the combobox start scrolling to the wanted element "123" (compared to the text)
- you push down arrow key and the original vb6 combobox selects the wanted element ("123")
- the unicode combobox selects the first element


edit:
"SelectOnFocus" works fine and is usefull but i meant something different:

- you open up a combobox
- you select an item
- the combobox closes
- the text of the combobox item is selected

- the ctlUniComboBoxXP does not select the text after selecting an item

Edited by - slimke on 04 Nov 2014 01:43:51
Go to Top of Page

slimke
Novice

8 Posts

Posted - 10 Nov 2014 :  05:37:55  Show Profile  Reply with Quote
Any news about this problem?

Greetings
SLimke
Go to Top of Page

s.dav
Site Admin

Italy
3364 Posts

Posted - 11 Nov 2014 :  04:29:43  Show Profile  Visit s.dav's Homepage  Reply with Quote
Slimke,

I think you are using the Combo box in the wrong way

- when the combo is a ComboList you need to check the listindex because it accepts only values in list, the selected list value and the combo text value are always in sync
- when the combo is a drop down combo you haven't to check the index, only the text, because it can contain also values not in list

You are right, our combo has this small difference but if you use it in the right way it is not important.

The standard combo box, selects the written value, only when you open the drop down list using the arrow button but if you write a text with the list opened and click away from the combo, it will use the old wrong listindex (that can be different from the value written in the box) so for a dropdowncombo the listindex and the value in the box can be different.

Also, the standard combobox selects every type of value, also values not in list.

Regards, Davide
Go to Top of Page

slimke
Novice

8 Posts

Posted - 06 Jan 2015 :  03:10:43  Show Profile  Reply with Quote
Hello Davide,

happy new year :)

1st:
- you load some items into the combobox using the ".additem" method
- you click on the arrow to open up the combobox
- you start writing inside the combobox (eg. "123") and the elements previously added to the combobox start scrolling to the wanted element "123" (compared to the text)
- you push down arrow key and the original vb6 combobox selects the wanted element ("123")
- the unicode combobox selects the first element

This issue is causing some problems in our company now.
I have a solution for this implemented to the keyUp Event of some of the most important comboboxes in our software.

The Code looks like this:

Public Sub PreSelectItemInComboBoxWhileTyping(ByRef comboBox As ctlUniComboBoxXP)
    Static sTextOld As String
    Dim i           As Integer
    Dim sPos        As Integer
    
    If comboBox.text = "" Then
        comboBox.ListIndex = 0
    End If
 
    With comboBox

        ' Only when text has changed
        If sTextOld <> .text Then

            For i = .ListIndex To .ListCount - 1

                If i >= 0 Then
                    If LCase$(.List(i)) Like LCase$(.text + "*") Then
                        sPos = .SelStart
                        sTextOld = .text
                        .text = .List(i)
                        .SelStart = sPos
                        .SelLength = Len(.text) - sPos + 1
                        .ListIndex = i
    
                        Exit For
    
                    End If
                End If

            Next i

        End If

    End With
End Sub

This code analyses the text written into a combobox and sets the ListIndex property to the element which is starting with the wanted text.

Isn't it possible to get this behaviour implemented in the ctlUniComboBoxXP on your side?
It would be a lot of work to implement this to all of our comboboxes (> 200). On your homepage it says "Fully compatible with original VB6 controls" which means to me that the behaviour of your new unicode-controls should be like the behaviour of the original vb6-controls.

I hope we get this problem fixed soon.

Greetings from Germany
SLimke
Go to Top of Page

s.dav
Site Admin

Italy
3364 Posts

Posted - 07 Jan 2015 :  00:02:51  Show Profile  Visit s.dav's Homepage  Reply with Quote
Hi Slimke,

happy new year to you :-)

As I've already told you, checking the listindex in a combo box of type "DropDown Combo" is not a good idea.
I expained you that in many cases also the VB6 control doesn't have the right listindex (the listindex is not poining to the written value although it is present in the list) so I prefer not to add this behaviour on mine.

You should check the text on this type of combo boxes.
The listindex should be used for Combo of type "DropDown List"


Regards, Davide
Go to Top of Page

slimke
Novice

8 Posts

Posted - 30 Jan 2015 :  04:44:04  Show Profile  Reply with Quote
Hello davide,

thx very much again for information.

My users found another problem with the new combobox controls.

- select an item in a combobox which has style = 2 - eUniComboBox_DropDownComboXP
- mark all text in comboBox
- right click in combobox
--> a contextmenu should be opened where you can copy the text etc.
--> this context menu is missing
--> ctrl + c works fine

could this be implemented?
Go to Top of Page

s.dav
Site Admin

Italy
3364 Posts

Posted - 31 Jan 2015 :  13:02:37  Show Profile  Visit s.dav's Homepage  Reply with Quote
I don't know if it is a standard behavior or VB6 standard controls implemented a custom context menu for this; I'll check

Regards, Davide
Go to Top of Page

s.dav
Site Admin

Italy
3364 Posts

Posted - 02 Feb 2015 :  00:07:09  Show Profile  Visit s.dav's Homepage  Reply with Quote
now it should work as you expect; check the latest version on our site

Regards, Davide
Go to Top of Page
  Previous Topic Topic Next Topic  
 New Topic  Reply to Topic
 Printer Friendly
Jump To:
Hexagora Forum © s.dav Go To Top Of Page
Snitz Forums 2000