comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Object Funkiness
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Object Funkiness [message #9654 is a reply to message #9646] Thu, 31 July 1997 00:00 Go to previous messageGo to previous message
J.D. Smith is currently offline  J.D. Smith
Messages: 214
Registered: August 1996
Senior Member
J.D. Smith wrote:
>
> OK OOP experts. Here's a conundrum...
>
> here's a procedure to test dynamic binding of methods in IDL...
>
> pro testdb
> a=obj_new('eeke','a')
> b=obj_new('eeke','b')
> list=[a,b]
> ran=fix(randomu(sd) ge .5)
> list[ran]->Message, ran, 1-ran
> obj_destroy,list
> return
> end
>
> and the file eek__define.pro contains:
>
> pro eeke::Message, ran, ran2
> print,self.val,' random: ',ran, ran2
> return
> end
> function eeke::Init,val
> self.val=val
> return,1
> end
> pro eeke__define
> struct={eeke,val:''}
> return
> end
>
> When I run it I get
>
> IDL> testdb
>
> list[ran]->Message, ran, 1-ran
> ^
> % MESSAGE: Incorrect number of arguments.
> At: /u/jdsmith/idl/pro/mylib/testdb.pro, Line 6
> % Compiled module: TESTDB.
> % Attempt to call undefined procedure/function: 'TESTDB'.
> % Execution halted at: $MAIN$
>
> If I change the name of Message to something else, or take away the
> arguments to message in both the method definition and the call, the
> error disappears. Is 'message' somehow different than other names? I
> thought it could be shadowing the idl built-in message, and screwing up
> the dynamic binding, but I've tried tons of other built-in names (like
> 'print', 'xmanager', etc.) with nary a problem. Perhaps 'Message' is
> some IDL internal method for all objects... anyway it is very
> troublesome, and I'd like to figure out the cause. Any help would be
> greatly appreciated.
>
> JD
>
> P.S. Except for this problem, dynamic binding seems to work well.


I've found that this isn't limited to dynamic binding. Indeed, if you
just try:

a=obj_new('eek','aval')

and then, e.g.:

a->Message,1,0

you will still get the error. I've alerted the tech support crew at
RSI. At least a list of which method names we're not allowed to use
would be good. But, really, this bug needs resolution.


JD
[Message index]
 
Read Message
Read Message
Read Message
Previous Topic: Re: sound from IDL
Next Topic: Advanced IDL Programming Course

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Sat Oct 11 20:15:58 PDT 2025

Total time taken to generate the page: 0.40093 seconds