unit View; interface uses SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, ExtCtrls, Buttons, Printers, Clipbrd, ABox, New; type TForm1 = class(TForm) Memo1: TMemo; MainMenu1: TMainMenu; File1: TMenuItem; New1: TMenuItem; Open1: TMenuItem; SaveAs1: TMenuItem; Exit1: TMenuItem; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; Panel1: TPanel; OpenButton: TSpeedButton; SaveButton: TSpeedButton; PrintButton: TSpeedButton; PrintDialog1: TPrintDialog; Print1: TMenuItem; ExitButton: TSpeedButton; NewButton: TSpeedButton; Edit1: TEdit; Label1: TLabel; FontButton: TSpeedButton; SelectFont1: TMenuItem; Edit2: TEdit; Label2: TLabel; FontDialog1: TFontDialog; Label3: TLabel; Edit3: TEdit; Edit4: TMenuItem; Cut1: TMenuItem; Copy1: TMenuItem; Paste1: TMenuItem; CutButton: TSpeedButton; CopyButton: TSpeedButton; PasteButton: TSpeedButton; WordWrapToggle: TSpeedButton; WordWrap1: TMenuItem; SaveAsButton: TBitBtn; About1: TMenuItem; Information1: TMenuItem; Save2: TMenuItem; WhatsNew1: TMenuItem; StatusLabel: TLabel; Label4: TLabel; Label5: TLabel; Label6: TLabel; procedure FormCreate(Sender: TObject); procedure Open1Click(Sender: TObject); procedure SaveAs1Click(Sender: TObject); procedure New1Click(Sender: TObject); procedure FormResize(Sender: TObject); procedure Memo1Change(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure Exit1Click(Sender: TObject); procedure PrintButtonClick(Sender: TObject); procedure Print1Click(Sender: TObject); procedure ExitButtonClick(Sender: TObject); procedure NewButtonClick(Sender: TObject); procedure SelectFont1Click(Sender: TObject); procedure FontButtonClick(Sender: TObject); procedure Cut1Click(Sender: TObject); procedure Copy1Click(Sender: TObject); procedure Paste1Click(Sender: TObject); procedure CutButtonClick(Sender: TObject); procedure CopyButtonClick(Sender: TObject); procedure PasteButtonClick(Sender: TObject); procedure WordWrapToggleClick(Sender: TObject); procedure WordWrap1Click(Sender: TObject); procedure SaveAsButtonClick(Sender: TObject); procedure Information1Click(Sender: TObject); procedure Save1Click(Sender: TObject); procedure WhatsNew1Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure SaveButtonClick(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; Filename: String; flag: Boolean; fname: TFontName; fsize: Double; MsgFlag: Integer; implementation {$R *.DFM} procedure TForm1.FormCreate(Sender: TObject); begin Form1.Top := 1; Form1.Left := 1; Memo1.Clear; flag := False; Edit1.Text := 'UNTITLED.TXT'; Filename := 'UNTITLED.TXT'; Memo1.Font.Name := 'Courier'; Memo1.Font.Size := 10; fname := Memo1.Font.Name; Edit2.Text := fname; fsize := Memo1.Font.Size; Edit3.Text := FloatToStr(fsize); StatusLabel.Top := Form1.height - 73; StatusLabel.Caption := 'Ready'; end; procedure TForm1.Open1Click(Sender: TObject); begin if flag then begin MsgFlag := Application.MessageBox('File Not Saved! Save Now?', 'Exit Condition', mb_YesNoCancel); if MsgFlag = 6 then begin Save1Click(Sender); StatusLabel.Caption := 'Opening File'; OpenDialog1.Execute; if FileExists(OpenDialog1.FileName) then begin Memo1.Clear; filename := OpenDialog1.FileName; Memo1.Lines.LoadFromFile(filename); end; flag := False; Edit1.Text := ExtractFileName(filename); StatusLabel.Caption := 'Ready'; end; if MsgFlag = 7 then begin StatusLabel.Caption := 'Opening File'; OpenDialog1.Execute; if FileExists(OpenDialog1.FileName) then begin Memo1.Clear; filename := OpenDialog1.FileName; Memo1.Lines.LoadFromFile(filename); end; flag := False; Edit1.Text := ExtractFilename(filename); StatusLabel.Caption := 'Ready'; end; end else begin StatusLabel.Caption := 'Opening File'; OpenDialog1.Execute; if FileExists(OpenDialog1.FileName) then begin Memo1.Clear; filename := OpenDialog1.FileName; Memo1.Lines.LoadFromFile(filename); end; flag := False; Edit1.Text := ExtractFilename(filename); StatusLabel.Caption := 'Ready'; end; end; procedure TForm1.SaveAsButtonClick(Sender: TObject); begin StatusLabel.Caption := 'Save File'; SaveDialog1.filename := filename; SaveDialog1.Execute; filename := SaveDialog1.filename; if filename <> '' then StatusLabel.Caption := 'Saving File'; Memo1.Lines.SaveToFile(filename); flag := False; Edit1.Text := ExtractFilename(filename); StatusLabel.Caption := 'Ready'; end; procedure TForm1.SaveAs1Click(Sender: TObject); begin SaveAsButtonClick(Sender); end; procedure TForm1.New1Click(Sender: TObject); begin if flag then SaveAs1Click(Sender); Memo1.Clear; Flag := False; filename := 'UNTITLED.TXT'; Edit1.Text := ExtractFilename(filename); StatusLabel.Caption := 'Ready'; end; procedure TForm1.FormResize(Sender: TObject); begin Memo1.width := Form1.width - 27; Memo1.height := Form1.height - 150; StatusLabel.Top := Form1.height - 73; end; procedure TForm1.Memo1Change(Sender: TObject); begin flag := True; StatusLabel.Caption := 'Modified'; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if flag then Exit1Click(Sender); end; procedure TForm1.Exit1Click(Sender: TObject); begin if flag then begin MsgFlag := Application.MessageBox('File Not Saved! Save Now?', 'Exit Condition', mb_YesNoCancel); if MsgFlag = 6 then begin Save1Click(Sender); end else if MsgFlag = 7 then begin halt; end; end else begin halt; end; end; procedure TForm1.PrintButtonClick(Sender: TObject); var i: Integer; PrintText: TextFile; begin If PrintDialog1.Execute then begin StatusLabel.Caption := 'Printing File'; AssignPrn(PrintText); Rewrite(PrintText); Printer.Canvas.Font.Name := Memo1.Font.Name; Printer.Canvas.Font.Size := Memo1.Font.Size; for i := 0 to Memo1.Lines.Count - 1 do WriteLn(PrintText, Memo1.Lines[i]); CloseFile(PrintText); end; StatusLabel.Caption := 'Ready'; end; procedure TForm1.Print1Click(Sender: TObject); begin PrintButtonClick(Sender); end; procedure TForm1.ExitButtonClick(Sender: TObject); begin Exit1Click(Sender); end; procedure TForm1.NewButtonClick(Sender: TObject); begin New1Click(Sender); end; procedure TForm1.SelectFont1Click(Sender: TObject); begin If FontDialog1.Execute then Begin StatusLabel.Caption := 'Select Font Type'; {Memo1.Font.Name := FontDialog1.Font.Name;} Memo1.Font.Assign(FontDialog1.Font); Memo1.Font.Size := FontDialog1.Font.Size; fname := Memo1.Font.Name; fsize := Memo1.Font.Size; Edit2.Text := fname; Edit3.Text := FloatToStr(fsize); end; StatusLabel.Caption := 'Ready'; end; procedure TForm1.FontButtonClick(Sender: TObject); begin SelectFont1Click(Sender); end; procedure TForm1.Cut1Click(Sender: TObject); begin Memo1.CutToClipboard; end; procedure TForm1.Copy1Click(Sender: TObject); begin Memo1.CopyToClipboard; end; procedure TForm1.Paste1Click(Sender: TObject); begin Memo1.PasteFromClipboard; end; procedure TForm1.CutButtonClick(Sender: TObject); begin Cut1Click(Sender); end; procedure TForm1.CopyButtonClick(Sender: TObject); begin Copy1Click(Sender); end; procedure TForm1.PasteButtonClick(Sender: TObject); begin Paste1Click(Sender); end; procedure TForm1.WordWrapToggleClick(Sender: TObject); begin If Memo1.WordWrap Then Begin Memo1.WordWrap := False; WordWrapToggle.Hint := 'WordWrapToggle (Set On)'; Memo1.ScrollBars := ssBoth; WordWrap1.Checked := False end Else Begin Memo1.WordWrap := True; WordWrapToggle.Hint := 'WordWrapToggle (Set Off)'; Memo1.ScrollBars := ssVertical; WordWrap1.Checked := True; end; end; procedure TForm1.WordWrap1Click(Sender: TObject); begin WordWrapToggleClick(Sender); end; procedure TForm1.Information1Click(Sender: TObject); begin AboutBox.ShowModal; end; procedure TForm1.Save1Click(Sender: TObject); begin if Filename = 'UNTITLED.TXT' then begin SaveAsButtonClick(Sender); end else begin StatusLabel.Caption := 'Saving File'; Memo1.Lines.SaveToFile(filename); flag := False; Edit1.Text := ExtractFilename(Filename); end; StatusLabel.Caption := 'Ready'; end; procedure TForm1.WhatsNew1Click(Sender: TObject); begin whatsnew.ShowModal; end; procedure TForm1.FormShow(Sender: TObject); begin AboutBox.ShowModal; end; procedure TForm1.SaveButtonClick(Sender: TObject); begin Save1Click(Sender); end; end.