home *** CD-ROM | disk | FTP | other *** search
- unit MDIEdit;
-
- interface
-
- uses
- SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs,
- Menus, StdCtrls, ComCtrls;
-
- type
- TEditForm = class(TForm)
- MainMenu1: TMainMenu;
- File1: TMenuItem;
- New1: TMenuItem;
- Open1: TMenuItem;
- Save1: TMenuItem;
- Saveas1: TMenuItem;
- Print1: TMenuItem;
- N2: TMenuItem;
- Exit1: TMenuItem;
- Edit1: TMenuItem;
- Cut1: TMenuItem;
- Copy1: TMenuItem;
- Paste1: TMenuItem;
- Delete1: TMenuItem;
- N3: TMenuItem;
- Selectall1: TMenuItem;
- Character1: TMenuItem;
- Left1: TMenuItem;
- Right1: TMenuItem;
- Center1: TMenuItem;
- N4: TMenuItem;
- Wordwrap1: TMenuItem;
- N5: TMenuItem;
- Font1: TMenuItem;
- Editor: TRichEdit;
- PopupMenu1: TPopupMenu;
- Cut2: TMenuItem;
- Copy2: TMenuItem;
- Paste2: TMenuItem;
- SaveFileDialog: TSaveDialog;
- FontDialog1: TFontDialog;
- Printersetup1: TMenuItem;
- Close1: TMenuItem;
- PrinterSetupDialog1: TPrinterSetupDialog;
- PrintDialog1: TPrintDialog;
- procedure Exit1Click(Sender: TObject);
- procedure New1Click(Sender: TObject);
- procedure AlignClick(Sender: TObject);
- procedure Wordwrap1Click(Sender: TObject);
- procedure Cut1Click(Sender: TObject);
- procedure Copy1Click(Sender: TObject);
- procedure Paste1Click(Sender: TObject);
- procedure Selectall1Click(Sender: TObject);
- procedure Delete1Click(Sender: TObject);
- procedure Edit1Click(Sender: TObject);
- procedure Saveas1Click(Sender: TObject);
- procedure Save1Click(Sender: TObject);
- procedure Font1Click(Sender: TObject);
- procedure Close1Click(Sender: TObject);
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- procedure FormCreate(Sender: TObject);
- procedure Printersetup1Click(Sender: TObject);
- procedure Print1Click(Sender: TObject);
- procedure Open1Click(Sender: TObject);
- private
- { Private declarations }
- PathName: string;
- public
- { Public declarations }
- procedure Open(const AFileName: string);
- end;
-
- var
- EditForm: TEditForm;
-
- const
- DefaultFileName = 'Untitled';
-
- implementation
-
- uses Clipbrd, Printers, MDIFrame;
-
- {$R *.DFM}
-
- procedure TEditForm.Exit1Click(Sender: TObject);
- begin
- FrameForm.Exit1Click(Sender);
- end;
-
- procedure TEditForm.New1Click(Sender: TObject);
- begin
- FrameForm.New1Click(Sender);
- end;
-
- procedure TEditForm.Open1Click(Sender: TObject);
- begin
- FrameForm.Open1Click(Sender);
- end;
-
- procedure TEditForm.AlignClick(Sender: TObject);
- begin
- Left1.Checked := False;
- Right1.Checked := False;
- Center1.Checked := False;
- with Sender as TMenuItem do Checked := True;
- with Editor.Paragraph do
- if Left1.Checked then
- Alignment := taLeftJustify
- else if Right1.Checked then
- Alignment := taRightJustify
- else if Center1.Checked then
- Alignment := taCenter;
- end;
-
- procedure TEditForm.Wordwrap1Click(Sender: TObject);
- begin
- with Editor do
- begin
- WordWrap := not WordWrap; { toggle word wrapping }
- if WordWrap then
- ScrollBars := ssVertical
- else
- ScrollBars := ssBoth;
- WordWrap1.Checked := WordWrap; { set menu item check }
- end;
- end;
-
- procedure TEditForm.Cut1Click(Sender: TObject);
- begin
- Editor.CutToClipboard;
- end;
-
- procedure TEditForm.Copy1Click(Sender: TObject);
- begin
- Editor.CopyToClipboard;
- end;
-
- procedure TEditForm.Paste1Click(Sender: TObject);
- begin
- Editor.PasteFromClipboard;
- end;
-
- procedure TEditForm.Selectall1Click(Sender: TObject);
- begin
- Editor.SelectAll;
- end;
-
- procedure TEditForm.Delete1Click(Sender: TObject);
- begin
- Editor.ClearSelection;
- end;
-
- procedure TEditForm.Edit1Click(Sender: TObject);
- var
- HasSelection: Boolean;
- begin
- Paste1.Enabled := Clipboard.HasFormat(CF_TEXT);
- Paste2.Enabled := Paste1.Enabled;
- HasSelection := Editor.SelLength > 0;
- Cut1.Enabled := HasSelection;
- Cut2.Enabled := HasSelection;
- Copy1.Enabled := HasSelection;
- Copy2.Enabled := HasSelection;
- Delete1.Enabled := HasSelection;
- end;
-
- procedure TEditForm.Open(const AFileName: string);
- begin
- PathName := AFileName;
- Caption := ExtractFileName(AFileName);
- with Editor do
- begin
- Lines.LoadFromFile(PathName);
- SelStart := 0;
- Modified := False;
- end;
- end;
-
- procedure TEditForm.Saveas1Click(Sender: TObject);
- begin
- SaveFileDialog.FileName := PathName;
- if SaveFileDialog.Execute then
- begin
- PathName := SaveFileDialog.FileName;
- Caption := ExtractFileName(PathName);
- Save1Click(Sender);
- end;
- end;
-
- procedure TEditForm.Save1Click(Sender: TObject);
- begin
- if PathName = DefaultFileName then
- SaveAs1Click(Sender)
- else
- begin
- Editor.Lines.SaveToFile(PathName);
- Editor.Modified := False;
- end;
- end;
-
- procedure TEditForm.Font1Click(Sender: TObject);
- begin
- FontDialog1.Font := Editor.Font;
- if FontDialog1.Execute then
- Editor.SelAttributes.Assign(FontDialog1.Font);
- end;
-
- procedure TEditForm.Close1Click(Sender: TObject);
- begin
- Close;
- end;
-
- procedure TEditForm.FormClose(Sender: TObject; var Action: TCloseAction);
- begin
- Action := caFree;
- end;
-
- procedure TEditForm.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
- const
- SWarningText = 'Save changes to %s?';
- begin
- if Editor.Modified then
- begin
- case MessageDlg(Format(SWarningText, [PathName]), mtConfirmation,
- [mbYes, mbNo, mbCancel], 0) of
- idYes: Save1Click(Self);
- idCancel: CanClose := False;
- end;
- end;
- end;
-
- procedure TEditForm.FormCreate(Sender: TObject);
- begin
- PathName := DefaultFileName;
- end;
-
- procedure TEditForm.Printersetup1Click(Sender: TObject);
- begin
- PrinterSetupDialog1.Execute;
- end;
-
- procedure TEditForm.Print1Click(Sender: TObject);
- begin
- if PrintDialog1.Execute then
- Editor.Print(PathName);
- end;
-
- end.
-