The PROGID is only required if you connect to the object directly by name in the code. We do this to verify that the DLL files are available in the directory. If we add the
eXG2antt/eXPrint control directly to the user interface using the IDE than this isn't needed because underlying the
CLSID is used by the IDE.
Sample code where the progid is required in the manifest:
The ItemFromPoint property returns the handle of the item from the specified
In order to use the ItemFromPoint function in PowerBuilder, you may want
to use the x-script of control's ExecuteTemplate property as:
li_filenumber = FileOpen ("pbdebug.txt", TEXTMODE!, WRITE!, LOCKWRITE!, APPEND! )
IF NOT isNULL(li_filenumber) AND li_filenumber > 0 THEN
FileWriteEx(li_filenumber, string (this.object.ExecuteTemplate( "Dim h, c, hit; h = ItemFromPoint(-1,-1, c, hit )" ) ) + "~r~n" )
where the ExecuteTemplate property executes x-script code and returns the
result of the last operation. The x-script
language is our internal programming language, that's provided by all of our
/COM components, to access any property or method, that may be inaccessible
due limitation of your programming language/environment.
Most of our UI controls provides the following properties that can work
Because PowerBuilder is not able to handle runtime-licensed controls we offer your
free of charge the runtime-less version of the component you purchased from us.
The runtime-less version of the registered component is exactly the same as the
one you evaluated, which means it works on the client machine using your PowerBuilder application.
Please contact us ASAP and provide the following information:
Based on the information you provide we will build and send you a new
update that includes the runtime-less version of the component, that can be
used on your PowerBuilder environment. The new update includes the
information you provided in the License page of the DLL, as you can see
The "C0148. The identifier 'cancel' conflicts with an existing property with this name." warning may occur if trying to handle events like AllowLink, AllowAutoDrag, BeforeDrawPart, BeforeExpandItem, BarParentChange, Edit, ValidateValue.
These events contains a 'cancel' parameter, which makes the warning to show up. Instead of using any these events you can use the "Event" event (The Event notification occurs ANY time the control fires an event). The EventParam property gives access to an parameter during the Event event, giving the parameter index (zero-based)
For instance, let's say we need to prevent expanding or collapsing the items, so normaly we have to handle the BeforeExpandItem, and set the Cancel parameter on True as shown:
begin event BeforeExpandItem(long Item,any Cancel) - Fired before an item is about to be expanded (collapsed)
Cancel = true
end event BeforeExpandItem
Using the Event/EventParam the sample shows as:
begin event Event(long EventID) - Notifies the application once the control fires an event.
if ( EventID = 16 ) then // BeforeExpandItem/16
end event Event
Each event has an unique identifier (16 for BeforeExpandItem), so if you need to handle a different event, you can use the following x-script to determine the identifier (copy and paste the following x-script into your exhelper tool)