Re: Properties [message #37417 is a reply to message #37416] |
Fri, 12 December 2003 14:07  |
David Fanning
Messages: 11724 Registered: August 2001
|
Senior Member |
|
|
JD Smith writes:
> OK, I'm trying to hijack the new Properties capabilities of iTools for
> my own devious purposes, and I've managed whip up this test:
>
> pro TestProps::Config
> b=widget_base(/COLUMN)
> ; Create and initialize the component.
> p=widget_propertysheet(b,VALUE=self)
> widget_control,b,SET_UVALUE=self,/REALIZE
> XManager,'TestPropsPropertySheet',b,/NO_BLOCK
> end
>
> function TestProps::Init
> if self->IDLitComponent::Init(NAME='TestProps') eq 0 then return,0
> self->RegisterProperty,'MY_FIRST_PROPERTY',/BOOLEAN, $
> NAME='Propertus Incipiens'
> return,1
> end
>
> pro TestProps__define
> st={TestProps, $
> INHERITS IDLitComponent, $
> data:0}
> end
>
> Sadly enough, here's what happens:
>
> IDL> a=obj_new('testprops')
> IDL> a->Config
> % Keyword MY_FIRST_PROPERTY not allowed in call to: WIDGET_PROPERTYSHEET
> % Execution halted at: TESTPROPS::CONFIG 5
> /home/jdsmith/idl/irs_cubism/cubism/cube/testprops__define.p ro
> % $MAIN$
>
> I'm really not sure how a property ID is getting transformed into a
> keyword in this call... sounds like some internal _EXTRA hi-jinx to
> me. What ingredient am I missing?
What you are missing are GetProperty and SetProperty methods
that allow use of the keyword MY_FIRST_PROPERTY. Add those,
and you will be in business! :-)
These are required because this is how IDLitComponent can
get and set values, as needed.
Cheers,
David
--
David W. Fanning, Ph.D.
Fanning Software Consulting, Inc.
Phone: 970-221-0438, E-mail: david@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155
|
|
|