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

📄 main.pas

📁 这是一个DELPHI7应用案例开发篇有配套程序种子光盘
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ImgList, ActnList, StdActns, ExtActns, ExtCtrls, ToolWin,
  ComCtrls, Child, MRU, IniFiles, AppEvnts, StdCtrls;

type
  TfrmMain = class(TForm)
    ActionList1: TActionList;
    ToolbarImages: TImageList;
    MainMenu: TMainMenu;
    FileMenu: TMenuItem;
    FileNewItem: TMenuItem;
    FileOpenItem: TMenuItem;
    FileSaveItem: TMenuItem;
    FileSaveAsItem: TMenuItem;
    N1: TMenuItem;
    FilePrintItem: TMenuItem;
    N4: TMenuItem;
    FileExitItem: TMenuItem;
    EditMenu: TMenuItem;
    EditUndoItem: TMenuItem;
    N2: TMenuItem;
    EditCutItem: TMenuItem;
    EditCopyItem: TMenuItem;
    EditPasteItem: TMenuItem;
    N5: TMenuItem;
    miEditFont: TMenuItem;
    HelpMenu: TMenuItem;
    HelpAboutItem: TMenuItem;
    WindowMenu: TMenuItem;
    EditCut1: TEditCut;
    EditCopy1: TEditCopy;
    EditPaste1: TEditPaste;
    EditSelectAll1: TEditSelectAll;
    EditUndo1: TEditUndo;
    FileOpen1: TFileOpen;
    FileSaveAs1: TFileSaveAs;
    FilePrintSetup1: TFilePrintSetup;
    FileExit1: TFileExit;
    FilePrint1: TAction;
    FileNew1: TAction;
    EditFont1: TAction;
    HelpAbout1: TAction;
    RichEditBold1: TRichEditBold;
    RichEditItalic1: TRichEditItalic;
    RichEditUnderline1: TRichEditUnderline;
    RichEditStrikeOut1: TRichEditStrikeOut;
    RichEditBullets1: TRichEditBullets;
    RichEditAlignLeft1: TRichEditAlignLeft;
    RichEditAlignRight1: TRichEditAlignRight;
    RichEditAlignCenter1: TRichEditAlignCenter;
    HelpContents1: THelpContents;
    HelpTopicSearch1: THelpTopicSearch;
    HelpOnHelp1: THelpOnHelp;
    WindowClose1: TWindowClose;
    WindowCascade1: TWindowCascade;
    WindowTileHorizontal1: TWindowTileHorizontal;
    WindowTileVertical1: TWindowTileVertical;
    WindowMinimizeAll1: TWindowMinimizeAll;
    WindowArrange1: TWindowArrange;
    SearchFind1: TSearchFind;
    SearchFindNext1: TSearchFindNext;
    SearchReplace1: TSearchReplace;
    SearchFindFirst1: TSearchFindFirst;
    Arrange1: TMenuItem;
    Cascade1: TMenuItem;
    Close1: TMenuItem;
    MinimizeAll1: TMenuItem;
    ileHorizontally1: TMenuItem;
    ileVertically1: TMenuItem;
    FormatMenu: TMenuItem;
    AlignLeft1: TMenuItem;
    Center1: TMenuItem;
    AlignRight1: TMenuItem;
    Bold1: TMenuItem;
    Italic1: TMenuItem;
    Underline1: TMenuItem;
    Strikeout1: TMenuItem;
    Bullets1: TMenuItem;
    N3: TMenuItem;
    N6: TMenuItem;
    SearchMenu: TMenuItem;
    Find1: TMenuItem;
    FindFirst1: TMenuItem;
    FindNext1: TMenuItem;
    Replace1: TMenuItem;
    Contents1: TMenuItem;
    HelpContextAction11: TMenuItem;
    HelponHelp2: TMenuItem;
    opicSearch1: TMenuItem;
    N7: TMenuItem;
    ControlBar1: TControlBar;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton6: TToolButton;
    FileSave1: TAction;
    ToolButton7: TToolButton;
    ToolButton5: TToolButton;
    ToolBar2: TToolBar;
    ToolButton8: TToolButton;
    ToolButton9: TToolButton;
    ToolButton10: TToolButton;
    ToolButton12: TToolButton;
    ToolBar3: TToolBar;
    ToolButton13: TToolButton;
    ToolButton14: TToolButton;
    ToolButton15: TToolButton;
    ToolButton16: TToolButton;
    ToolButton17: TToolButton;
    ToolButton18: TToolButton;
    ToolButton11: TToolButton;
    ToolButton19: TToolButton;
    ToolButton20: TToolButton;
    ToolButton21: TToolButton;
    ToolButton22: TToolButton;
    ToolBar4: TToolBar;
    ToolButton23: TToolButton;
    ToolButton24: TToolButton;
    ToolButton25: TToolButton;
    StatusBar1: TStatusBar;
    N8: TMenuItem;
    MenuReopen: TMenuItem;
    ApplicationEvents1: TApplicationEvents;
    HelpWhatsThis1: TAction;
    tbtWhatThis: TToolButton;
    WhatsThisPopupmenu: TPopupMenu;
    PopupWhatsThis: TMenuItem;
    procedure FileNew1Execute(Sender: TObject);
    procedure HelpAbout1Execute(Sender: TObject);
    procedure FileOpen1Accept(Sender: TObject);
    procedure FileSaveAs1Accept(Sender: TObject);
    procedure FileSave1Execute(Sender: TObject);
    procedure FileSave1Update(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure ApplicationEvents1Hint(Sender: TObject);
    procedure HelpWhatsThis1Execute(Sender: TObject);
    procedure ApplicationEvents1Message(var Msg: tagMSG;
      var Handled: Boolean);
    procedure PopupWhatsThisClick(Sender: TObject);
  private
    MRU:TMRUList;
    INI:TIniFile;

    OldCursor:TCursor;

    procedure OpenFile(AFileName:String);
    procedure UpdateMRUMenu;

    function QueryChildByFile(AFileName:String):Integer;

    procedure LoadIni;
    procedure SaveIni;

    function HandleMouseMsg(CtlHandle: THandle; Button: TMouseButton;
        Shift: TShiftState; X, Y: Integer): boolean;
  public
    procedure MRUClick(Sender: TObject);

    procedure UpdateStatusBar;
  end;

var
  frmMain: TfrmMain;

implementation

uses About;

{$R *.dfm}

procedure TfrmMain.FileNew1Execute(Sender: TObject);
begin
    TfrmChild.Create(Self);
end;

procedure TfrmMain.HelpAbout1Execute(Sender: TObject);
begin
    frmAbout := TfrmAbout.Create(Self);
    frmAbout.ShowModal;
    frmAbout.Free;
end;

procedure TfrmMain.FileOpen1Accept(Sender: TObject);
begin
    OpenFile(FileOpen1.Dialog.FileName);
end;

procedure TfrmMain.FileSaveAs1Accept(Sender: TObject);
begin
    if ActiveMDIChild = nil then
        Exit;
        
    with ActiveMDIChild as TfrmChild do
    begin
        SaveToFile(FileSaveAs1.Dialog.FileName);

        MRU.AddFile(FileSaveAs1.Dialog.FileName);
        UpdateMRUMenu;
    end;
end;

procedure TfrmMain.FileSave1Execute(Sender: TObject);
begin
    with ActiveMDIChild as TfrmChild do
    begin
        if not IsNamed then
            FileSaveAs1.Execute
        else if IsModified then
            SaveToFile(FileName);
    end;
end;

procedure TfrmMain.FileSave1Update(Sender: TObject);
begin
    if (ActiveMDIChild <> nil) then
        with ActiveMDIChild as TfrmChild do
        begin
            if IsModified then
                FileSave1.Enabled := True
            else
                FileSave1.Enabled := False;
        end
    else
        FileSave1.Enabled := False;
end;

function TfrmMain.QueryChildByFile(AFileName: String): Integer;
var
    i:Integer;
begin
    for i := 0 to MDIChildCount-1 do
    with MDIChildren[i] as TfrmChild do
    begin
        if not IsNamed then
            Continue;

        if FileName = AFileName then
        begin
            Result := i;
            Exit;
        end;
    end;

    Result := -1;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
    MRU := TMRUList.Create(4);
    INI := TIniFile.Create('RichEditor.ini');

    LoadINI;

    Application.HelpFile :=
       ExtractFilePath(Application.ExeName) + 'RichEditor.hlp';
end;

procedure TfrmMain.FormDestroy(Sender: TObject);
begin
    SaveINI;

    MRU.Free;
    INI.Free;
end;

procedure TfrmMain.UpdateMRUMenu;
var
    MRUs: TStringList;
    i,n: Integer;
    aItem: TMenuItem;
begin
    n := MenuReopen.Count;
    for i:=n-1 downto 0 do
        MenuReopen[i].Free;

    MRUs := MRU.GetList;
    n := MRUs.Count;
    for i:= n-1 downto 0 do
    begin

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -