Cancelling events on a COM Object

O

Oliver Nelson

I have MapPoint working in Python, and I'm trying to cancel events on
the map, but I can't seem to make that happen. I'm responding to the
events successfully in my panel object. My code is like this:

global MapPointMod
MapPointMod =
win32com.client.gencache.EnsureModule("{51C0A9CA-F7B7-4F5A-96F4-43927C6FA50F}",
0, 1, 0)

class MyPanel(wx.Panel):
def __init__(self, *args, **kwds):
# begin wxGlade: MyPanel.__init__
kwds["style"] = wx.TAB_TRAVERSAL
wx.Panel.__init__(self, *args, **kwds)
self.frame = args[0]

MyMap = MakeActiveXClass(MapPointMod.MappointControl,
eventObj=self)
self.window_1 = MyMap(self, -1)
self.window_1.OpenMap("C:\\TEMP\\GPS_ON.ptt")
....
....
def OnBeforeClick(self, Button, Shift, X, Y, Cancel):
print "tada"


My event fires just fine, but I can't seem to figure out how to cancel
the event so that mappoint doesn't do its stuff with it...I've tried
setting Cancel based on the mappoint specs, but it doesn't seem to get
sent back anywhere...

Any ideas please?

Thanx,

OLIVER
 
R

Roger Upole

Oliver said:
I have MapPoint working in Python, and I'm trying to cancel events on the map, but I can't seem to make that happen. I'm
responding to the events successfully in my panel object. My code is like this:

global MapPointMod
MapPointMod = win32com.client.gencache.EnsureModule("{51C0A9CA-F7B7-4F5A-96F4-43927C6FA50F}", 0, 1, 0)

class MyPanel(wx.Panel):
def __init__(self, *args, **kwds):
# begin wxGlade: MyPanel.__init__
kwds["style"] = wx.TAB_TRAVERSAL
wx.Panel.__init__(self, *args, **kwds)
self.frame = args[0]

MyMap = MakeActiveXClass(MapPointMod.MappointControl, eventObj=self)
self.window_1 = MyMap(self, -1)
self.window_1.OpenMap("C:\\TEMP\\GPS_ON.ptt")
...
...
def OnBeforeClick(self, Button, Shift, X, Y, Cancel):
print "tada"


My event fires just fine, but I can't seem to figure out how to cancel the event so that mappoint doesn't do its stuff with
it...I've tried setting Cancel based on the mappoint specs, but it doesn't seem to get sent back anywhere...

Any ideas please?

Thanx,

OLIVER

Instead of assigning to the variable name, output parameters need to be
returned from the method

Roger
 
O

Oliver Nelson

James,

I was getting an error everytime so I thought I had a setup problem...

Sorry everybody...

OLIVER
 
O

Oliver Nelson

Roger,

I tried modifying my code so that I have

def OnBeforeClick(self, Button, Shift, X, Y, Cancel):
print "click"
Cancel = True
return Cancel

But this doesn't seem to have changed anything. Am I doing this wrong?

OLIVER

Roger said:
Oliver said:
I have MapPoint working in Python, and I'm trying to cancel events on the map, but I can't seem to make that happen. I'm
responding to the events successfully in my panel object. My code is like this:

global MapPointMod
MapPointMod = win32com.client.gencache.EnsureModule("{51C0A9CA-F7B7-4F5A-96F4-43927C6FA50F}", 0, 1, 0)

class MyPanel(wx.Panel):
def __init__(self, *args, **kwds):
# begin wxGlade: MyPanel.__init__
kwds["style"] = wx.TAB_TRAVERSAL
wx.Panel.__init__(self, *args, **kwds)
self.frame = args[0]

MyMap = MakeActiveXClass(MapPointMod.MappointControl, eventObj=self)
self.window_1 = MyMap(self, -1)
self.window_1.OpenMap("C:\\TEMP\\GPS_ON.ptt")
...
...
def OnBeforeClick(self, Button, Shift, X, Y, Cancel):
print "tada"


My event fires just fine, but I can't seem to figure out how to cancel the event so that mappoint doesn't do its stuff with
it...I've tried setting Cancel based on the mappoint specs, but it doesn't seem to get sent back anywhere...

Any ideas please?

Thanx,

OLIVER

Instead of assigning to the variable name, output parameters need to be
returned from the method

Roger
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,046
Latest member
Gavizuho

Latest Threads

Top