NotateXpress v9 ActiveX FAQ

Contact Support



Q1How do I connect the ImagXpress and NotateXpress controls?
Q2How do I disconnect the ImagXpress and NotateXpress controls?
Q3How do I create an annotation object programmatically?
Q4How do I keep track of the current layer?
Q5How do I make annotations permanent?
Q6How do I use the Toolbar?
Q7How do I use and modify the Context menu?
Q8How do I distribute my application (in .NET, Delphi, VB etc.)?
Q9What DLL’s do I need to distribute with my application?
Q10I am using the Brand method on the control and seeing an increase in memory. How do I resolve this issue?
Q11Where can I find additional “How To” type sample code that demonstrates the usage of the control?

Q1: How do I connect the ImagXpress and NotateXpress controls?
If you are in Visual Basic, set the NotateXpress Client property to the name of the ImagXpress control.

If you are in another development environment call the NotateXpress SetClientWindow method, passing the window handle of the ImagXpress control via the Hwnd property on the ImagXpress control.

If you are using NotateXpress by reference in Visual Basic, you will need to call the SetClientWindow method.

If neither of these methods are available, use the InterFaceConnect method.

Q2: How do I disconnect the ImagXpress and NotateXpress controls?
If you connected using the Client property, set the Client property to a null string.

If you connected with a call to SetClientWindow, call it again with null.

If you used the SetClientWindow method, call the InterfaceDisconnect method.

Also, set the ImagXpress FileName property = “ “.

Q3: How do I create an annotation object programmatically?
1. Create a programmable object template using the ElementCreate method.
Set attributes of this template to specify object characteristics (see Programmable Element Attributes in the NotateXpress helpfile). For example:

Dim e As Long
e = NotateXpress1.ElementCreate
NotateXpress1.ElementSetType e, NX_BlockHighlightTool
NotateXpress1.ElementSetBoundingRect e, 122, 314, 437, 339
NotateXpress1.ElementSetFillColor e, RGB(255,255,0)
NotateXpress1.ElementSetToolTipText e, “Block Highlight”

2. Call the ElementAppend method. For example:

NotateXpress1.ElementAppend e

3. Destroy via the ElementDestroy method the programmable object template if you are not going to reuse it to eliminate the possibility of memory leaks. For example:

NotateXpress1.ElementDestroy e

Q4: How do I keep track of the current layer?
Although you can always check NotateXpress’s CurrentLayer property, here is an easy way to keep track of the current layer:

1. Declare your own current layer variable. For example,

Dim currLayer As Long
currLayer = NotateXpress1.CreateLayer

2. In NotateXpress’s CurrentLayerChange event, set this variable to the layer value passed in the event. For example,

currLayer = newLayer

Q5: How do I make annotations permanent?
Call the NotateXpress Brand method and specify the desired bit depth as the parameter. For example:

NotateXpress1.Brand 24

Q6: How do I use the Toolbar?
1. Make sure ToolBarActivated property is True (True is the default).
2. Make sure you have created a layer via the CreateLayer method.
3. Call the ToolBarSetVisible method for that level.

It is common to have NotateXpress’ toolbar visible while ImagXpress’ toolbar is also visible. If ImagXpress’ toolbar is currently set to a tool other than the pointer (Tool_none) the NotateXpress toolbar tools will not activate. Inform the user to set the ImagXpress tool to the pointer to be able to use the NotateXpress toolbar. A well worded tooltip for the pointer arrow is a good measure.

Q7: How do I use and modify the Context menu?
To enable the built-in Context menu set the MenuSetEnabled property to True (the default is False). For example,

ImagXpress1.MenuSetEnabled Menu_Context, TOOL_None, True

If you want to modify the strings that are displayed on the context menu, call MenuChangeItem. To remove an item call MenuDeleteItem.

To determine what items are available on the Context menu, use MenuGetFirstItemID and MenuGetNextItemID to iterate through the available context menu items calling MenuGetItem with the various IDs.

To add additional user-defined items to the Context menu, use MenuAddItem.

Q8: How do I distribute my application (in .NET, Delphi, VB etc.)?
PLEASE NOTE: NotateXpress is unlocked using the ImagXpress 9 ActiveX instructions. Please refer to:
http://www.pegasusimaging.com/imagxpress9faq.htm#Q2

Q9: What DLL’s do I need to distribute with my application?
PegasusImaging.ActiveX.NotateXpress9.dll

Please note, the PegasusImaging.ActiveX.NotateXpress9.dll must be registered on the target system using the regsvr32.exe command. For example: regsvr32.exe PegasusImaging.ActiveX.NotateXpress9.dll.

Q10: I am using the Brand method on the control and seeing an increase in memory. How do I resolve this issue?
Set the ImagXpress OwnDIB property = True. This will allow the memory to be managed properly between the ImagXpress and NotateXpress controls. Also, please be sure to disconnect the ImagXpress and NotateXpress controls as described in Q2(see above).

Q11: Where can I find additional “How To” type sample code that demonstrates the usage of the control?
Please refer to the “How To” section in the Contents section of the appropriate help file (.NET or ActiveX) for sample code showing the use of the control.


Sitemap | © 2008 Pegasus Imaging Corporation. All Rights Reserved. | Privacy Statement.