[AccessD] Building a ListView control class?

philippe pons phpons at gmail.com
Sat Mar 7 06:13:44 CST 2009


John,

I did what you told me.

But there is another problem I have to solve.

So my class is like that:

<start code>
Public WithEvents mctlListView As MSComctlLib.Listview

Function mInit(lctlListView) ' I tried lctlListView As Object, lctlListView
as ListView and lctlListView as MSComctlLib.Listview
    ' stores a pointer to the control
    Set mctlListView = lctlListView
End Function
<endcode>

In the Form_Load, I have the following:
<start code>
Dim lclsListView As clsListView
Set lclsListView = New clsListView

lclsListView.mInit Me.VueListe ' Me.VueListe is the listview control
<end code>

The mInit function gets executed but Set mctlListView = lctlListView gives
an err.number=13
Type mismatch.

Then the control in not stored within the mctlListView variable, and the no
events are sunk.

Do you a have any idee what I did wronh?

TIA,

Philippe



2009/3/5 jwcolby <jwcolby at colbyconsulting.com>

> philippe
>
> My guess is that you don't need to set the OnClick event property to [Event
> Procedure] the way that
> you do in Access.
>
> Comment out that line.  It should then compile.  If it lets you dimension
> the variable WithEvents,
> and you can compile, then you will probably be able to sink the events.
>
> If it does in fact compile then instantiate the class and cause an event to
> fire (that you are
> sinking) and blace a breakpoint in the event sink in your class.  See if
> you get control.
>
> I seem to remember building a class for the serial port of that same
> control ocx, and it worked just
> fine.  Of course that was back in the early 80s and I have since lost my
> copy of the control.  That
> is the one that came with VB6, and that you have to have a license to use?
>
> John W. Colby
> www.ColbyConsulting.com
>
>
> philippe pons wrote:
> > Hi all,
> >
> > Following John W. Colby lectures on classes (thank's to him once again),
> I
> > tried to build one for a ListView control.
> > It's an ActiveX that resides within the mscomctl.ocx.
> >
> > I déclared a clsListView.
> > In the header of the class I declared:
> >
> > Private WithEvents mctlListView As MSComctlLib.Listview
> > Private Const cstrEvProc As String = "[Event Procedure]"
> >
> > NB: omitting the name of the class:MSComctlLib leads to an error msg when
> > compiling.
> >
> > Then the init function:
> >
> > Function mInit(lctlListView As ComboBox)
> >     ' stores a pointer to the control
> >     Set mctlListView = lctlListView
> >     ' affecte la chaine [Event Procedure] aux propriétés événementielles
> >     mctlListView.OnClick = cstrEvProc
> > '    mctlListView.ondbkclick = cstrEvProc
> > End Function
> >
> > The problem is that the OnClick property gives a compile error!
> > The ListView control has an Click event, but no OnClick property.
> >
> > If you look at the ListView control in the object brower, it appears that
> it
> > has no event property, just events!
> >
> > I'm afraid it will not be easy to use a class control for this control
> and
> > be able to sink events, what is what I need to do.
> >
> > Any tricks, brothers?
> >
> > Regards,
> >
> > Philippe
> --
> AccessD mailing list
> AccessD at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/accessd
> Website: http://www.databaseadvisors.com
>



More information about the AccessD mailing list