Welcome!

By registering with us, you'll be able to discuss, share and private message with other members of our community.

SignUp Now!

[VB6] ActiveX VBFlexGrid (Replacement of the MSFlexGrid control)

Krool

New member
Joined
Jun 8, 2012
Messages
1,515
This is the ActiveX Control version that comes out of the Std-EXE version.

Current version: 1.4.14

The development state of the ActiveX Control version does not necessarily match to the Std-EXE version.
That comes because the Std-EXE version is the "leading source" and the ActiveX Control version is derived from the Std-EXE version after a certain time.
Reason why is that it is not practicable to release a new ActiveX Control after each new feature.
However, certain bugfixes can and will be implemented into the current ActiveX Control version. (Revision)

It is not recommended to use the source code to compile another binary.
If own modification is necessary please rename the library to avoid redundancies.
The source code of the project can also be viewed on GitHub.

All controls are marked as "Safe for Initialization and Scripting" by the IObjectSafety interface.

Also everything is 100% IDE-Safe.

Here is a solution to use the VBFLXGRD14.OCX Registration-Free. (Side-by-side)
Keep in mind that this technology needs at minimum Windows XP SP2 or Windows Server 2003.

Tutorial:
The "Development" machine needs to register the VBFLXGRD14.OCX as usual and use the components for e.g. in a Std-EXE project.
The source project needs to include the Side-by-side resources. (see below)
Then on the "End user" machine you only need the VBFLXGRD14.OCX and the .exe (Std-EXE project) on the same folder.
It will work then without any registration.

The source code of "VBFLXGRD14SideBySide.res" is:

Code:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
   <file name="VBFLXGRD14.OCX">
      <typelib tlbid="{3E5D9624-07F7-4D22-90F8-1314327F7BAC}" version="1.0" flags="control" helpdir="" />
      <comClass clsid="{25017520-D6C7-473A-A17B-2DC89C44B84D}" tlbid="{3E5D9624-07F7-4D22-90F8-1314327F7BAC}" threadingModel="Apartment" progid="VBFLXGRD14.VBFlexGrid" />
      <comClass clsid="{3C1D9D59-7E05-496F-9F49-0ADD34002AE5}" tlbid="{3E5D9624-07F7-4D22-90F8-1314327F7BAC}" threadingModel="Apartment" />
      <comClass clsid="{3EAAE612-84B4-409B-83C1-F68BBF706DD7}" tlbid="{3E5D9624-07F7-4D22-90F8-1314327F7BAC}" threadingModel="Apartment" />
   </file>
</assembly>
 
Last edited:

winman

New member
Joined
Oct 20, 2008
Messages
248
Hello Krool,
I have just downloaded and tried your VBFlexGrid
It is nice!
However, using late-binding slows down the grid performance drastically compared to MSFlexGrid
May I know the reason behind it? Also, what can be done to improve speed?

The following code takes about 10 seconds to execute.( 10 times more than MSFlexGrid)
Code:
Dim objGrid As Object
Dim w as Long

Set objGrid = VBFlexGrid1 'Grid added in design

With objGrid
    .Rows = 5000
    .Cols = 50
    For i = 0 To 4999
        For j = 0 To 49
            w = objGrid.ColWidth(j)
        Next j
    Next i
End With
 

Krool

New member
Joined
Jun 8, 2012
Messages
1,515
Update released to version 1.1

using late-binding slows down the grid performance drastically compared to MSFlexGrid
Did you also try
Code:
Dim objGrid As VBFlexGrid
instead of
Code:
Dim objGrid As Object
?
 

winman

New member
Joined
Oct 20, 2008
Messages
248
Yes, I did
Here is the report of time taken in seconds for early bound and late bound VBFlexGrid and MSFlexGrid as in the code snippet below

Case1: VBFlexGrid (early bound), time = 7.271313 s
Case2: MSFlexGrid (early bound), time = 6.834063 s
Case3: VBFlexGrid (late bound), time = 20.11294 s
Case4: MSFlexGrid (late bound), time =7.252 s

Code:
Dim objGrid As VBFlexGrid   ' Case1

'Dim objGrid As MSFlexGrid  ' Case2

'Dim objGrid As Object  	 ' Case3
'Set objGrid = VBFlexGrid1 ' Case3


'Dim objGrid As Object	 ' Case4
'Set objGrid = MSFlexGrid1  ' Case4


Dim s as String

With objGrid
    .Rows = 5000
    .Cols = 50
    For i = 0 To 4999
        For j = 0 To 49
            s = objGrid.TextMatrix(i,j))
        Next j
    Next i
End With
 

winman

New member
Joined
Oct 20, 2008
Messages
248
Hi Krool,

I have checked the new update. It is really good
The new sort options and the row/column autofit features are awesome and very useful

I have also checked the speed for the late bound grid in the latest update. It is found to be same as the previous update. We have managed to use early bound VBFlexGrid for now. Any improvements in speed for the late bound grid would be of great use for our requirements here.

Thank you :)
 

Krool

New member
Joined
Jun 8, 2012
Messages
1,515
Included LinkSwitch /OPT:NOWIN98 on the VBCompiler which reduced the file size of the OCX binary by about ~16KB
 

gibra

New member
Joined
Oct 6, 2009
Messages
1,693
I've add a Spread class (made by FlyGuy) for in-cell editing and formulas (Excel-like)
It seems that it works very well!
 

Arnoutdv

PowerPoster
Joined
Oct 7, 2013
Messages
3,793
I've add a Spread class (made by FlyGuy) for in-cell editing and formulas (Excel-like)
It seems that it works very well!
Hey that’s my nickname on XtremeVBTalk :wave:
I bet you downloaded it from the FlexGrid functions thread.
 

Carlos Rocha

New member
Joined
Jul 24, 2013
Messages
374
Hi Krool,

I would like to replace C1 vsFlexGrid (that I use for years) with your VBFlexGrid as it seems to be up there with it.
In vsFlexGrid I'm able to "replace" the standard EditWindow with a DateTimePicker by catching the StartEdit event and turn a previously created DTPicker visibility on, right over the cell (StartEdit is called with Row, Col, and Cancel parameters).
I see that the event StartEdit doesn't exist in VBFlexGrid, thought there is a method with the same name. Will I be able to create a similar behavior with VBFlexGrid?

Thanks
 

smileyoufucn

New member
Joined
Nov 22, 2018
Messages
5
Can I add the attribute "GetColIndex" Property?


Public Property Get GetColIndex(ByVal Key As String) As Long 'Add
''''''''
End Property 'Add
 

jedifuk

New member
Joined
Jan 9, 2010
Messages
131
still amazed on how VB6 still popular out there, and still many support additional control. like me. I am one of VB6 programmer and really appreciate this kind of thread..keep it up
 

Krool

New member
Joined
Jun 8, 2012
Messages
1,515
Can I add the attribute "GetColIndex" Property?


Public Property Get GetColIndex(ByVal Key As String) As Long 'Add
''''''''
End Property 'Add

There is already a ColIndex property available which just does what you suggested with your "GetColIndex".
Code:
Public Property Get ColIndex(ByVal Key As String) As Long

I would like to replace C1 vsFlexGrid (that I use for years) with your VBFlexGrid as it seems to be up there with it.
In vsFlexGrid I'm able to "replace" the standard EditWindow with a DateTimePicker by catching the StartEdit event and turn a previously created DTPicker visibility on, right over the cell (StartEdit is called with Row, Col, and Cancel parameters).
I see that the event StartEdit doesn't exist in VBFlexGrid, thought there is a method with the same name. Will I be able to create a similar behavior with VBFlexGrid?

You can catch the BeforeEdit event (EditWindow not yet created) and set Cancel = True and turn on your own DTPicker.
If you catch EnterEdit event it's already too late as EditWindow is created.
 
Last edited:

Carlos Rocha

New member
Joined
Jul 24, 2013
Messages
374
You can catch the BeforeEdit event (EditWindow not yet created) and set Cancel = True and turn on your own DTPicker.
If you catch EnterEdit event it's already too late as EditWindow is created.
Thanks, this info will save me lots of time.
 

jedifuk

New member
Joined
Jan 9, 2010
Messages
131
i have not use this grid before, right now i am focusing on LynxGrid, I tried your Grid before, but somehow the flexibility perhaps add ability for combobox to cell
 

Krool

New member
Joined
Jun 8, 2012
Messages
1,515
i have not use this grid before, right now i am focusing on LynxGrid, I tried your Grid before, but somehow the flexibility perhaps add ability for combobox to cell

The following combo modes are available in VBFlexGrid:
FlexComboModeNone (only EditWindow)
FlexComboModeDropDown (DropDownList)
FlexComboModeEditable (DropDownCombo)
FlexComboModeButton (Custom)
 

Arnoutdv

PowerPoster
Joined
Oct 7, 2013
Messages
3,793
@aklougbo you should have started your own thread for asking something which is not really related to your question.

XtremeVBTalk is gone, no one knows why.
There was no time for admins/mods to save the code libraries, everything is just gone.
Anything specific you needed or wanted from that thread?

The Internet Archive, Wayback Machinee saved parts

Page 1:
http://web.archive.org/web/20161007...om/code-library/35110-flexgrid-functions.html

Page 2:
http://web.archive.org/web/20161007.../code-library/35110-flexgrid-functions-2.html
 
Last edited:
Top