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

📄 mainunit.~pa

📁 一个漂亮的电子书籍阅读管理器
💻 ~PA
📖 第 1 页 / 共 5 页
字号:
//---------------------------------------------------------------------------
//(R)CopyRight KivenSoft International ,inc 1998
//程序名称:电子书库
//单元名称:主窗口单元
//作    者:李会文
//单元名称:主程序单元
//开始时间:1998.07.28
//最后修改:1999.07.22
//---------------------------------------------------------------------------
unit MainUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Menus, StdCtrls, ComCtrls, CommCtrl, ExtCtrls, ToolWin, ShellApi, Registry,
  SrmUnit, SrmConst, ShlObj, FileCtrl, RichEdit, ImgList, KvLabel, Buttons,
  jpeg, ActnList;

type

  TSrmForm = class(TForm)
    Splitter: TSplitter;
    StatusBar: TStatusBar;
    LeftForm: TPanel;
    LeftBottomPanel: TPanel;
    RightPanel: TPanel;
    ImageList: TImageList;
    SaveDialog: TSaveDialog;
    OpenDialog: TOpenDialog;
    FindDialog: TFindDialog;
    ReplaceDialog: TReplaceDialog;
    LeftPageControl: TPageControl;
    RightPageControl: TPageControl;
    IndexTabSheet: TTabSheet;
    TreeView: TTreeView;
    DrawTabSheet: TTabSheet;
    PropertiyTabSheet: TTabSheet;
    SearchTabSheet: TTabSheet;
    ProTabSheet: TTabSheet;
    DbAuthorEdit: TEdit;
    DbPasswordEdit: TEdit;
    DbBuildDateEdit: TEdit;
    DbEditDateEdit: TEdit;
    ContextAuthorEdit: TEdit;
    ContextPasswordEdit: TEdit;
    ContextPubDateEdit: TEdit;
    ContextIndexEdit: TEdit;
    SearchListBox: TListBox;
    ContextTypeRadioGroup: TRadioGroup;
    MainFormMenu: TMainMenu;
    FileMenuItem: TMenuItem;
    NewMenuItem: TMenuItem;
    OpenMenuItem: TMenuItem;
    SaveMenuItem: TMenuItem;
    CloseMenuItem: TMenuItem;
    N1: TMenuItem;
    FImportMenuItem: TMenuItem;
    DImportMenuItem: TMenuItem;
    ExportMenuItem: TMenuItem;
    N3: TMenuItem;
    PrintMenuItem: TMenuItem;
    N4: TMenuItem;
    ListMenuItem: TMenuItem;
    MenuItem2: TMenuItem;
    MenuItem3: TMenuItem;
    MenuItem4: TMenuItem;
    MenuItem5: TMenuItem;
    MyLoveMenuItem: TMenuItem;
    MyLoveNextMenuItem: TMenuItem;
    ExitMenuItem: TMenuItem;
    EditMenuItem: TMenuItem;
    UndoMenuItem: TMenuItem;
    RedoMenuItem: TMenuItem;
    N6: TMenuItem;
    CutMenuItem: TMenuItem;
    CopyMenuItem: TMenuItem;
    PasteMenuItem: TMenuItem;
    N7: TMenuItem;
    SelAllMenuItem: TMenuItem;
    N8: TMenuItem;
    FindMenuItem: TMenuItem;
    FindNextMenuItem: TMenuItem;
    ReplaceMenuItem: TMenuItem;
    N9: TMenuItem;
    DelSpaceMenuItem: TMenuItem;
    ViewMenuItem: TMenuItem;
    ToolsMenuItem: TMenuItem;
    StatusMenuItem: TMenuItem;
    TitleMenuItem: TMenuItem;
    ReadOnlyMenuItem: TMenuItem;
    BigFontMenuItem: TMenuItem;
    SmallFontMenuItem: TMenuItem;
    N10: TMenuItem;
    OptionsMenuItem: TMenuItem;
    OperatorMenuItem: TMenuItem;
    AddNodeMenuItem: TMenuItem;
    AddSubNodeMenuItem: TMenuItem;
    EditNodeMenuItem: TMenuItem;
    DelNodeMenuItem: TMenuItem;
    N11: TMenuItem;
    SortMenuItem: TMenuItem;
    N12: TMenuItem;
    CompressMenuItem: TMenuItem;
    CovertMenuItem: TMenuItem;
    HelpMenuItem: TMenuItem;
    AboutMenuItem: TMenuItem;
    ReadmeMenuItem: TMenuItem;
    N13: TMenuItem;
    HomePageMenuItem: TMenuItem;
    EMailMenuItem: TMenuItem;
    OtherMenuItem: TMenuItem;
    KivenLabel: TKvLabel;
    N2: TMenuItem;
    DbAuthorLabel: TKvLabel;
    DbPasswordLabel: TKvLabel;
    BuildDateLabel: TKvLabel;
    DbEditDateLabel: TKvLabel;
    ContextAuthorLabel: TKvLabel;
    ContextPasswordLabel: TKvLabel;
    ContextPubDateLabel: TKvLabel;
    KvLabel1ContextIndexLabel: TKvLabel;
    TreeViewPopupMenu: TPopupMenu;
    AddNodePopMenuItem: TMenuItem;
    AddSubNodePopMenuItem: TMenuItem;
    DelNodePopMenuItem: TMenuItem;
    EditNodePopMenuItem: TMenuItem;
    N14: TMenuItem;
    CutNodePopMenuItem: TMenuItem;
    CopyNodePopMenuItem: TMenuItem;
    PasteNodePopMenuItem: TMenuItem;
    RichEditPopupMenu: TPopupMenu;
    CutPopMenuItem: TMenuItem;
    CopyPopMenuItem: TMenuItem;
    PastePopMenuItem: TMenuItem;
    SelAllPopMenuItem: TMenuItem;
    N15: TMenuItem;
    DelSpacePopMenuItem: TMenuItem;
    SetTitlePopMenuItem: TMenuItem;
    SetIndexPopMenuItem: TMenuItem;
    SetAuthorPopMenuItem: TMenuItem;
    RichEdit: TRichEdit;
    RightTopPanel: TPanel;
    TitleLabel: TKvLabel;
    PrevSpeedButton: TSpeedButton;
    NextSpeedButton: TSpeedButton;
    ControlBar: TControlBar;
    FileToolBar: TToolBar;
    OpenToolButton: TToolButton;
    SaveToolButton: TToolButton;
    MyLoveToolButton: TToolButton;
    PrintToolButton: TToolButton;
    MenuToolBar: TToolBar;
    FileToolButton: TToolButton;
    EditToolButton: TToolButton;
    ViewToolButton: TToolButton;
    OperatorToolButton: TToolButton;
    HelpToolButton: TToolButton;
    EditToolBar: TToolBar;
    CutToolButton: TToolButton;
    CopyToolButton: TToolButton;
    PasteToolButton: TToolButton;
    FindToolButton: TToolButton;
    ActionList: TActionList;
    NewAction: TAction;
    OpenAction: TAction;
    SaveAction: TAction;
    CloseAction: TAction;
    FImportAction: TAction;
    DImportAction: TAction;
    ExportAction: TAction;
    PrintAction: TAction;
    MyLoveAction: TAction;
    ExitAction: TAction;
    UndoAction: TAction;
    RedoAction: TAction;
    CutAction: TAction;
    CopyAction: TAction;
    PasteAction: TAction;
    SelAllAction: TAction;
    FindAction: TAction;
    FindNextAction: TAction;
    ReplaceAction: TAction;
    DelSpaceAction: TAction;
    ToolsAction: TAction;
    StatusAction: TAction;
    ReadOnlyAction: TAction;
    BigFontAction: TAction;
    SmallFontAction: TAction;
    OptionAction: TAction;
    AddNodeAction: TAction;
    AddSubNodeAction: TAction;
    EditNodeAction: TAction;
    DelNodeAction: TAction;
    SortAction: TAction;
    CompressAction: TAction;
    CovertAction: TAction;
    AboutAction: TAction;
    ReadMeAction: TAction;
    HomePageAction: TAction;
    EMailAction: TAction;
    OtherAction: TAction;
    TitleAction: TAction;
    ViewToolBar: TToolBar;
    ReadOnlyToolButton: TToolButton;
    ToolButton4: TToolButton;
    BigFontToolButton: TToolButton;
    SmallFontToolButton: TToolButton;
    OperatorToolBar: TToolBar;
    AddNodeToolButton: TToolButton;
    AddSubNodeToolButton: TToolButton;
    EditNodeToolButton: TToolButton;
    DelNodeToolButton: TToolButton;
    OtherToolBar: TToolBar;
    ReadMeToolButton: TToolButton;
    AboutToolButton: TToolButton;
    ToolButton7: TToolButton;
    HomePageToolButton: TToolButton;
    EMailToolButton: TToolButton;
    ToolButton8: TToolButton;
    ExitToolButton: TToolButton;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    WordWrapAction: TAction;
    WordWrapMenuItem: TMenuItem;
    WordWrapToolButton: TToolButton;
    N5: TMenuItem;
    TitleToolButton: TToolButton;
    N16: TMenuItem;
    ExportPopMenuItem: TMenuItem;
    CParaAction: TAction;
    DParaAction: TAction;
    CParaMenuItem: TMenuItem;
    DParaMenuItem: TMenuItem;
    GbToBigAction: TAction;
    BigToGbAction: TAction;
    N17: TMenuItem;
    GbToBigMenuItem: TMenuItem;
    BigToGbMenuItem: TMenuItem;
    ToolBar1: TToolBar;
    KvLabel1: TKvLabel;
    Edit1: TEdit;
    procedure FormShow(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure StatusBarDrawPanel(StatusBar: TStatusBar;
      Panel: TStatusPanel; const Rect: TRect);
    procedure NewMenuItemClick(Sender: TObject);
    procedure CovertMenuItemClick(Sender: TObject);
    procedure OpenMenuItemClick(Sender: TObject);
    procedure TreeViewChange(Sender: TObject; Node: TTreeNode);
    procedure CloseMenuItemClick(Sender: TObject);
    procedure SaveMenuItemClick(Sender: TObject);
    procedure TreeViewEdited(Sender: TObject; Node: TTreeNode;
      var S: String);
    procedure FImportMenuItemClick(Sender: TObject);
    procedure ExportMenuItemClick(Sender: TObject);
    procedure PrintMenuItemClick(Sender: TObject);
    procedure ExitMenuItemClick(Sender: TObject);
    procedure TreeViewChanging(Sender: TObject; Node: TTreeNode;
      var AllowChange: Boolean);
    procedure UndoMenuItemClick(Sender: TObject);
    procedure RedoMenuItemClick(Sender: TObject);
    procedure CutMenuItemClick(Sender: TObject);
    procedure CopyMenuItemClick(Sender: TObject);
    procedure PasteMenuItemClick(Sender: TObject);
    procedure SelAllMenuItemClick(Sender: TObject);
    procedure FindMenuItemClick(Sender: TObject);
    procedure FindNextMenuItemClick(Sender: TObject);
    procedure ReplaceMenuItemClick(Sender: TObject);
    procedure DelSpaceMenuItemClick(Sender: TObject);
    procedure FindDialogFind(Sender: TObject);
    procedure ReplaceDialogReplace(Sender: TObject);
    procedure ToolsMenuItemClick(Sender: TObject);
    procedure StatusMenuItemClick(Sender: TObject);
    procedure TitleMenuItemClick(Sender: TObject);
    procedure ReadOnlyMenuItemClick(Sender: TObject);
    procedure BigFontMenuItemClick(Sender: TObject);
    procedure SmallFontMenuItemClick(Sender: TObject);
    procedure OptionsMenuItemClick(Sender: TObject);
    procedure AddNodeMenuItemClick(Sender: TObject);
    procedure AddSubNodeMenuItemClick(Sender: TObject);
    procedure EditNodeMenuItemClick(Sender: TObject);
    procedure DelNodeMenuItemClick(Sender: TObject);
    procedure SortMenuItemClick(Sender: TObject);
    procedure CompressMenuItemClick(Sender: TObject);
    procedure MyLoveMenuItemClick(Sender: TObject);
    procedure HomePageMenuItemClick(Sender: TObject);
    procedure AboutMenuItemClick(Sender: TObject);
    procedure ReadmeMenuItemClick(Sender: TObject);
    procedure EMailMenuItemClick(Sender: TObject);
    procedure OtherMenuItemClick(Sender: TObject);
    procedure DImportMenuItemClick(Sender: TObject);
    procedure SetTitlePopMenuItemClick(Sender: TObject);
    procedure TreeViewDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure TreeViewDragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure CutNodePopMenuItemClick(Sender: TObject);
    procedure CopyNodePopMenuItemClick(Sender: TObject);
    procedure PasteNodePopMenuItemClick(Sender: TObject);
    procedure TreeViewPopupMenuPopup(Sender: TObject);
    procedure RichEditPopupMenuPopup(Sender: TObject);
    procedure FileMenuItemClick(Sender: TObject);
    procedure EditMenuItemClick(Sender: TObject);
    procedure DbAuthorEditChange(Sender: TObject);
    procedure ContextAuthorEditChange(Sender: TObject);
    procedure SetAuthorPopMenuItemClick(Sender: TObject);
    procedure SetIndexPopMenuItemClick(Sender: TObject);

    procedure PrevSpeedButtonClick(Sender: TObject);
    procedure NextSpeedButtonClick(Sender: TObject);
    procedure TreeViewExpanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);
    procedure ContextTypeRadioGroupClick(Sender: TObject);
    procedure RichEditChange(Sender: TObject);
    procedure ListMenuItemClick(Sender: TObject);
    procedure TreeViewCompare(Sender: TObject; Node1, Node2: TTreeNode;
      Data: Integer; var Compare: Integer);
    procedure RichEditKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ControlBarDockOver(Sender: TObject; Source: TDragDockObject;
      X, Y: Integer; State: TDragState; var Accept: Boolean);
    procedure WordWrapMenuItemClick(Sender: TObject);
    procedure CParaMenuItemClick(Sender: TObject);
    procedure DParaMenuItemClick(Sender: TObject);
    procedure GbToBigMenuItemClick(Sender: TObject);
    procedure BigToGbMenuItemClick(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure SearchListBoxClick(Sender: TObject);
  private
      procedure MyShowHint(Sender:TObject); //应用程序提示函数
  public
    { Public declarations }
  end;

var
  SrmForm: TSrmForm;
  PanelHint:string;                  //在线提示
  Srm: TSrmObject;   //Srm读写类


implementation

uses SrmAbout, InputPw, SrmOption, MainFun, RegUnit, MruUnit, ClipUnit,
  GbBig;


{$R *.DFM}

//****************************************************************
procedure TSrmForm.MyShowHint(Sender:TObject);
begin
  PanelHint:=GetLongHint(Application.Hint);
  SrmForm.StatusBar.Refresh;
end;
//****************************************************************
//窗体新建前----------------------------------------------------------------
procedure TSrmForm.FormCreate(Sender: TObject);
var
  i:integer;
begin
  //变量初始化
  SrmClip:=TSrmClip.Create;  //初始化自身剪贴板
  AppIni:=TAppIni.Create;   //读入配置信息和状态信息

  Mru:=TMru.Create;              //文件菜单的设置
  Mru.ParentMenu:=FileMenuItem;
  Mru.Position:=11;
  Mru.Visible:=AppIni.FileListVisible;
  for i:=4 downto 0 do Mru.Add(AppIni.FileList[i]);
  MyLoveMenuItem.Enabled:=AppIni.MyLoveFile<>'';
  MyLoveMenuItem.Visible:=AppIni.MyLoveVisible;
  MyLoveNextMenuItem.Visible:=Appini.MyLoveVisible;

  if ParamCount=1 then
  begin
    OpenSrm(ParamStr(1)); //带文件名参数运行时
    exit;
  end;
  if AppIni.LoadNearFile then        //如果允许打开上次关闭时的文件
    if AppIni.NearFile<>'' then        //否则打开上次关闭时的文件
      if FileExists(AppIni.NearFile) then  //文件存在时
      begin
        OpenSrm(AppIni.NearFile);
        if Srm<>nil then Caption:=csAppName+' - '+Srm.FileName;
      end;
  Application.OnHint:=MyShowHint;
end;
//窗体显示前----------------------------------------------------------------
procedure TSrmForm.FormShow(Sender: TObject);
begin
//
end;
//窗体关闭前----------------------------------------------------------------
procedure TSrmForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  if Srm<>nil then
    AppIni.NearFile:=Srm.FileName
  else
    AppIni.NearFile:='';
  if CloseSrmQuery then
    CloseSrm
  else
  begin
    Action:=caNone;
    exit;
  end;

⌨️ 快捷键说明

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