Page 1 of 1
Analog to ⎕wgive?
Posted: Mon May 04, 2020 2:28 pm
by ArrayMac227
Is there a way for a running function to allow GUI objects to refresh themselves, like ⎕wgive did in APL*PLUS? Ctrl-Break seems to be the only way.
Re: Analog to ⎕wgive?
Posted: Mon May 04, 2020 4:15 pm
by JoHo
imo ctrl/break and wigive do not have the same effect.
quadDL should be an equivalent or the 'Yield' property of the Root object.
HTH
Re: Analog to ⎕wgive?
Posted: Mon May 04, 2020 5:39 pm
by ArrayMac227
Agreed, the effect is not the same, except both show the Forms.
⎕dl 0 worked like a charm! Thanks for revealing that undocumented feature!
Re: Analog to ⎕wgive?
Posted: Mon May 04, 2020 5:53 pm
by JoHo
Glad that it helped.
But, with due respect, quadDL is actually documented.
If you have a very CPU intensive Dyalog application, which would delay the refresh of other (non-APL-generatd GUI) objects, you might want to consider running a separate worker thread and make it pause intermittently?
Re: Analog to ⎕wgive?
Posted: Thu May 07, 2020 3:12 pm
by ArrayMac227
Documentation on ⎕DL:
> Y must be a simple non-negative single numeric value (of any rank). A pause of
approximately Y seconds is caused.
> The shy result R is a scalar numeric value indicating the length of the pause in
seconds.
> The pause may be interrupted by a strong interrupt.
...not sure where the flushing of the Windows Event Queue is mentioned.
Re: Analog to ⎕wgive?
Posted: Thu May 07, 2020 4:40 pm
by JoHo
For flushing the display buffer you'd have niladic Method 135 on the Root object,
besides the before mentioned 'Yield' property.
If you would use quadDL or a property/method of an enqueued GUI object (or Root) depends on the context.