Hi Peter,

When you call DIALOG(*) the dialog opens in the current process. But as you
saw execution continues on. The solution is to make a DIALOG call by itself
first and open the subsequent windows from there.

The suggestions I've heard are to think about having a single UI process.
This initial dialog could be something really simple, like a small palette
or it could be a big window. That doesn't really matter. The change in
thinking is we open new windows from here for things that we would spin up
a separate process for in 4D classic.

What about memory management? you may think. Well, this approach is
probably best suited for working with ORDA and minimal reliance on process
variables. If you are using ORDA the great majority of the data you are
working with are actually references and 4D is super optimized for working
with this.

Hope this helps.

On Tue, Jun 25, 2019 at 6:45 AM Peter Bozek via 4D_Tech <
4d_tech@lists.4d.com> wrote:

> I maybe already asked this question, but anyway I am still a bit confused:
>
> I wanted to use DIALOG with * as an additional parameter, but have problem
> to make it work. I have app that display several info windows - like
> palettes, progress messages, communication statuses etc.Currently, I often
> need 2 processes for each task: one does the work as background task,
> another display it status / progress.  So instead of running a separate
> process for each window, why not to use one process that will display
> whatever windows application wants to display? Or display status from
> inside background process that do communication or lengthy task.
>
> My original idea was to call
>
> OPEN FORM WINDOW
> DIALOG(;*)
> PAUSE PROCESS
>
> but that does not work, as the process execution is "standing" at PAUSE
> PROCESS and no code is executed (and CALL FORM is either not executed or
> window is not redrawn.)
>
> When I remove PAUSE PROCESS, process ends and DIALOG window is closed.
>
> According to documentation, it would work of I do
> OPEN FORM WINDOW
> DIALOG(;*)
> DIALOG()
>
> but that is quite ugly, and would cause some problems, as I want the
> process that calls DIALOG(;*) periodically evaluate which windows are open
> and close itself if none.
>
> Another possibility is just to open window and call DIALOG(), then call
> DIALOG(;*) from inside the form method of the first DIALOG() form. That
> would (probably) work, form can use On timer event to check what is open,
> open additional dialogs etc. but I do not like the idea either.
>
> Is there a way how to use DIALOG(;*)  from a process that does not have any
> other window open?
>
> Regards,
>
> --
>
>
> Peter Bozek
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> Archive:  http://lists.4d.com/archives.html
> Options: https://lists.4d.com/mailman/options/4d_tech
> Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
> **********************************************************************



-- 
Kirk Brooks
San Francisco, CA
=======================

What can be said, can be said clearly,
and what you can’t say, you should shut up about

*Wittgenstein and the Computer *
**********************************************************************
4D Internet Users Group (4D iNUG)
Archive:  http://lists.4d.com/archives.html
Options: https://lists.4d.com/mailman/options/4d_tech
Unsub:  mailto:4d_tech-unsubscr...@lists.4d.com
**********************************************************************

Reply via email to