Re: IDL8 CWO issue [message #72496 is a reply to message #72495] |
Tue, 07 September 2010 09:19   |
Michael Galloy
Messages: 1114 Registered: April 2006
|
Senior Member |
|
|
On 9/7/10 9:43 AM, Paul van Delst wrote:
> Larry Kneller wrote:
>> Hi All,
>>
>> I found this "bug" that appears in some of my code now, and describing
>> it may be a little confusing.
>> In what follows I refer to a function called "class_name()" that I use
>> to create an instance of the class
>> "class_name" that is defined in class_name__define.pro.
>>
>> I have a lot of object compound widgets where I make a function that
>> (for clarity) has the same name as my compound widget class, and it
>> returns the widget_id:
>>
>> id = class_name(obj=obj, etc)
>>
>> Here I use the keyword "obj" to get the instance of my class called
>> "class_name" that is created
>> in the obj_new('class_name',...) call in the widget creation function
>> called "class_name".
>>
>> Now, in IDL8 when I call the widget_creation function "class_name",
>>
>> id=class_name(obj=obj,etc.)
>>
>> this is a direct call to "class_name::init" method in my
>> class_name__define program, and if
>> the call does not throw an error, instead of returning a widget id it
>> returns and object reference!!!
>
> Is this due to the IDL8 introduction of
>
> x = class_name(...)
>
> being equivalent to
>
> x = OBJ_NEW("class_name",...)
>
> ?
>
> Not having yet gotten IDL8 installed yet I haven't been able to check that the above was definitely extended to
> user-defined classes. Previous threads have discussed it for the new list() object (i.e. people with user-defined
> functions called "list" ran into problems IIRC).
Yes, this definitely works for user-defined classes also.
Mike
--
www.michaelgalloy.com
Research Mathematician
Tech-X Corporation
|
|
|