📄 main.pas
字号:
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 + -