📄 main.pas
字号:
unit Main;
{ Step 3 of the SimpleWord application evolution. We add here the
drop target component that allows us to accept files dropped from
the Windows shell.
jfl
}
interface
uses
SysUtils, Windows, Messages, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls, Buttons, ExtCtrls, Menus, ComCtrls, SimpleWordObject,
DropComponent;
type
TMainForm = class(TForm)
MainMenu: TMainMenu;
FileNewItem: TMenuItem;
FileOpenItem: TMenuItem;
FileSaveItem: TMenuItem;
FileSaveAsItem: TMenuItem;
FilePrintItem: TMenuItem;
FilePrintSetupItem: TMenuItem;
FileExitItem: TMenuItem;
EditCutItem: TMenuItem;
EditCopyItem: TMenuItem;
EditPasteItem: TMenuItem;
HelpContentsItem: TMenuItem;
HelpSearchItem: TMenuItem;
HelpHowToUseItem: TMenuItem;
HelpAboutItem: TMenuItem;
StatusLine: TStatusBar;
OpenDialog: TOpenDialog;
SaveDialog: TSaveDialog;
PrintDialog: TPrintDialog;
PrintSetupDialog: TPrinterSetupDialog;
SpeedBar: TPanel;
SpeedButton1: TSpeedButton; { &New }
SpeedButton2: TSpeedButton; { &Open... }
SpeedButton3: TSpeedButton; { &Save }
SpeedButton4: TSpeedButton; { Save &As... }
SpeedButton5: TSpeedButton; { &Undo }
SpeedButton7: TSpeedButton; { Cu&t }
SpeedButton8: TSpeedButton; { &Copy }
SpeedButton9: TSpeedButton; { &Paste }
SpeedButton10: TSpeedButton;
RichEdit1: TRichEdit;
DropComponent1: TDropComponent; { &About... }
procedure FormCreate(Sender: TObject);
procedure ShowHint(Sender: TObject);
procedure FileNew(Sender: TObject);
procedure FileOpen(Sender: TObject);
procedure FileSave(Sender: TObject);
procedure FileSaveAs(Sender: TObject);
procedure FilePrint(Sender: TObject);
procedure FilePrintSetup(Sender: TObject);
procedure FileExit(Sender: TObject);
procedure EditCut(Sender: TObject);
procedure EditCopy(Sender: TObject);
procedure EditPaste(Sender: TObject);
procedure HelpContents(Sender: TObject);
procedure HelpSearch(Sender: TObject);
procedure HelpHowToUse(Sender: TObject);
procedure HelpAbout(Sender: TObject);
procedure DropComponent1DropNotification(Sender: TObject;
const FileNames: TStringList);
private
FCurrentFileName: String;
public
procedure OpenFile( FileName: String );
procedure OpenAndPrintFile( FileName: String );
property CurrentFileName: String read FCurrentFileName write FCurrentFileName;
end;
const
APP_NAME = 'SimpleWord';
var
MainForm: TMainForm;
implementation
{$R *.DFM}
{ Public Functions }
procedure TMainForm.OpenFile( FileName: String );
begin
FCurrentFileName := FileName;
RichEdit1.Lines.LoadFromFile( FCurrentFileName );
Caption := APP_NAME + '- ' + FCurrentFileName;
end;
procedure TMainForm.OpenAndPrintFile( FileName: String );
begin
FCurrentFileName := FileName;
RichEdit1.Lines.LoadFromFile( FCurrentFileName );
Caption := APP_NAME + '- ' + FCurrentFileName;
RichEdit1.Print( FCurrentFilename );
end;
{ Event Handlers }
procedure TMainForm.FormCreate(Sender: TObject);
begin
Application.OnHint := ShowHint;
end;
procedure TMainForm.ShowHint(Sender: TObject);
begin
StatusLine.SimpleText := Application.Hint;
end;
procedure TMainForm.FileNew(Sender: TObject);
begin
RichEdit1.Lines.Clear;
end;
procedure TMainForm.FileOpen(Sender: TObject);
begin
if OpenDialog.Execute then
OpenFile( OpenDialog.FileName );
end;
procedure TMainForm.FileSave(Sender: TObject);
begin
RichEdit1.Lines.SaveToFile( FCurrentFileName );
end;
procedure TMainForm.FileSaveAs(Sender: TObject);
begin
if SaveDialog.Execute then
begin
FCurrentFileName := SaveDialog.FileName;
Caption := APP_NAME + '- ' + FCurrentFileName;
RichEdit1.Lines.SaveToFile( FCurrentFileName );
end;
end;
procedure TMainForm.FilePrint(Sender: TObject);
begin
if PrintDialog.Execute then
RichEdit1.Print( FCurrentFilename );
end;
procedure TMainForm.FilePrintSetup(Sender: TObject);
begin
PrintSetupDialog.Execute;
end;
procedure TMainForm.FileExit(Sender: TObject);
begin
Close;
end;
procedure TMainForm.EditCut(Sender: TObject);
begin
RichEdit1.CutToClipboard;
end;
procedure TMainForm.EditCopy(Sender: TObject);
begin
RichEdit1.CopyToClipboard;
end;
procedure TMainForm.EditPaste(Sender: TObject);
begin
RichEdit1.PasteFromClipboard;
end;
procedure TMainForm.HelpContents(Sender: TObject);
begin
Application.HelpCommand(HELP_CONTENTS, 0);
end;
procedure TMainForm.HelpSearch(Sender: TObject);
const
EmptyString: PChar = '';
begin
Application.HelpCommand(HELP_PARTIALKEY, Longint(EmptyString));
end;
procedure TMainForm.HelpHowToUse(Sender: TObject);
begin
Application.HelpCommand(HELP_HELPONHELP, 0);
end;
procedure TMainForm.HelpAbout(Sender: TObject);
begin
{ Add code to show program's About Box }
end;
{ Handle dropping of files onto the rich edit control }
procedure TMainForm.DropComponent1DropNotification(Sender: TObject;
const FileNames: TStringList);
begin
FCurrentFileName := FileNames[ 0 ];
RichEdit1.Lines.LoadFromFile( FCurrentFileName );
Caption := APP_NAME + ' - ' + FCurrentFileName;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -