Language:
Fortran-95
Dialect:
Silverfrost F95 Personal Edition
Discussion:
This program uses the "ClearWin+" package that comes with Silverfrost's Fortran-95 IDE, Plato 3. Here's the code:
winapp program multipleWindows include <windows.ins> integer :: w2 integer, external :: closeDiagnosticWindow write (*, 10) 10 format('Main, important window.') w2 = winio@('%ca[Hello out there, all you happy taxpayers.]&') w2 = winio@('Some text inside the window.&') w2 = winio@('%ta%`^bt[&quit]', closeDiagnosticWindow) end program multipleWindows ! closeDiagnosticWindow closes the diagnostic window, duh. integer function closeDiagnosticWindow() closeDiagnosticWindow = 0 end function closeDiagnosticWindow
Much of the functionality here is peculiar to the ClearWin+ package, and will only be useful in Silverfrost Fortran. 'winapp' alerts the compiler that this is a windows program and not the default output of a console program. As a result, main output goes to a big main window. The <windows.ins> file contains the ClearWin+ routines. w2 is a handle for the subordinate window, and the winio@ routine writes to it. Things in square brackets go in as text. The following arcane symbols have these meanings:
symbol | meaning |
---|---|
%ca | caption |
& | continue setup in the next call |
%ta | horizontal tab |
` | the following button is the default button |
^ | the following button needs a call-back function to work right |
%bt | button |
& | in button text, highlight the following letter; pressing that key activates the button |
By returning a 0, the callback function closes the window where the button is pressed. A 1 would leave it open and cause a refresh, while a 2 would leave it open without refreshing. A 3 is possible for another, specialized use (%mg, used for Windows messaging).
Page created: | 10/31/2016 |
Last modified: | 10/31/2016 |
Author: | BPL |