RE: OpenAux (view: View; title: Title)

From: Danforth, Douglas <"Danforth,>
Date: Tue, 20 Feb 2001 09:24:41 -0500

Bengt, et. al.

I like Helmut's solution for the following reasons
(StdApi is new to 1.4):

StdApi.OpenAux('Text/Rsrc/Cmds.odc', 'Find', v) requires a 'file'
to exist.

This is not my case.
I am creating dynamic bitmaps with various views.
In one case I need 7 views simultaneously visible
only one originates from a (.bmp) file. The other
six are derivatives of it and will never exist in an
externalized form. When I am through with the windows
a single button push to clear the screen is preferable
to clicking on 7 windows. Modification of some parameters
via controls then allows me to see a new set of 7 windows.

-o-
I think there is an issue of significance here.
The vast majority of my programming is 'exploratory',
prototypical, in nature and only a small fraction falls
into the class that I would call an 'application'.
Hence only for that small fraction is it needed
to use the full power of BlackBox.

A recent presentation of my prototypes blew away our
technical group. They are using Visual C++ for
their development and for them to do the same would have
have been daunting. It is unlikely that my prototypes
will ever be realized as a product since the company is
not committed to Component Pascal (I'm working slowly to
change that). Hence I must continually make decisions
whether to do full model/view/controler development or
create simple modules without the full BlackBox abstractions.

For exploratory programming one desires to do simple things
simply.

-Doug

---
Douglas G. Danforth, Ph.D. - Research Scientist
QuikCAT.com   6700 Beta Drive,  Suite 200,  Mayfield Village,  OH 44143-2335
danforth{([at]})nowhere.xy]-----Original Message-----
]From: johansson{([at]})nowhere.xy]Sent: Tuesday, February 20, 2001 7:49 AM
]To: Danforth, Douglas
]Cc: BlackBox (postings) (E-mail)
]Subject: RE: OpenAux (view: View; title: Title)
]
]
]
]Hi Doug,
]
]the main approach of BlackBox is to program without using windows. The
]View-abstraction is the central abstraction and the idea is 
]that this should
]be enough for most applications. Since a view can be opened in several
]windows at the same time, this does not comply with the more classical
]window-centered programming. A view can also be part of a 
]document, in which
]case "closing" a view does not make any sence.
]
]It is clear that the View-abstraction does not work in all 
]cases but in our
]experience it is often possible to redesign an application so 
]that it no
]longer needs to use windows. This often leads to a more 
]flexible application
]without modal windows or other limitations.
]
]The main design model is that programs create and manipulate documents,
]which are shown to the users. Users may manipulate documents 
]further, maybe
]with the help of other programs (i.e. commands). If the user 
]decides that a
]document is not needed anymore, he or she can decide to close 
]the window
]displaying it.
]
]So, the first advise would be to look closely at your 
]application and try to
]find a different approach where you no longer need to handle 
]windows and
]instead can focus on the views in your application.
]
]If it is not possible to redesign your application you will 
]have to use the
]Windows-abstraction in BlackBox. This is not documented, for 
]the reasons
]given above and also because it is a non-portable module. But, 
]as seen in
]the other replies to this topic, it is pretty straight forward to use.
]
]Both suggested solutions would be used by us in such a case, 
]but we do have
]a small safety correction to the solution suggested by Helmut Zinn.
]StdCmds.OpenAux can fail and this leads to that the wrong 
]window is returned
]by Windows.dir.Focus(TRUE). So it is better to use 
]StdApi.OpenAux, which
]lets you react if OpenAux fails. Here is our suggetion of how 
]to find the
]right window:
]
]MODULE PrivWin;
]
]	IMPORT StdApi, Windows, Views;
]
]	VAR win: Windows.Window;
]
]	PROCEDURE Open*;
]		VAR v: Views.View;
]	BEGIN
]		StdApi.OpenAux('Text/Rsrc/Cmds.odc', 'Find', v);
]		IF v # NIL THEN
]			win := Windows.dir.Focus(TRUE)
]		ELSE
]			win := NIL
]		END
]	END Open;
]
]	PROCEDURE Close*;
]	BEGIN
]		IF win # NIL THEN Windows.dir.Close(win) END;
]		win := NIL
]	END Close;
]
]END PrivWin.
]
]
]Regards,
]Bengt Johansson, Oberon microsystems
]
]> -----Original Message-----
]> From: Danforth, Douglas [mailto:DDanforth{([at]})nowhere.xy]> Sent: Montag, 19. Februar 2001 21:25
]> To: 'blackbox{([at]})nowhere.xy]> Subject: OpenAux (view: View; title: Title)
]>
]>
]> Folks,
]>
]> What is the proper way to close a window under program control?
]>
]> Views.OpenAux(view, title) creates a visible instance.
]> How does one close that instance *without* handling a message?
]> (One is not permitted to use the mouse to click the window).
]>
]> (Normally I would expect something like:
]> frame/handle/document := Views.OpenAux(view, title);
]> combined with a symmetric call of
]> Views.CloseAux(frame/handle/document)).
]>
]> -Doug
]>
]> ---
]> Douglas G. Danforth, Ph.D. - Research Scientist
]> QuikCAT.com   6700 Beta Drive,  Suite 200,  Mayfield Village,  OH
]> 44143-2335
]> danforth{([at]})nowhere.xy]> --------------------------------------------
]>
]> To unsubscribe from this mailing list, send a message containing
]> the word "unsubscribe" to:
]>    blackbox-request{([at]})nowhere.xy]>
]> To get a list of valid e-mail commands and instructions on their
]> usage, send a message containing the word "help" to the 
]above address.
]>
]> Send any problem reports or questions related to this email list
]> to the list owner at
]>    owner-blackbox{([at]})nowhere.xy]>
]
--------------------------------------------
To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
   blackbox-request{([at]})nowhere.xyTo get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.
Send any problem reports or questions related to this email list to the list owner at
   owner-blackbox{([at]})nowhere.xy
Received on Tue Feb 20 2001 - 14:24:41 UTC

This archive was generated by hypermail 2.3.0 : Thu Sep 26 2013 - 06:27:44 UTC