467,877 Members | 1,210 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 467,877 developers. It's quick & easy.

ActiveX control in python vs ActiveX control in vb 6 (piece of code)

vml
Hello,

I am trying to mograte from vb 6 to python.

I have a very usefull AX control. It can be :
-just a bitmap
-an active picture where you can plot data and put cursors
-a data explorer

Those 3 behavior are driven by one property in visual studio when you
insert the AX control in a form: the property ModuleName:
-'default' for bitmap
-'Picture' for a picture

I try to insert this AX control in a wxpython based application (I
used one of the example delivered with wx) but when I try to change
the property to get an active picture it does not work and display me
the default bitmap :(
Here is the pice of code
################################################## ##################################

import wx

if wx.Platform == '__WXMSW__':
from wx.lib.activexwrapper import MakeActiveXClass
import win32com.client
try:
ocx = win32com.client.gencache.EnsureModule('{33924602-
C29E-4915-91B1-767CA3D675C2}',0x0,1,0)

except:
raise ImportError("Can't load ocx")

#----------------------------------------------------------------------
class TestPanel(wx.Panel):
def __init__(self, parent, log):
wx.Panel.__init__(self, parent, -1)
self.pdf = None

sizer = wx.BoxSizer(wx.VERTICAL)
btnSizer = wx.BoxSizer(wx.HORIZONTAL)

# this function creates a new class that can be used as
# a wxWindow, but contains the given ActiveX control.
coclass=ocx.ActiveXModuleLoader

print coclass

coclass.ModuleName='picture'

ActiveXWrapper = MakeActiveXClass(coclass)

# create an instance of the new class
self.pdf = ActiveXWrapper(self)
#self.pdf.ModuleName='PictureManager'

sizer.Add(self.pdf, 1, wx.EXPAND)

btn = wx.Button(self, wx.NewId(), "Open PDF File")
wx.EVT_BUTTON(self, btn.GetId(), self.OnOpenButton)
btnSizer.Add(btn, 1, wx.EXPAND|wx.ALL, 5)

btn = wx.Button(self, wx.NewId(), "<-- Previous Page")
wx.EVT_BUTTON(self, btn.GetId(), self.OnPrevPageButton)
btnSizer.Add(btn, 1, wx.EXPAND|wx.ALL, 5)

btn = wx.Button(self, wx.NewId(), "Next Page -->")
wx.EVT_BUTTON(self, btn.GetId(), self.OnNextPageButton)
btnSizer.Add(btn, 1, wx.EXPAND|wx.ALL, 5)
btnSizer.Add((50, -1), 2, wx.EXPAND)
sizer.Add(btnSizer, 0, wx.EXPAND)

self.SetSizer(sizer)
self.SetAutoLayout(True)

wx.EVT_WINDOW_DESTROY(self, self.OnDestroy)
def OnDestroy(self, evt):
if self.pdf:
self.pdf.Cleanup()
self.pdf = None

def OnOpenButton(self, event):
print 'open'
def OnPrevPageButton(self, event):
print 'button'

def OnNextPageButton(self, event):
print self.pdf.ModuleName

#----------------------------------------------------------------------

def runTest(frame, nb, log):
if wxPlatform == '__WXMSW__':
win = TestPanel(nb, log)
return win
else:
dlg = wx.MessageDialog(frame, 'This demo only works on MSW.',
'Sorry', wx.OK | wx.ICON_INFORMATION)
dlg.ShowModal()
dlg.Destroy()
overview = __doc__

#----------------------------------------------------------------------
if __name__ == '__main__':
import sys
class TestFrame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, -1, "ActiveX test",
size=(640, 480),
style=wx.DEFAULT_FRAME_STYLE|
wx.NO_FULL_REPAINT_ON_RESIZE)
self.tp = TestPanel(self, sys.stdout)
app = wx.PySimpleApp()
frame = TestFrame()
frame.Show(True)
app.MainLoop()

################################################## ###########################

I suspect that the activex control is bugged .... but how to know that
since it is working perfectly under visual studio vb 6 but not with
python ?:(

please help me !

Aug 22 '07 #1
  • viewed: 1779
Share:

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

1 post views Thread by Vin | last post: by
4 posts views Thread by angel | last post: by
3 posts views Thread by Maurice LING | last post: by
5 posts views Thread by serge calderara | last post: by
1 post views Thread by Salim | last post: by
3 posts views Thread by JJ | last post: by
2 posts views Thread by =?Utf-8?B?TWlrZSBDb2xsaW5z?= | last post: by
reply views Thread by MrMoon | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.