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

Home » Public Forums » archive » Re: Idl pointers/widget events
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: Idl pointers/widget events [message #12490] Thu, 13 August 1998 00:00 Go to previous message
davidf is currently offline  davidf
Messages: 2866
Registered: September 1996
Senior Member
Damian Hamilton (dhamilton@ssrl.slac.stanford.edu) writes:

> I am having a pointer problem. I use a pointer to maintain information from a
> widget event handler (as per David Fanning). However, despite the fact that
> the "info" structure which contains the pointer is passed successfully into the
> container with "set_uvalue", the pointer itself becomes invalid. Is there some
> problem with IDL for VMS or am I just doing something wrong?
>
> ptr = ptr_new({thing:thing, junk:junk})
> info = {stuff:stuff, ptr:ptr}
> widget_control, tlb, set_uvalue=info, /no_copy
> xmanager, "config", tlb, /no_block
>
> ...
>
> (now, in my event_handler "config_event":)
>
> widget_control, event.top, get_uvalue=info, /no_copy
>
> (at this point, "info" is a completely valid structure, and I can examine
> "info.stuff" to my heart's content. However, an attempt to reference
> "(*info.ptr)" results in crashing my program and an invalid pointer message.)

This seems odd. Here is a little example program that works
perfectly for me. How about you?

pro config_event, event
widget_control, event.top, get_uvalue=info
Help, info.ptr, (*info.ptr).thing, (*info.ptr).junk
print, (*info.ptr).thing
print, (*info.ptr).junk
END

pro config
tlb=widget_base()
button = widget_button(tlb, value='do it', scr_xsize=100)
thing=findgen(10)
junk = bytarr(20)
stuff=5
ptr = ptr_new({thing:thing, junk:junk})
info = {stuff:stuff, ptr:ptr}
widget_control, tlb, set_uvalue=info, /no_copy, /realize
xmanager, "config", tlb, /no_block
END

> I have also noticed some inconsistency with this problem between regular IDL
> and IDL/DE, which seems impossible. However, sometimes my code works in the
> development environment, but not in the regular command line. ?

No. I am sure this is impossible, even if it DOES involve
computers. :-) Something else has to explain this. Perhaps
your paths are not identical. But let's work on the first
problem first. What version of IDL?

Print, !Version

Cheers,

David

--
David Fanning, Ph.D.
Fanning Software Consulting
E-Mail: davidf@dfanning.com
Phone: 970-221-0438, Toll Free Book Orders: 1-888-461-0155
Coyote's Guide to IDL Programming: http://www.dfanning.com/
[Message index]
 
Read Message
Read Message
Previous Topic: Re: RPC in IDL 5.0
Next Topic: Re: Porting IDL

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

Current Time: Sun Oct 12 10:43:32 PDT 2025

Total time taken to generate the page: 0.23950 seconds