📄 main.pas
字号:
unit main;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Menus, ShellAPI, Buttons, Registry, ComCtrls, ImgList,
jpeg, DlgText, clipbrd, FileCtrl;
const
MyIcoMes=WM_USER+78; //托盘图标返回消息
Alarm_Max = 4; //定时提醒最大数目
ZipPassTempDir = '\~talezip'; //zip文件临时解压目录
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;
N1: TMenuItem;
Pop_setup: TMenuItem;
Pop_about: TMenuItem;
N3: TMenuItem;
Pop_new: TMenuItem;
Book_MinSize: TImage;
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;
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;
Pop_edit: TMenuItem;
main_Pop_edit: TPopupMenu;
Pop_EndEdit: TMenuItem;
Pop_ExitEdit: TMenuItem;
RTFRead: TRichEdit;
N10: TMenuItem;
Pop_file_prev: TMenuItem;
Pop_file_next: TMenuItem;
Pop_refresh: TMenuItem;
Pop_Show_Alarm: TMenuItem;
N11: TMenuItem;
N14: TMenuItem;
Pop_Search: TMenuItem;
Pop_Search_Next: TMenuItem;
N12: TMenuItem;
Pop_ClipRead: TMenuItem;
ZipFileList: TListBox;
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 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 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 Label_Edit;
procedure Init;
procedure Init_Var;
procedure Init_Window;
procedure Init_Page;
procedure Init_Page_String;
procedure Init_Ye;
procedure Init_UnderLine;
procedure Init_Page_do;
procedure Init_BIG5;
procedure Init_GB;
procedure Init_Chap;
procedure Init_html;
procedure OpenFile;
procedure OpenFile_Modal;
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 Pop_LibClick(Sender: TObject);
procedure Open_Param_File(Param_Filename : string);
function Get_Filename_Ext(Deal_Filename : string) : string;
function Get_Filename_Path(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;
procedure Pop_editClick(Sender: TObject);
procedure Pop_EndEditClick(Sender: TObject);
procedure Pop_ExitEditClick(Sender: TObject);
procedure EditMemoKey(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure Pop_file_prevClick(Sender: TObject);
procedure Pop_file_nextClick(Sender: TObject);
procedure page_1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure page_1MouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure book_imageMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
procedure Pop_refreshClick(Sender: TObject);
procedure Pop_Show_AlarmClick(Sender: TObject);
procedure Open_BackBMP;
procedure Open_LabelBMP;
procedure Open_Alarm;
procedure Minimize(Sender: TObject);
procedure Pop_SearchClick(Sender: TObject);
procedure DoSearch;
procedure Pop_Search_NextClick(Sender: TObject);
procedure ShowMess(Msg : string);
procedure ShowMessPos(Pos : integer);
procedure Pop_ClipReadClick(Sender: TObject);
procedure OpenNewFile;
function IfFileExists(Boolfilename : string) : Boolean;
procedure OpenFirstFile;
private
{ Private declarations }
public
{ Public declarations }
//定时提醒变量
bAlarm : array [1..Alarm_Max] of Boolean; //每次定时提醒标志
AlarmTime : array [1..Alarm_Max] of TDateTime; //每次定时提醒时间
AlarmMsg : array [1..Alarm_Max] of string; //每次定时提醒内容
Reg_ini : TRegIniFile; //注册表变量
procedure MyIcoMesDo(var Msg : TMessage);Message MyIcoMes; //托盘图标的返回消息
procedure WMDropFiles(var Msg : TMessage); message WM_DROPFILES; //拖动文件消息
end;
//定义基本常量
const
//版本常量
ver = '2.65'; //当前版本号
//书库文件常量
Lib_File = 'blf'; //书库文件扩展名
//窗口常量
Book_Left = 100; //窗口左位置
Book_Top = 50; //窗口上位置
Book_Width = 556; //窗口宽度
Book_Height = 380; //窗口高度
//页面常量
Page_1_Left = 33; //左页面左位置
Page_2_Left = 306; //右页面左位置
Page_Top = 28; //页面上位置
Page_Width = 230; //页面宽度
Page_Height = 330; //页面高度
//书签常量
Label_Left = 300; //书签左位置
Label_Top = 5; //书签上位置
Label_Width = 40; //书签宽度
Label_Height = 90; //书签高度
//文本框常量
MaxTextRead = 90; //最大容纳的文本框数
//翻页常量
Page_Next_Left = 543; //右翻页的左位置
Page_Move_Width = 13; //翻页宽度
Page_Move_Height = 380; //翻页宽度
//页码常量
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_Alarm_Path = 'Software\Tale\ReadBook\Alarm'; //定时提醒目录
Reg_Sound_Path = 'Software\Tale\ReadBook\Sound'; //背景音乐目录
//注册标志
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_Page_ye_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_Sound_Filename = '背景音乐文件';
Reg_Sound_Repeat = '重复播放';
Reg_ClearLab_Flag = '清除书签信息';
Reg_ClearNew_Flag = '清除最新文件';
Reg_ShowTime = '显示时间';
Reg_Flat = '浮动式按钮';
//注册处理设置
Reg_BIG5_Flag = '处理BIG5码文件标志';
Reg_GB_Flag = '处理GB码文件标志';
Reg_html_Flag = '处理HTML文件标志';
Reg_Chap_Flag = '智能分段标志';
Reg_HangD_Flag = '行距加倍标志';
Reg_UnderLine_Flag = '下划线标志';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -