[Tutor] win32com and ocx with properties
John
jfabiani at yolo.com
Thu Dec 10 01:20:55 CET 2009
On Wednesday 09 December 2009 01:45:38 pm bob gailer wrote:
> John wrote:
> > I realize that some may consider this an advance question. But there are
> > many here that are advance. So I'm hoping some nice soul will help me.
> >
> > I'm attempting to use a OCX designed to talk with QuickBooks. I'm using
> > win32com for the first time and have discovered an issue that I'm sure
> > others have run into. But researching google etc. has not helped.
> >
> > obj = win32com.client.Dispatch("InQB.Invoice.1")
> > #In the VB code
> > #obj.ItemName(0) = 'string'
> >
> > #in python I'm trying
> > obj.ItemName[0] = 'string'
>
> Try:
>
> obj.ItemName.Item[0] = 'string'
>
> In VB obj.ItemName(0) = 'string' Item is the "default" property.
> obj.ItemName.Item(0) = 'string' will also work in VB
>
> > #error is "Instancemethod object does not support item assignment"
> >
> > I found and ran makepy.py and here is the code it created dealing with my
> > obj.
> >
> > # The method ItemName is actually a property, but must be used as a
> > method to correctly pass the arguments
> > def ItemName(self, ItemIndex=defaultNamedNotOptArg):
> > """Line item property: Reference to the kind of item."""
> > # Result is a Unicode object
> > return self._oleobj_.InvokeTypes(19, LCID, 2, (8, 0),
> > ((3,1),),ItemIndex )
> >
> > As I read the above code it can only return a string not assign anything.
> > I'm not sure what "InvokeTypes" does.
> >
> > So the question is how can I get around this issue? I'm sure others need
> > to set properties in com objects.
> >
> > BTW does anyone know of a win32com forum or list?
>
> There is python-win32 at python.org
Someone suggested I use:
obj.SetItemName(0,'test')
And it works (who knew)
Thanks to all that replied,
Actually thanks to all you tutors...
Johnf
More information about the Tutor
mailing list