Dec 232017
TP4 unit for pop-up windows, and rt to get input like TP4 “load file nam. | |||
---|---|---|---|
File Name | File Size | Zip Size | Zip Type |
FN.PAS | 1760 | 666 | deflated |
POPS.DOC | 2319 | 1004 | deflated |
POPS.PAS | 4464 | 1533 | deflated |
TESTF.EXE | 9616 | 6039 | deflated |
TESTF.PAS | 593 | 362 | deflated |
Download File POPS.ZIP Here
Contents of the POPS.DOC file
{ This is an excerpt from the interface section, plus comments }
{ Requries the unit FN which has a couple of useful functions... }
{ TESTF is a sample demo program. }
Type PopCenter=(pleft,pcenter,pright);
{ Parameter to DrawBorder }
Procedure DrawBorder(x1,y1,x2,y2,border:byte);
{ Draw a border from x1,y1 to x2,y2, of type border (1-5).
The procedure does WINDOW(1,1,80,25) first, then draws, then resets
the window. }
Procedure SaveWindow(var p:pointer; x1,y1,x2,y2:byte);
{ Save the area on the screen delimited by x1,y1 & x2,y2. Requires that
internal pointer to graphics memory be correct; Use SetScreenMem or use
FindScreenMem if location is unknown or varies. Dynamic variable stores
all info. }
Procedure RestWindow(var p:pointer);
{ Restore info from SaveWindow. Restores area of screen, resets current
WINDOW values and cursor position, and restores TextAttr. }
Procedure Dopop(var p:pointer; x1,y1,x2,y2,genatt,border,batt:byte);
{ General PopUp window. Saves area underneath in p, then sets TextAttr to
genatt, sets WINDOW to fit popped-up window, and clears the window; then
draws border with attribute of batt if border<>0 }
Procedure PopLabel(s:string; t:popcenter);
{ Displays a label s (in TextAttr) in border of current popped-up window
(guesses from current WINDOW setting, best only to use after DoPop, and
should not have DoPop with border=0.) }
Procedure Popup(var p:pointer; x1,y1,x2,y2:byte; s:string; genatt:byte);
{ DoPop with border=1,batt=genatt; PopLabel(s,pleft); }
Procedure Popupc(var p:pointer; x1,y1,x2,y2:byte; s:string; genatt,att:byte);
{ DoPop with border=1; PopLabel(s,pleft); }
Procedure Unpop(var p:pointer);
{ Remove popped up window p (better have been last or screen gets freaked. }
Procedure SetScreenMem(x:word);
{ Sets segment of pointer to screen memory used by SaveWindow & RestWindow }
Procedure FindScreenMem;
{ Displays via WRITELN and then searches through memory for itself to
calculate the above. }
Function GetPop(title,default:string; x1,y1:byte; len:byte):string;
{ Pop up a window with label title, with text area of 1 row len columns.
Then GetDef with default as default value and len as allowed length.
UnPop window and return, a la TP4 filename input menus. }
{ Requries the unit FN which has a couple of useful functions... }
{ TESTF is a sample demo program. }
Type PopCenter=(pleft,pcenter,pright);
{ Parameter to DrawBorder }
Procedure DrawBorder(x1,y1,x2,y2,border:byte);
{ Draw a border from x1,y1 to x2,y2, of type border (1-5).
The procedure does WINDOW(1,1,80,25) first, then draws, then resets
the window. }
Procedure SaveWindow(var p:pointer; x1,y1,x2,y2:byte);
{ Save the area on the screen delimited by x1,y1 & x2,y2. Requires that
internal pointer to graphics memory be correct; Use SetScreenMem or use
FindScreenMem if location is unknown or varies. Dynamic variable stores
all info. }
Procedure RestWindow(var p:pointer);
{ Restore info from SaveWindow. Restores area of screen, resets current
WINDOW values and cursor position, and restores TextAttr. }
Procedure Dopop(var p:pointer; x1,y1,x2,y2,genatt,border,batt:byte);
{ General PopUp window. Saves area underneath in p, then sets TextAttr to
genatt, sets WINDOW to fit popped-up window, and clears the window; then
draws border with attribute of batt if border<>0 }
Procedure PopLabel(s:string; t:popcenter);
{ Displays a label s (in TextAttr) in border of current popped-up window
(guesses from current WINDOW setting, best only to use after DoPop, and
should not have DoPop with border=0.) }
Procedure Popup(var p:pointer; x1,y1,x2,y2:byte; s:string; genatt:byte);
{ DoPop with border=1,batt=genatt; PopLabel(s,pleft); }
Procedure Popupc(var p:pointer; x1,y1,x2,y2:byte; s:string; genatt,att:byte);
{ DoPop with border=1; PopLabel(s,pleft); }
Procedure Unpop(var p:pointer);
{ Remove popped up window p (better have been last or screen gets freaked. }
Procedure SetScreenMem(x:word);
{ Sets segment of pointer to screen memory used by SaveWindow & RestWindow }
Procedure FindScreenMem;
{ Displays via WRITELN and then searches through memory for itself to
calculate the above. }
Function GetPop(title,default:string; x1,y1:byte; len:byte):string;
{ Pop up a window with label title, with text area of 1 row len columns.
Then GetDef with default as default value and len as allowed length.
UnPop window and return, a la TP4 filename input menus. }
December 23, 2017
Add comments