unit viewer; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, ComCtrls, StdCtrls, ExtCtrls, Buttons, abox, new, content, Printers, Clipbrd; type TForm1 = class(TForm) StatusBar: TStatusBar; MainMenu1: TMainMenu; mnuFile: TMenuItem; mnuEdit: TMenuItem; mnuHelp: TMenuItem; mnuNew: TMenuItem; mnuSave: TMenuItem; N1: TMenuItem; mnuExit: TMenuItem; mnuPrint: TMenuItem; N2: TMenuItem; MemoBox: TMemo; Panel1: TPanel; sbtnNew: TSpeedButton; sbtnOpen: TSpeedButton; sbtnSave: TSpeedButton; mnuOpen: TMenuItem; mnuCut: TMenuItem; mnuCopy: TMenuItem; mnuPaste: TMenuItem; sbtnCut: TSpeedButton; sbtnCopy: TSpeedButton; sbtnPaste: TSpeedButton; sbtnExit: TSpeedButton; sbtnFont: TSpeedButton; sbtnPrint: TSpeedButton; OpenDialog1: TOpenDialog; SaveDialog1: TSaveDialog; FontDialog1: TFontDialog; PrintDialog1: TPrintDialog; mnuView: TMenuItem; mnuToolbar: TMenuItem; mnuAbout: TMenuItem; mnuWhatsNew: TMenuItem; mnuContent: TMenuItem; N3: TMenuItem; sbtnHelp: TSpeedButton; mnuSaveAs: TMenuItem; N4: TMenuItem; mnuSelectFont: TMenuItem; sbtnWordWrap: TSpeedButton; sbtnFontBold: TSpeedButton; sbtnFontItalic: TSpeedButton; procedure FormCreate(Sender: TObject); procedure mnuExitClick(Sender: TObject); procedure FormResize(Sender: TObject); procedure sbtnExitClick(Sender: TObject); procedure mnuToolbarClick(Sender: TObject); procedure mnuAboutClick(Sender: TObject); procedure mnuWhatsNewClick(Sender: TObject); procedure mnuContentClick(Sender: TObject); procedure sbtnHelpClick(Sender: TObject); procedure mnuNewClick(Sender: TObject); procedure mnuOpenClick(Sender: TObject); procedure mnuSaveClick(Sender: TObject); procedure mnuSaveAsClick(Sender: TObject); procedure mnuPrintClick(Sender: TObject); procedure mnuCutClick(Sender: TObject); procedure mnuCopyClick(Sender: TObject); procedure mnuPasteClick(Sender: TObject); procedure MemoBoxChange(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure mnuSelectFontClick(Sender: TObject); procedure sbtnNewClick(Sender: TObject); procedure sbtnOpenClick(Sender: TObject); procedure sbtnSaveClick(Sender: TObject); procedure sbtnPrintClick(Sender: TObject); procedure sbtnCutClick(Sender: TObject); procedure sbtnCopyClick(Sender: TObject); procedure sbtnPasteClick(Sender: TObject); procedure sbtnFontClick(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} {*********** Form Build/Close Events **********} procedure TForm1.FormCreate(Sender: TObject); begin Form1.Top := 1; Form1.Left := 1; flag := False; Filename := 'Untitled.Txt'; StatusBar.Panels.Items[0].Text := 'Ready'; StatusBar.Panels.Items[1].Text := 'Courier New'; StatusBar.Panels.Items[2].Text := '10'; MemoBox.Top := 38; MemoBox.Height := Form1.Height - 110; MemoBox.Width := Form1.Width - 27; MemoBox.Font.Name := 'Courier New'; MemoBox.Font.Size := 10; MemoBox.Clear; Panel1.Visible := True; Panel1.Width := Form1.Width - 9; mnuToolbar.Checked := True; Form1.Caption := 'View-It 32 Version 1.0 - ' + Filename; end; procedure TForm1.FormResize(Sender: TObject); begin MemoBox.Height := Form1.Height - 110; MemoBox.Width := Form1.Width - 27; Panel1.Width := Form1.Width - 9; end; procedure TForm1.MemoBoxChange(Sender: TObject); begin flag := True; StatusBar.Panels.Items[0].Text := 'Modified'; end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction); begin if flag then begin MsgFlag := Application.MessageBox('File Not Saved! Save Now?','Save File', mb_OKCancel); if MsgFlag = 6 then mnuSaveClick(Sender) end; halt; end; {*************** Menu Item Code ***************} {File Menu} procedure TForm1.mnuNewClick(Sender: TObject); begin if flag then mnuSaveClick(Sender); MemoBox.Clear; Flag := False; filename := 'Untitled.Txt'; Form1.Caption := 'View-It 32 Version 1.0 - ' + filename; StatusBar.Panels.Items[0].Text := 'Ready'; end; procedure TForm1.mnuOpenClick(Sender: TObject); begin if flag then begin MsgFlag := Application.MessageBox('File Not Saved! Save Now?', 'Save File?', mb_OKCancel); if MsgFlag = 6 then begin mnuSaveClick(Sender); StatusBar.Panels.Items[0].Text := 'Opening File'; OpenDialog1.Execute; if FileExists(OpenDialog1.Filename) then begin MemoBox.Clear; filename := OpenDialog1.FileName; MemoBox.Lines.LoadFromFile(filename); end; flag := false; Form1.Caption := 'View-It 32 Version 1.0 - ' + ExtractFilename(filename); StatusBar.Panels.Items[0].Text := 'Ready'; end; if MsgFlag = 7 then begin StatusBar.Panels.Items[0].Text := 'Opening File'; OpenDialog1.Execute; if FileExists(OpenDialog1.Filename) then begin MemoBox.Clear; filename := OpenDialog1.Filename; MemoBox.Lines.LoadFromFile(filename); end; flag := false; Form1.Caption := 'View-It 32 Version 1.0 - ' + ExtractFilename(filename); StatusBar.Panels.Items[0].Text := 'Ready'; end; end else begin StatusBar.Panels.Items[0].Text := 'Opening File'; OpenDialog1.Execute; if FileExists(OpenDialog1.Filename) then begin MemoBox.Clear; filename := OpenDialog1.Filename; MemoBox.Lines.LoadFromFile(filename); end; flag := false; Form1.Caption := 'View-It 32 Version 1.0 - ' + ExtractFilename(filename); StatusBar.Panels.Items[0].Text := 'Ready'; end; end; procedure TForm1.mnuSaveClick(Sender: TObject); begin if filename = 'Untitled.Txt' then begin mnuSaveAsClick(Sender); end else begin StatusBar.Panels.Items[0].Text := 'Saving File'; MemoBox.Lines.SaveToFile(filename); flag := false; Form1.Caption := 'View-It 32 Version 1.0 - ' + filename; end; StatusBar.Panels.Items[0].Text := 'Ready'; end; procedure TForm1.mnuSaveAsClick(Sender: TObject); begin StatusBar.Panels.Items[0].Text := 'Saving File'; SaveDialog1.filename := filename; SaveDialog1.Execute; if filename <> '' then begin MemoBox.Lines.SaveToFile(filename); flag := false; Form1.Caption := 'View-It 32 Version 1.0 - ' + filename; StatusBar.Panels.Items[0].Text := 'Ready'; end; end; procedure TForm1.mnuPrintClick(Sender: TObject); var i: Integer; PrintText: TextFile; begin if PrintDialog1.Execute then begin StatusBar.Panels.Items[0].Text := 'Printing File'; AssignPrn(PrintText); Rewrite(PrintText); Printer.Canvas.Font.Name := MemoBox.Font.Name; Printer.Canvas.Font.Size := MemoBox.Font.Size; for i := 0 to MemoBox.Lines.Count - 1 do WriteLn(PrintText, MemoBox.Lines[i]); CloseFile(PrintText); end; StatusBar.Panels.Items[0].Text := 'Ready'; end; procedure TForm1.mnuExitClick(Sender: TObject); begin close; end; {Edit Menu} procedure TForm1.mnuCutClick(Sender: TObject); begin MemoBox.CutToClipboard; end; procedure TForm1.mnuCopyClick(Sender: TObject); begin MemoBox.CopyToClipboard; end; procedure TForm1.mnuPasteClick(Sender: TObject); begin MemoBox.PasteFromClipboard; end; {Font Sub-Menu} procedure TForm1.mnuSelectFontClick(Sender: TObject); begin if FontDialog1.Execute then begin StatusBar.Panels.Items[0].Text := 'Select Font'; MemoBox.Font.Assign(FontDialog1.Font); MemoBox.Font.Size := FontDialog1.Font.Size; fname := MemoBox.Font.Name; fsize := MemoBox.Font.Size; StatusBar.Panels.Items[2].Text := FloatToStr(fsize); end; StatusBar.Panels.Items[0].Text := 'Ready'; StatusBar.Panels.Items[1].Text := MemoBox.Font.Name; end; {View Menu} procedure TForm1.mnuToolbarClick(Sender: TObject); begin if Panel1.Visible then begin Panel1.Visible := False; mnuToolbar.Checked := False; MemoBox.Top := 8; MemoBox.Height := Form1.Height - 80; end else begin mnuToolbar.Checked := True; MemoBox.Top := 32; MemoBox.Height := Form1.Height - 110; Panel1.Visible := True; Panel1.Width := Form1.Width - 9; end; end; {Help Menu} procedure TForm1.mnuContentClick(Sender: TObject); begin frmHelp.Show; end; procedure TForm1.mnuAboutClick(Sender: TObject); begin AboutBox.ShowModal; end; procedure TForm1.mnuWhatsNewClick(Sender: TObject); begin NewBox.ShowModal; end; {*************** Toolbar Item Code ********************} procedure TForm1.sbtnNewClick(Sender: TObject); begin mnuNewClick(Sender); end; procedure TForm1.sbtnOpenClick(Sender: TObject); begin mnuOpenClick(Sender); end; procedure TForm1.sbtnSaveClick(Sender: TObject); begin mnuSaveClick(Sender); end; procedure TForm1.sbtnPrintClick(Sender: TObject); begin mnuPrintClick(Sender); end; procedure TForm1.sbtnCutClick(Sender: TObject); begin mnuCutClick(Sender); end; procedure TForm1.sbtnCopyClick(Sender: TObject); begin mnuCopyClick(Sender); end; procedure TForm1.sbtnPasteClick(Sender: TObject); begin mnuPasteClick(Sender); end; procedure TForm1.sbtnFontClick(Sender: TObject); begin mnuSelectFontClick(Sender); end; procedure TForm1.sbtnExitClick(Sender: TObject); begin mnuExitClick(Sender); end; procedure TForm1.sbtnHelpClick(Sender: TObject); begin mnuContentClick(Sender); end; end.