Large widget identifiers [message #33184] |
Fri, 13 December 2002 02:59  |
Ian Dean
Messages: 26 Registered: January 2000
|
Junior Member |
|
|
Hi,
Has anyone come across widget IDs "wrapping" when they reach a short int
limit (65535)?
We have a run-time IDL program that is running continuously for days/weeks.
During this time several runs of data are processed. Each run requires
approximately 400 widgets. However, without wishing to exit the software,
the runs are performed within one program.
The problem occurrs when the widget ID reaches 65535, the next widget to be
created is 0, not 65536. This looks like a short int problem, but IDs are
supposed to be long int.
Is there a way under program control to reset the widget ID back to 1 at the
beginning of a run?
I realise using the development environment .reset achieves this, but that
cannot be used in a running program.
This occurrs on IDL PC versions 5.2-5.5. However, it does not happen on
OpenVMS versions.
The following lines will cause the error to occur:-
FOR J=0L, 50000L DO BEGIN
Base=WIDGET_BASE()
WIDGET_CONTROL, Base, /DESTROY
ENDFOR
Any suggestions would be welcome
Regards,
Ian
|
|
|
Re: Large widget identifiers [message #33243 is a reply to message #33184] |
Sun, 15 December 2002 13:55  |
Andrew Cool
Messages: 219 Registered: January 1996
|
Senior Member |
|
|
Ian Dean wrote:
>
> Hi,
> Has anyone come across widget IDs "wrapping" when they reach a short int
> limit (65535)?
>
> We have a run-time IDL program that is running continuously for days/weeks.
> During this time several runs of data are processed. Each run requires
> approximately 400 widgets. However, without wishing to exit the software,
> the runs are performed within one program.
>
> The problem occurrs when the widget ID reaches 65535, the next widget to be
> created is 0, not 65536. This looks like a short int problem, but IDs are
> supposed to be long int.
>
> Is there a way under program control to reset the widget ID back to 1 at the
> beginning of a run?
> I realise using the development environment .reset achieves this, but that
> cannot be used in a running program.
>
> This occurrs on IDL PC versions 5.2-5.5. However, it does not happen on
> OpenVMS versions.
>
> The following lines will cause the error to occur:-
>
> FOR J=0L, 50000L DO BEGIN
> Base=WIDGET_BASE()
> WIDGET_CONTROL, Base, /DESTROY
> ENDFOR
>
> Any suggestions would be welcome
> Regards,
> Ian
Hi Ian,
What about trying Widget_control,/RESET? Carefully, of course...
Andrew
------------------------------------------------------------ -----------------
Andrew D. Cool
Electromagnetics & Propagation Group
Intelligence, Surveillance & Reconnaissance Division
Defence Science & Technology Organisation
PO Box 1500, Edinburgh
South Australia 5111
Phone : 061 8 8259 5740 Fax : 061 8 8259 6673
Email : andrew.cool@no-spam.dsto.defence.gov.au
Please remove the no-spam from my email address to reply ;-)
------------------------------------------------------------ -----------------
|
|
|
|