Rick,

I'm having what I assume is a scoping problem using the native API and
can't figure out how to do what I want.

In Rexx I can do this:

  stFont1 = self~getStaticControl(IDC_ST_FONT1)

  say 'Static control:' stFont1 'is a DialogControl?'
stFont1~isA(.DialogControl)

and get this output:

Static control: a StaticControl is a DialogControl? 1

The next line of Rexx code is

  parse value stFont1~getTextSize("My name is Mark", "Ms Shell Dlg 2",
8) with cx cy

where getTextSize() is implemented as a native API method

In the API method, I essentially need to do a OSELF
self~isA(.DialogControl), but have problems.  Print out from the C++
code:

object id: a StaticControl
object is instance of DIALOGCONTROL (context class)? 0
object is instance of DIALOGCONTROL (package class)? 0
object is of type     DIALOGCONTROL                ? 0

(Trying to get the package class was just grasping at straws.)

In the Rexx code I can tell the static control is a DialogControl, it
seems there should be a way to tell in the native API method.

Here is a summary of the class hierarchy, which I know is the cause of
this, I just want to get around it if I can:

In 'oodplain.cls'

::class WindowBase public mixinclass object
::method getTextSize

::class PlainBaseDialog ... inherit WindowBase

In 'oodwin32.cls'

::class DialogControl ... inherit WindowBase

::class StaticControl subclass DialogControl

If I change:

stFont1~getTextSize(...)

to

self~getTextSize(...)

then in the C++ code the test IsOfType(PlainBaseDialog) returns true.

I can see, dimly, what is going on I think.  PlainBaseDialog and
WindowBase are defined in the same package file.  While DialogControl
is defined in package file that WindowBase knows nothing about.

But, since in the Rexx code I can do: stFont1~isA(.DialogControl) and
get the right answer, I'm thinking there is some way to do it in the
native API, if I just use the right approach.

--
Mark Miesfeld

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel

Reply via email to