home *** CD-ROM | disk | FTP | other *** search
/ C!T ROM 5 / ctrom5b.zip / ctrom5b / PROGRAM / DELPHI / ORPHTR / EDUNIT.PAS < prev    next >
Pascal/Delphi Source File  |  1995-03-29  |  3KB  |  133 lines

  1. (*!!
  2.   Not done.
  3. *)
  4.  
  5. unit Edunit;
  6.  
  7. interface
  8.  
  9. uses
  10.   SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  11.   Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Menus, Printers,
  12.   OvcBase, OvcConst, OvcEdit, OvcData;
  13.  
  14. type
  15.   TfmEditor = class(TForm)
  16.     Ed: TOvcTextFileEditor;
  17.     dlgFind: TFindDialog;
  18.     dlgReplace: TReplaceDialog;
  19.     dlgFont: TFontDialog;
  20.     dlgSaveAs: TSaveDialog;
  21.     dlgOpen: TOpenDialog;
  22.     mnuMain: TMainMenu;
  23.     miFile: TMenuItem;
  24.     miOpen: TMenuItem;
  25.     miSave: TMenuItem;
  26.     miSaveAs: TMenuItem;
  27.     miExit: TMenuItem;
  28.     hdrStatus: THeader;
  29.     dlgPrint: TPrintDialog;
  30.     dlgPrintSetup: TPrinterSetupDialog;
  31.     miCloseFile: TMenuItem;
  32.     miNewFile: TMenuItem;
  33.     OvcController1: TOvcController;
  34.     procedure EdShowStatus(Sender: TObject; ColNum: Word; LineNum: Longint);
  35.     procedure miOpenClick(Sender: TObject);
  36.     procedure miSaveClick(Sender: TObject);
  37.     procedure miSaveAsClick(Sender: TObject);
  38.     procedure miExitClick(Sender: TObject);
  39.     procedure miCloseFileClick(Sender: TObject);
  40.     procedure miNewFileClick(Sender: TObject);
  41.   private
  42.     { Private declarations }
  43.   public
  44.     { Public declarations }
  45.   end;
  46.  
  47. var
  48.   fmEditor: TfmEditor;
  49.  
  50. implementation
  51.  
  52. {$R *.DFM}
  53.  
  54. procedure TfmEditor.EdShowStatus(Sender: TObject; ColNum: Word;
  55.   LineNum: Longint);
  56. begin
  57.   with hdrStatus do begin
  58.     if Ed.Modified then
  59.       Sections[0] := '*'
  60.     else
  61.       Sections[0] := ' ';
  62.     SectionWidth[0] := Canvas.TextWidth('W');
  63.  
  64.     Sections[1] := Format('%d:%d', [LineNum, ColNum]);
  65.     SectionWidth[1] := Canvas.TextWidth('0000:0000');
  66.  
  67.     Sections[2] := Format('Bytes: %d', [Ed.TextLength]);
  68.     SectionWidth[2] := Canvas.TextWidth('Bytes: 6553500');
  69.  
  70.     Sections[3] := Format('Paras: %d', [Ed.ParaCount]);
  71.     SectionWidth[3] := Canvas.TextWidth('Paras: 6553500');
  72.   end;
  73. end;
  74.  
  75. procedure TfmEditor.miOpenClick(Sender: TObject);
  76. begin
  77.   dlgOpen.FileName := Ed.FileName;
  78.   if dlgOpen.Execute then begin
  79.     if FileExists(dlgOpen.FileName) then
  80.       {open the file for editing}
  81.       Ed.LoadFromFile(dlgOpen.FileName)
  82.     else
  83.       {create a new file and open it}
  84.       Ed.NewFile(dlgOpen.FileName);
  85.  
  86.     {set editor read only status}
  87.     Ed.ReadOnly := ofReadOnly in dlgOpen.Options;
  88.   end;
  89. end;
  90.  
  91. procedure TfmEditor.miSaveClick(Sender: TObject);
  92. begin
  93.   Ed.SaveToFile(Ed.FileName);
  94. end;
  95.  
  96. procedure TfmEditor.miSaveAsClick(Sender: TObject);
  97. begin
  98.   dlgSaveAs.FileName := Ed.FileName;
  99.   if dlgSaveAs.Execute then
  100.     Ed.SaveToFile(dlgSaveAs.FileName);
  101. end;
  102.  
  103. procedure TfmEditor.miExitClick(Sender: TObject);
  104. begin
  105.   if Ed.Modified then begin
  106.     case MessageDlg('File has been modified. Save before exiting?', mtWarning, mbYesNoCancel, 0) of
  107.       mrYes    : begin
  108.                    if Ed.FileName > '' then
  109.                      miSaveClick(Sender)
  110.                    else
  111.                      miSaveAsClick(Sender);
  112.                    Close;
  113.                  end;
  114.       mrNo     : Close;
  115.       mrCancel : ;
  116.     end;
  117.   end else
  118.     Close;
  119. end;
  120.  
  121. procedure TfmEditor.miCloseFileClick(Sender: TObject);
  122. begin
  123.   Ed.DeleteAll(True);
  124. end;
  125.  
  126. procedure TfmEditor.miNewFileClick(Sender: TObject);
  127. begin
  128.   Ed.DeleteAll(True);
  129.   Ed.FileName := '';
  130. end;
  131.  
  132. end.
  133.