⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 Delphi高级开发指南是开发程序的好帮手
💻 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 + -