home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 2 / ctrom_ii_b.zip / ctrom_ii_b / PROGRAM / PASCAL / EDITWIN / ED.PAS < prev    next >
Pascal/Delphi Source File  |  1992-10-23  |  2KB  |  53 lines

  1. program ed;
  2.  
  3. uses
  4.   Crt,
  5.   Minikit,
  6.   O_Tbuf,
  7.   EditWin;
  8.  
  9. var
  10.   DOSScreen : TSavedScreenInfo;
  11.   BottomLine,
  12.   BottomLineText : string;
  13.   TextBuf   : PTextBuffer;
  14.   EdWin     : PEditWindow;
  15.   ExitKey   : char;
  16.   OK,
  17.   UserQuits : boolean;
  18.  
  19. begin
  20.   OK := SaveScreen (DOSScreen);                     { Save underlying screen }
  21.   New (TextBuf, Init (3000));                       { 3000 line text buffer }
  22.   New (EdWin, Init (8, 3, 72, 22,                   { edit window coords }
  23.                     ' ED - Public Domain editor ',  { the header message }
  24.                     TextBuf,                        { use this buffer }
  25.                     EditOK ));                      { editor mode }
  26.  
  27.   UserQuits := false;                               { not done yet! }
  28.   if ParamCount > 0 then
  29.     EdWin^.SetFileName (ParamStr (1))
  30.   else
  31.     EdWin^.SetFileName ('');
  32.   EdWin^.ShowWindow;                                { display the window }
  33.  
  34.   BottomLine := MakeString (65, ' ');                { show commands }
  35.   BottomLineText :=
  36.     'AltX:Quit F9:Open F10:Save ^T:Del word ^Y:Del line AltG:Reform';
  37.   BottomLine := Merge (BottomLineText, BottomLine, 2);
  38.   FastWrite (BottomLine, 23, 8, Status_Attr);
  39.  
  40.   repeat                                            { stay in loop ... }
  41.     EdWin^.Process;                                 { edit text }
  42.     ExitKey := EdWin^.GetExitKey;                   { get the key thay ended edit }
  43.  
  44.     case ExitKey of                                 { check it out }
  45.       AltX : UserQuits := true;                     { AltX means we are done }
  46.     end;
  47.   until UserQuits;                                  { until we are done editing }
  48.  
  49.   TextBuf^.Done;                                    { dispose of text buffer }
  50.   EdWin^.Done;                                      { dispose of editor }
  51.   RestoreScreen (DOSScreen);                        { and restore screen }
  52. end.
  53.