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

📄 main.pas

📁 源代码竟供大家参考
💻 PAS
📖 第 1 页 / 共 5 页
字号:
unit main;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Menus, ShellAPI, Buttons, Registry, ComCtrls, MPEGPLAYLib_TLB;

const MyIcoMes=WM_USER+78;

type
  Tf_main = class(TForm)
    book_image: TImage;
    main_pop: TPopupMenu;
    pop_quit: TMenuItem;
    page_1: TLabel;
    page_2: TLabel;
    ye_1_be: TLabel;
    ye_1: TLabel;
    ye_1_af: TLabel;
    ye_2_be: TLabel;
    ye_2: TLabel;
    ye_2_af: TLabel;
    page_prev: TImage;
    page_next: TImage;
    Book_Move: TImage;
    Book_Resize: TImage;
    ye_1_test: TLabel;
    ye_2_test: TLabel;
    page_test: TLabel;
    pop_open: TMenuItem;
    OpenTextFile: TOpenDialog;
    N1: TMenuItem;
    pop_setup: TMenuItem;
    pop_about: TMenuItem;
    N3: TMenuItem;
    pop_new: TMenuItem;
    Book_MinSize: TImage;
    get_setup_timer: TTimer;
    pop_page_move: TPopupMenu;
    pop_page_prev: TMenuItem;
    pop_page_next: TMenuItem;
    N6: TMenuItem;
    pop_page_first: TMenuItem;
    pop_page_last: TMenuItem;
    pop_page_input: TMenuItem;
    readme: TMemo;
    PageFont: TFontDialog;
    yeFont: TFontDialog;
    Auto_Page_Move: TTimer;
    pop_clearnew: TMenuItem;
    N4: TMenuItem;
    pop_recordtime: TMenuItem;
    RecordTime: TTimer;
    pop_BIG5: TMenuItem;
    N5: TMenuItem;
    N7: TMenuItem;
    pop_Chap: TMenuItem;
    pop_Page_Input1: TMenuItem;
    N2: TMenuItem;
    pop_html: TMenuItem;
    pop_Auto_Page_Move: TMenuItem;
    pop_MP3: TMenuItem;
    Chap_List: TListBox;
    Chap_List1: TListBox;
    pop_save: TMenuItem;
    SaveTextFile: TSaveDialog;
    Back_Image: TImage;
    Auto_Page_Scroll: TTimer;
    pop_Label_Add: TMenuItem;
    pop_Label_Edit: TMenuItem;
    pop_Label_Delete: TMenuItem;
    N9: TMenuItem;
    pop_Label_Input: TMenuItem;
    Label_image: TPanel;
    label_image_Pic: TImage;
    Label_Image_1: TImage;
    Time_Panel: TPanel;
    Show_Time: TTimer;
    Show_Time_pop: TPopupMenu;
    pop_Show_Time: TMenuItem;
    pop_Show: TMenuItem;
    pop_image: TImageList;
    pop_deal: TMenuItem;
    pop_Label: TMenuItem;
    N8: TMenuItem;
    pop_Lib: TMenuItem;
    Key_Delay: TTimer;
    pop_GB: TMenuItem;
    pop_hangD: TMenuItem;
    UnderLine: TImage;
    pop_UnderLine: TMenuItem;
    UnderLineColor: TColorDialog;
    Auto_UnderLine: TTimer;
    pop_Max: TMenuItem;
    procedure pop_quitClick(Sender: TObject);
    procedure FormResize(Sender: TObject);
    procedure Book_MoveMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure Book_ResizeMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure pop_openClick(Sender: TObject);
    procedure page_prevClick(Sender: TObject);
    procedure page_nextClick(Sender: TObject);
    procedure pop_aboutClick(Sender: TObject);
    procedure pop_setupClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
    procedure OpenNewClick(Sender: TObject);
    procedure get_setup_timerTimer(Sender: TObject);
    procedure pop_page_prevClick(Sender: TObject);
    procedure pop_page_nextClick(Sender: TObject);
    procedure pop_page_firstClick(Sender: TObject);
    procedure pop_page_lastClick(Sender: TObject);
    procedure pop_page_inputClick(Sender: TObject);
    procedure book_imageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Auto_Page_MoveTimer(Sender: TObject);
    procedure pop_clearnewClick(Sender: TObject);
    procedure pop_page_movePopup(Sender: TObject);
    procedure pop_recordtimeClick(Sender: TObject);
    procedure RecordTimeTimer(Sender: TObject);
    procedure Mp3PlayActFrame(Sender: TObject; ActFrame: Integer);
    procedure Mp3PlayThreadEnded(Sender: TObject);
    procedure pop_BIG5Click(Sender: TObject);
    procedure pop_ChapClick(Sender: TObject);
    procedure pop_htmlClick(Sender: TObject);
    procedure pop_Auto_Page_MoveClick(Sender: TObject);
    procedure pop_MP3Click(Sender: TObject);
    procedure pop_saveClick(Sender: TObject);
    procedure Auto_Page_ScrollTimer(Sender: TObject);
    procedure OpenLabelClick(Sender: TObject);
    procedure Label_imageMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure pop_Label_AddClick(Sender: TObject);
    procedure pop_Label_EditClick(Sender: TObject);
    procedure pop_Label_DeleteClick(Sender: TObject);
    procedure Time_PanelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
    procedure Init;
    procedure Init_Var;
    procedure Init_Window;
    procedure Init_Page;
    procedure Init_Page_String;
    procedure Init_Ye;
    procedure Init_UnderLine;
    procedure RegMp3;
    procedure Init_Page_do;
    procedure Init_BIG5;
    procedure Init_GB;
    procedure Init_Chap;
    procedure Init_html;
    procedure OpenFile;
    procedure Changeye(Changeye_v : longint);
    procedure Show_TimeTimer(Sender: TObject);
    procedure pop_Show_TimeClick(Sender: TObject);
    procedure pop_ShowClick(Sender: TObject);
    procedure FormHide(Sender: TObject);
    procedure main_popPopup(Sender: TObject);
    procedure Put_pop_Image(MenuIndex,ImageIndex : integer);
    procedure pop_LibClick(Sender: TObject);
    procedure Open_Param_File(Param_Filename : string);
    function  Get_Filename_Ext(Deal_Filename : string) : string;
    procedure Key_DelayTimer(Sender: TObject);
    procedure Delete_NewItem(Delete_Index : integer);
    procedure pop_GBClick(Sender: TObject);
    procedure pop_hangDClick(Sender: TObject);
    procedure pop_UnderLineClick(Sender: TObject);
    procedure UnderLine_Prev;
    procedure UnderLine_Next;
    procedure Auto_UnderLineTimer(Sender: TObject);
    procedure Book_MinSizeClick(Sender: TObject);
    procedure pop_MaxClick(Sender: TObject);
    procedure Init_Max;
  private
    { Private declarations }
  public
    { Public declarations }
    Reg_ini : TRegIniFile;  //注册表变量
    procedure MyIcoMesDo(var Msg : TMessage);Message MyIcoMes;  //托盘图标的返回消息
    procedure WMDropFiles(var Msg : TMessage); message WM_DROPFILES;  //拖动文件消息
  end;

const
  //菜单图片常量
  pop_image_count = 9;    //菜单图片总数

  //版本号
  ver = '2.55';
  
  //书库文件扩展名
  Lib_File = 'blf';

  //窗口常量
  Book_Left = 100;         //窗口左位置
  Book_Top = 50;           //窗口上位置
  Book_Width = 556;        //窗口宽度
  Book_Height = 380;       //窗口高度

  //页面常量
  Page_Width = 230;        //页面宽度
  Page_Height = 330;       //页面高度 324
  Page_Top = 28;           //页面上位置
  Page_1_Left = 33;        //左页面左位置
  Page_2_Left = 306;       //右页面左位置

  //书签常量
  Label_Left = 300;        //书签左位置
  Label_Top = 5;           //书签上位置
  Label_Width = 60;        //书签宽度
  Label_Height = 130;      //书签高度

  //文本框常量
  MaxTextRead = 60;        //最大文本框数

  //翻页常量
  Page_Move_Width = 13;    //翻页宽度
  Page_Move_Height = 380;  //翻页宽度
  Page_Next_Left = 543;    //右翻页左位置

  //页码常量
  ye_Loc_Left = 11;        //页码左位置
  ye_Loc_Top = 8;          //页码上位置

  //注册表常量
  Reg_Path = 'Software\Tale\ReadBook';              //系统目录
  Reg_File_Path = 'Software\Tale\ReadBook\File';    //最新文件目录
  Reg_Font_Path = 'Software\Tale\ReadBook\Font';    //字体目录
  Reg_Label_Path = 'Software\Tale\ReadBook\Label';  //书签目录

  //注册标志
  Reg_Reg_Flag = '注册';
  Reg_Reg_Ver = '版本';

  //注册窗口位置、大小
  Reg_Book_Left = '窗口左位置';
  Reg_Book_Top = '窗口上位置';
  Reg_Book_Width = '窗口宽度';
  Reg_Book_Height = '窗口高度';

  //注册页码位置、前缀、后缀
  Reg_ye_1_loc = '页码1位置';
  Reg_ye_1_be = '页码1前缀';
  Reg_ye_1_af = '页码1后缀';

  Reg_ye_2_loc = '页码2位置';
  Reg_ye_2_be = '页码2前缀';
  Reg_ye_2_af = '页码2后缀';

  //注册字体设置(页面、页码)
  Reg_Page_Font_Name = '页面字体';
  Reg_Page_Font_Size = '页面字体大小';
  Reg_Page_Font_Color = '页面字体颜色';
  Reg_Page_Font_Charset = '页面字体语系';
  Reg_Page_Font_Style_1 = '页面字体粗体';
  Reg_Page_Font_Style_2 = '页面字体斜体';
  Reg_Page_Font_Style_3 = '页面字体删除线';
  Reg_Page_Font_Style_4 = '页面字体下划线';

  Reg_ye_Font_Name = '页码字体';
  Reg_ye_Font_Size = '页码字体大小';
  Reg_ye_Font_Color = '页码字体颜色';
  Reg_ye_Font_Charset = '页码字体语系';
  Reg_ye_Font_Style_1 = '页码字体粗体';
  Reg_ye_Font_Style_2 = '页码字体斜体';
  Reg_ye_Font_Style_3 = '页码字体删除线';
  Reg_ye_Font_Style_4 = '页码字体下划线';

  //注册系统设置
  Reg_Book_Move_Flag = '窗口移动';
  Reg_Book_Resize_Flag = '窗口改变大小';
  Reg_Page_Move_Flag = '点击页面移动';
  Reg_Max_Flag = '最大化显示';
  Reg_ye_view_Flag = '页码显示';

  Reg_Auto_Page_Move_Flag = '自动翻页';
  Reg_AutoVal = '自动翻页时间';

  Reg_BackBmp_Flag = '背景图片';
  Reg_BackBmp_Filename = '背景图片文件';

  Reg_Label_image_Flag = '书签图片';
  Reg_Label_image_Filename = '书签图片文件';

  Reg_ClearLab_Flag = '清除书签信息';
  Reg_ClearNew_Flag = '清除最新文件';
  Reg_ShowTime = '显示时间';

  //注册处理设置
  Reg_BIG5_Flag = '处理BIG5码文件';
  Reg_GB_Flag = '处理GB码文件';
  Reg_html_Flag = '处理HTML文件';
  Reg_Chap_Flag = '智能分段';
  Reg_HangD = '行距加倍';

  Reg_UnderLine = '下划线';
  Reg_UnderLine_Color = '下划线颜色';
  Reg_UnderLine_Offset = '下划线距离';
  Reg_UnderLine_Thick = '下划线宽度';

  //注册最新文件设置
  Reg_Filename_Sort = '最新文件顺序';
  Reg_Filename = '最新文件';
  Reg_Filename_Count = 50;  //最多保存新文件数
  Reg_Item_Change_Flag = '改变最新文件顺序';

  Reg_Openfile_Flag = '打开上次关闭时候的文件';
  Reg_Close_Filename = '上次关闭文件';
  Reg_Close_Filename_Index = '上次关闭文件索引';
  Reg_Close_Filename_ye = '上次关闭文件页码';

  //注册书签设置
  Reg_Label = '书签';
  Reg_Label_string = '书签说明';
  Reg_Label_Count = 20;  //最多书签数

  //文件读入缓存大小
  BufSize = 30000;

var
  f_main: Tf_main;
  PNotify:PNotifyIconDataA;  //托盘图标结构
  xtsub : Boolean;           //系统调用标志
  Mouse_Point : TPoint;      //当前鼠标位置
  KeyOpenFile : integer;     //使用键盘打开文件的索引

  //菜单图片变量
  pop_Bitmap : array [0..pop_image_count-1] of TBitmap;      //菜单图片

  //mp3变量
  mp3play : TMp3Play;        //mp3控件
  existmp3 : Boolean;        //是否存在mp3控件
  sound_number : integer;    //播放的mp3数目

  //窗口变量
  Book_Left_v : integer;         //窗口左位置
  Book_Top_v : integer;          //窗口上位置
  Book_Width_v : integer;        //窗口宽度
  Book_Height_v : integer;       //窗口高度

  Book_Left_vv : integer;        //最大化前的窗口左位置
  Book_Top_vv : integer;         //最大化前的窗口上位置
  Book_Width_vv : integer;       //最大化前的窗口宽度
  Book_Height_vv : integer;      //最大化前的窗口高度

  Book_Resize_Flag : Boolean;    //窗口改变大小标志
  Width_av,Height_av : Real;     //窗口宽度、高度平均值

⌨️ 快捷键说明

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