Feature Request: Display Text Window Auto Close

I very much doubt that, and I don't think you're in the best position to judge.

No, I might have eventually thought of it on my own, it doesn't have anything truly new in it, But it was a long way from being at the tips of my fingers. Thanks.

1 Like

I think you want to ensure that the "Asynchronously" option is checked. Now that I'm looking, how is it that your "Execute Macro" action does not have the "With Parameter" and "Asynchronously" options available?

image

Thanks for the template. My version of this will probably also start with "Set Next Engine WIndow Position" to control the spacing of the windows.

They aren't listed unless you select "With Parameter" or "Asynchronously" from the gear icon.

-rob.

1 Like

See, I told you! :joy:

I forgot to turn on Asynchronously. :man_facepalming:t2:

(It's been a long day!)

It doesn't need to send a parameter, as it's using instance variables.

1 Like

I'm finally getting around to implementing this.

I have a Subroutine, “SUB: Display Text in Window - Auto-Close” that is called by regular, other macros, with two parameters. It sets those parameters to Instance variables and then calls another macro, asynchronously, “Sub(not) Display Text in Window - Auto-Close”, which then uses those instance variables.

In the asynchronously called macro, it supposedly sets the PauseLength, but I get the error:

2024-01-15 21:48:22 Pause failed to evaluate Instance__PauseLength in macro “Sub(not) Display Text in Window - Auto-Close” (while executing Pause for Instance__PauseLength Seconds).

I don't know why the variable is not available, and my guesses at alternative naming, etc., have not been successful.

Any suggestions? I'll post the macros, if needed, but I don't like posting broken stuff.

It's the asynchronous that's breaking it. Change your instance variable to a global and then it should work.

For more info see this:

1 Like

Thanks Tiffle, that did it. After verifying that it works as expected, I've added a couple of actions to set the global variables to empty text at the end.

I've also simplified the flow. In the initial subroutine, the calling parameters are assigned to variables. Usually I make sure that those are Local variables but here I used globals. That means the only thing the subroutine has to do is assign those input parameters to global variables and call the second macro asynchronously. No copying variables needed.

Then the second, asychronous macro displays the text window, saves the window ID, counts down the seconds, closes the window by itts ID, and deletes the two global variables.

1 Like