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; FontButton: TSpeedButton; SelectFont1: TMenuItem; FontDialog1: TFontDialog; 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; Panel2: TPanel; GroupBox1: TGroupBox; StatusLabel: TLabel; GroupBox2: TGroupBox; FontTypeLabel: TLabel; GroupBox3: TGroupBox; FontSizeLabel: TLabel; GroupBox4: TGroupBox; FileNameLabel: TLabel; Label1: TLabel; Label2: TLabel; Label3: TLabel; PopupMenu1: TPopupMenu; Save1: TMenuItem; SaveAs2: TMenuItem; Open2: TMenuItem; Cut2: TMenuItem; Copy2: TMenuItem; Paste2: TMenuItem; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; New2: TMenuItem; procedure FormCreate(Sender: TObject); procedure Open1Click(Sender: TObject); procedure SaveAs1Click(Sender: TObject); procedure New1Click(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; Filename := 'UNTITLED.TXT'; Memo1.Font.Name := 'Courier'; Memo1.Font.Size := 10; fname := Memo1.Font.Name; fsize := Memo1.Font.Size; StatusLabel.Caption := 'Ready'; FontTypeLabel.Caption := Memo1.Font.Name; FontSizeLabel.Caption := FloatToStr(fsize); FileNameLabel.Caption := Filename; 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; FileNameLabel.Caption := 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; FileNameLabel.Caption := 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; FileNameLabel.Caption := 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; FileNameLabel.Caption := 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'; FileNameLabel.Caption := ExtractFilename(filename); StatusLabel.Caption := 'Ready'; 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 begin MsgFlag := Application.MessageBox('File Not Saved! Save Now?', 'Exit Condition', mb_YesNo); if MsgFlag = 6 then begin Save1Click(Sender); end else if MsgFlag = 7 then begin halt; end; end else begin halt; end; 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.Assign(FontDialog1.Font); Memo1.Font.Size := FontDialog1.Font.Size; fname := Memo1.Font.Name; fsize := Memo1.Font.Size; FontSizeLabel.Caption := FloatToStr(fsize); end; StatusLabel.Caption := 'Ready'; FontTypeLabel.Caption := Memo1.Font.Name; 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 := 'Turn Word Wrap On'; Memo1.ScrollBars := ssBoth; WordWrap1.Checked := False end Else Begin Memo1.WordWrap := True; WordWrapToggle.Hint := 'Turn Word Wrap 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; FileNameLabel.Caption := 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.