📄 main.pas
字号:
f_setup.Check_page_ye.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_Page_ye_Flag,True); //初始化点击页面翻页标志
if Reg_ini.ReadBool(Reg_Path,Reg_Max_Flag,False) then
Pop_Max.Caption:='恢复显示'
else
Pop_Max.Caption:='最大化显示';
f_setup.Check_ye_View.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_ye_view_Flag,True); //初始化页码显示标志
f_setup.Check_Item_Change.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_Item_Change_Flag,True); //初始化改变最新文件菜单顺序标志
f_setup.Check_Openfile.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_Openfile_Flag,False); //初始化打开上次关闭时候的文件标志
f_setup.Check_BackBmp.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_BackBmp_Flag,False); //初始化背景图片标志
f_setup.BackBmp.Caption:=Reg_ini.ReadString(Reg_Path,Reg_BackBmp_Filename,''); //初始化背景图片文件
f_setup.Check_Label_Image.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_Label_Image_Flag,False); //初始化书签图片标志
f_setup.Label_Image.Caption:=Reg_ini.ReadString(Reg_Path,Reg_Label_Image_Filename,''); //初始化书签图片文件
f_setup.Check_Flat.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_Flat,False); //初始化浮动式按钮标志
i:=0;
while (i>=0) do
begin
//读入背景音乐文件
s1:=Reg_ini.ReadString(Reg_Sound_Path,Reg_Sound_Filename+IntToStr(i),'');
if s1='' then
i:=-2
else
f_mp3play.Sound_Name.Items.Add(s1);
inc(i);
end;
if f_mp3play.Sound_Name.Items.Count>0 then
f_mp3play.Current_Filename.Text:='1. '+f_mp3play.Sound_Name.Items[0]
else
f_mp3play.Current_Filename.Text:='没有选择音乐文件';
f_mp3play.BtnRepeat.Down:=Reg_ini.ReadBool(Reg_Sound_Path,Reg_Sound_Repeat,False); //背景音乐重复播放标志
f_setup.Check_ClearLab.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_ClearLab_Flag,True); //初始化清除书签信息标志
f_setup.Check_ClearNew.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_ClearNew_Flag,True); //初始化清除最新文件信息标志
//初始化自动翻页设置
Auto_Page_Move.Interval:=Reg_ini.ReadInteger(Reg_Path,Reg_AutoVal,0)*1000; //初始化自动翻页标志
Auto_Page_Move.Enabled:=Reg_ini.ReadBool(Reg_Path,Reg_Auto_Page_Move_Flag,False); //初始化自动翻页时间
Pop_Auto_Page_Move.Checked:=Auto_Page_Move.Enabled;
Pop_Auto_Page_Move.Caption:='自动翻页('+IntToStr(round(f_main.Auto_Page_Move.Interval/1000))+'秒)';
//初始化处理设置
Pop_BIG5.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_BIG5_Flag,False); //初始化处理BIG5码标志
Pop_GB.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_GB_Flag,False); //初始化处理GB码标志
Pop_html.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_html_Flag,False); //初始化处理html标志
Pop_Chap.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_Chap_Flag,False); //初始化智能分段标志
Pop_HangD.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_HangD_Flag,False); //初始化行距加倍标志
Pop_UnderLine.Checked:=Reg_ini.ReadBool(Reg_Path,Reg_UnderLine_Flag,False); //初始化下划线标志
UnderLine_Color:=Reg_ini.ReadInteger(Reg_Path,Reg_UnderLine_Color,clRed); //下划线颜色
UnderLine_Offset:=Reg_ini.ReadInteger(Reg_Path,Reg_UnderLine_Offset,0); //下划线距离
UnderLine_Thick:=Reg_ini.ReadInteger(Reg_Path,Reg_UnderLine_Thick,1); //下划线宽度
//初始化时间显示设置
Time_Panel.Visible:=Reg_ini.ReadBool(Reg_Path,Reg_ShowTime,True);
//初始化定时提醒
for i:=1 to Alarm_Max do
begin
bAlarm[i]:=Reg_ini.ReadBool(Reg_Alarm_Path,Reg_Alarm_Flag+IntToStr(i),False); //每次定时提醒标志
AlarmTime[i]:=StrToTime(Reg_ini.ReadString(Reg_Alarm_Path,Reg_Alarm_Time+IntToStr(i),'00:00:00')); //每次定时提醒时间
AlarmMsg[i]:=Reg_ini.ReadString(Reg_Alarm_Path,Reg_Alarm_Msg+IntToStr(i),'不要长时间盯着屏幕,注意用眼卫生。'); //每次定时提醒内容
end;
//初始化背景图片设置
Open_BackBMP;
//初始化书签图片设置
Open_LabelBMP;
//初始化上次关闭时候的文件设置
Close_Filename:=Reg_ini.ReadString(Reg_File_Path,Reg_Close_Filename,''); //初始化文件名
Close_Filename_Index:=Reg_ini.ReadInteger(Reg_File_Path,Reg_Close_Filename_Index,0); //初始化文件索引
Close_Filename_ye:=Reg_ini.ReadInteger(Reg_File_Path,Reg_Close_Filename_ye,0); //初始化文件页码
//初始化最新文件菜单
j:=0;
while (j<=Reg_Filename_Count-1) do
begin //从注册表中逐个读入最新文件
k:=Reg_ini.ReadInteger(Reg_File_Path,Reg_Filename_Sort+IntToStr(j),-1); //获得索引值
tempFileName:=Reg_ini.ReadString(Reg_File_Path,Reg_Filename+IntToStr(k),''); //获得索引指定的文件名
if tempFileName<>'' then
begin //有最新文件,则加入菜单
//建立最新文件子菜单
AddNew:=TMenuItem.Create(Self);
AddNew.Caption:=IntToStr(j+1)+Pop_New_Index+tempFileName;
AddNew.OnClick:=OpenNewClick;
//更改最新文件菜单设置
Pop_new.Insert(Pop_new.Count-2,AddNew); //添加子菜单
Pop_new.Enabled:=True; //允许使用下一级子菜单
Pop_clearnew.Enabled:=True; //允许删除最新记录
//下一个最新文件
inc(j);
end
else //无最新文件,则退出循环
break;
end;
//关闭注册表
Reg_ini.Free;
end;
procedure Tf_main.Init_Window(); //调整窗口
begin
//计算窗口中控件的相对宽度、高度平均值
Width_av:=Book_Width_v/Book_Width;
Height_av:=Book_Height_v/Book_Height;
//计算翻页变量
Page_Move_Width_v:=trunc(Width_av*Page_Move_Width);
Page_Move_Height_v:=Book_Height_v;
Page_Next_Left_v:=trunc(Width_av*Page_Next_Left);
//计算按钮变量
//Book_Button_Width_v:=Page_Move_Width_v;
//if Book_Button_Width_v<13 then
Book_Button_Width_v:=13;
//调整窗口
Book_Resize_Flag:=True; //写标志:禁止改变窗口大小
f_main.Left:=Book_Left_v; //窗口左位置
f_main.Top:=Book_Top_v; //窗口上位置
f_main.Width:=Book_Width_v; //窗口宽度
f_main.Height:=Book_Height_v; //窗口高度
Book_Resize_Flag:=False; //写标志:允许改变窗口大小
//调整底图大小
Book_Image.Width:=Book_Width_v;
Book_Image.Height:=Book_Height_v;
//调整翻页
Page_Prev.Width:=Page_Move_Width_v;
Page_Prev.Height:=Page_Move_Height_v;
Page_Next.Width:=Page_Move_Width_v;
Page_Next.Height:=Page_Move_Height_v;
Page_Next.Left:=Page_Next_Left_v;
//调整按钮
Book_MinSize.Left:=Book_Image.Width-Book_Button_Width_v;
Book_MinSize.Top:=0;
Book_MinSize.Width:=Book_Button_Width_v;
Book_MinSize.Height:=Book_Button_Width_v;
Book_Move.Left:=Book_Image.Width-Book_Button_Width_v;
Book_Move.Top:=Book_Image.Height-2*Book_Button_Width_v-1;
Book_Move.Width:=Book_Button_Width_v;
Book_Move.Height:=Book_Button_Width_v;
Book_Resize.Left:=Book_Image.Width-Book_Button_Width_v;
Book_Resize.Top:=Book_Image.Height-Book_Button_Width_v;
Book_Resize.Width:=Book_Button_Width_v;
Book_Resize.Height:=Book_Button_Width_v;
//调整时间显示框
Time_Panel.Left:=1;
Time_Panel.Top:=1;
end;
procedure Tf_main.Init_Page();
begin
//判断打开文件名是否正确
if (filename='') or (filename='说明文件') then
begin //打开说明文件
Pop_new.Items[OpenNew_Index].Default:=False; //取消默认菜单
pop_Label_Input.Enabled:=False; //取消指定书签
filename:='说明文件'; //写说明文件的文件名
TextRead_Bak[1]:=readme.Text; //调整原始文本框
TextRead_Ready[1]:=TextRead_Bak[1]; //调整处理文本框
CountTextRead:=1; //总文本框数写1
CurrentTextRead:=1; //当前文本框数写1
//初始化显示信息
with f_mess do
begin
compper.Min:=0;
compper.Max:=CountTextRead;
compper.Position:=compper.Min;
end;
//清除处理
Pop_Gb.Checked:=False;
Pop_Big5.Checked:=False;
Pop_Html.Checked:=False;
Pop_chap.Checked:=False;
//关闭显示信息
f_mess.Close;
end;
if filename='剪贴板' then
begin //打开剪贴板
Pop_new.Items[OpenNew_Index].Default:=False; //取消默认菜单
pop_Label_Input.Enabled:=False; //取消指定书签
//调整原始文本框
with TClipBoard.Create do
begin
CountTextRead:=trunc(Length(AsText)/BufSize);
if CountTextRead*BufSize<Length(AsText) then inc(CountTextRead);
if CountTextRead<=0 then CountTextRead:=1;
if CountTextRead>=MaxTextRead then CountTextRead:=MaxTextRead-1;
for i:=1 to CountTextRead do
begin
TextRead_Bak[i]:=Copy(AsText, (i-1)*BufSize+1, BufSize);
TextRead_Ready[i]:=TextRead_Bak[i]; //调整处理文本框
end;
Free;
end;
CurrentTextRead:=1; //当前文本框数写1
//初始化显示信息
with f_mess do
begin
compper.Min:=0;
compper.Max:=CountTextRead;
compper.Position:=compper.Min;
end;
//处理文本框
Init_BIG5; //BIG5码处理
Init_html; //html处理
Init_Chap; //智能分段
//关闭显示信息
f_mess.Close;
end;
//显示信息
ShowMess('初始化书本');
//调整字体
Page_1.Font:=PageFont.Font;
Page_2.Font:=PageFont.Font;
Page_1.Canvas.Font:=PageFont.Font;
Page_2.Canvas.Font:=PageFont.Font;
Page_Test.Font:=PageFont.Font;
//调整页面变量
Page_1_Left_v:=trunc(Width_av*Page_1_Left);
Page_2_Left_v:=trunc(Width_av*Page_2_Left);
Page_Top_v:=trunc(Height_av*Page_Top);
Page_Width_v:=trunc(Width_av*Page_Width);
Page_Height_v:=trunc(Height_av*Page_Height);
//调整书签变量
Label_Left_v:=trunc(Width_av*Label_Left);
Label_Top_v:=trunc(Height_av*Label_Top);
Label_Width_v:=trunc(Width_av*Label_Width);
Label_Height_v:=trunc(Height_av*Label_Height);
//调整文本框字体和宽度
for i:=1 to CountTextRead do
begin
//显示完成度信息
ShowMessPos(i);
TextRead[i].Text:='';
TextRead[i].Font:=PageFont.Font;
TextRead[i].Width:=Page_Width_v;
TextRead[i].Text:=TextRead_Ready[i];
end;
//计算目前文本框总行数
Count_Line_Number:=0;
for i:=1 to CurrentTextRead do
Count_Line_Number:=Count_Line_Number+TextRead[i].Lines.Count;
//调整页面测试变量
Page_Test.Caption:='测试'+#13+#10+'测试'+#13+#10+'测试'+#13+#10+'测试';
Page_Test_Width_v:=Page_Test.Width;
Page_Test_Height_v:=Page_Test.Height;
//计算每个页面可容纳的行数
Page_Number:=trunc(Page_Height_v/Page_Test_Height_v*4);
if Pop_HangD.Checked then Page_Number:=trunc(Page_Number/2);
if Page_Number<1 then Page_Number:=1;
//调整页码数
//计算文本框总行数
Countlines:=0;
for i:=1 to CountTextRead do
Countlines:=Countlines+TextRead[i].Lines.Count;
//计算总页码、当前页码数
ye_Count_v:=trunc(Countlines/Page_Number);
if (ye_Count_v*10 <> trunc(Countlines*10)) or (ye_Count_v<1) then
inc(ye_Count_v);
ye_Current_v:=1;
//调整菜单按钮
if ye_Count_v<=2 then
begin
Pop_page_input.Enabled:=False; //写标志:禁止“指定页”功能
Pop_page_input1.Enabled:=False; //写标志:禁止“指定页”功能
end
else
begin
Pop_page_input.Enabled:=True; //写标志:允许“指定页”功能
Pop_page_input1.Enabled:=True; //写标志:允许“指定页”功能
end;
//调整页面
Page_1.Left:=Page_1_Left_v;
Page_1.Top:=Page_Top_v;
Page_1.Width:=Page_Width_v;
Page_1.Height:=Page_Height_v;
Page_2.Left:=Page_2_Left_v;
Page_2.Top:=Page_Top_v;
Page_2.Width:=Page_Width_v;
Page_2.Height:=Page_Height_v;
//调整书签
label_image.Left:=Label_Left_v;
label_image.Top:=Label_Top_v;
label_image.Width:=Label_Width_v;
label_image.Height:=Label_Height_v;
label_image_Pic.Width:=label_image.Width;
label_image_Pic.Height:=label_image.Height;
//调整下划线
UnderLine_Number:=1; //下划线行数写1
with UnderLine do
begin
Left:=Page_1_Left_v;
Width:=Page_Width_v;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -