📄 main.pas
字号:
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
//显示完成度信息
f_mess.compper.Position:=i;
Application.ProcessMessages;
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;
Height:=1;
application.ProcessMessages;
Canvas.Pen.Color:=UnderLine_Color;
Canvas.Pen.Width:=UnderLine_Thick;
Canvas.MoveTo(0,0);
Canvas.LineTo(Page_Width_v,0);
Visible:=pop_UnderLine.Checked;
end;
Init_UnderLine;
//调整自动下划线状态
Auto_UnderLine.Enabled:=Auto_Page_Move.Enabled and pop_UnderLine.Checked;
Auto_UnderLine.Interval:=trunc(Auto_Page_Move.Interval/Page_Number/2)+1;
//调整自动卷行
Auto_Scroll_Count:=0;
//关闭显示信息
f_mess.Close;
Application.ProcessMessages;
end;
procedure Tf_main.Init_Page_String();
var TextRead_Page_Count_1 : string; //写入页面1的内容
TextRead_Page_Count_2 : string; //写入页面2的内容
begin
//清除写入页面内容
TextRead_Page_Count_1:='';
TextRead_Page_Count_2:='';
//计算页面起始行数
Page_Line_Number:=(ye_Current_v-1)*Page_Number;
Page_Line_Number:=Page_Line_Number+Auto_Scroll_Count; //调整自动卷行后的行数
//读文本框,写入页面变量
//写入页面1变量
for i:=1 to Page_Number do
begin
while (Page_Line_Number+i>Count_Line_Number) and (CurrentTextRead<CountTextRead) do
begin //所读的行数超过目前文本框总行数,则调整文本框状态
inc(CurrentTextRead); //当前文本框数+1
Count_Line_Number:=Count_Line_Number+TextRead[CurrentTextRead].Lines.Count; //调整目前文本框总行数
end;
while (Page_Line_Number+i<=Count_Line_Number-TextRead[CurrentTextRead].Lines.Count) and (CurrentTextRead>1) do
begin //所读的行数少于目前文本框总行数,则调整文本框状态
Count_Line_Number:=Count_Line_Number-TextRead[CurrentTextRead].Lines.Count; //调整目前文本框总行数
dec(CurrentTextRead); //当前文本框数-1
end;
//换算文本框行数
j:=Page_Line_Number+i-1-(Count_Line_Number-TextRead[CurrentTextRead].Lines.Count);
TextRead_Page_Count_1:=TextRead_Page_Count_1+TextRead[CurrentTextRead].Lines[j]+#13+#10;
if pop_HangD.Checked then
TextRead_Page_Count_1:=TextRead_Page_Count_1+#13+#10;
end;
//写入页面2变量
for i:=Page_Number+1 to 2*Page_Number do
begin
while (Page_Line_Number+i>Count_Line_Number) and (CurrentTextRead<CountTextRead) do
begin //所读的行数超过目前文本框总行数,则调整文本框状态
inc(CurrentTextRead); //当前文本框数+1
Count_Line_Number:=Count_Line_Number+TextRead[CurrentTextRead].Lines.Count; //调整目前文本框总行数
end;
while (Page_Line_Number+i<=Count_Line_Number-TextRead[CurrentTextRead].Lines.Count) and (CurrentTextRead>1) do
begin //所读的行数少于目前文本框总行数,则调整文本框状态
Count_Line_Number:=Count_Line_Number-TextRead[CurrentTextRead].Lines.Count; //调整目前文本框总行数
dec(CurrentTextRead); //当前文本框数-1
end;
//换算文本框行数
j:=Page_Line_Number+i-1-(Count_Line_Number-TextRead[CurrentTextRead].Lines.Count);
TextRead_Page_Count_2:=TextRead_Page_Count_2+TextRead[CurrentTextRead].Lines[j]+#13+#10;
if pop_HangD.Checked then
TextRead_Page_Count_2:=TextRead_Page_Count_2+#13+#10;
end;
if Auto_Scroll_Count>0 then
begin //向后卷行,处理页面
end;
if Auto_Scroll_Count<0 then
begin //向前卷行,处理页面
end;
// if Auto_Scroll_Count=0 then
// begin //不卷行,处理页面
Page_1.Caption:=TextRead_Page_Count_1;
Page_2.Caption:=TextRead_Page_Count_2;
// end;
//调整书签菜单
if filename<>'说明文件' then
begin //不是说明文件,则调整书签菜单
//初始化书签菜单
j:=0;
pop_Label_Add.Enabled:=True;
pop_Label_Edit.Enabled:=False;
pop_Label_Delete.Enabled:=False;
label_image.Visible:=False;
//取消默认书签
if pop_Label_Input.Enabled then
begin
pop_Label_Input.Items[0].Default:=True;
pop_Label_Input.Items[0].Default:=False;
end;
//检测书签
for j:=0 to pop_Label_Input.Count-1 do
begin
if (ye_Current_v=Label_Indexv[j]) or (ye_Current_v+1=Label_Indexv[j]) then
begin //当前页有书签,更新书签菜单
pop_Label_Add.Enabled:=False;
pop_Label_Edit.Enabled:=True;
pop_Label_Delete.Enabled:=True;
pop_Label_Input.Items[j].Default:=True;
label_image.Hint:=Label_Stringv[j];
label_image_Pic.Hint:=Label_Stringv[j];
label_image.Visible:=True;
break;
end;
end;
end;
end;
procedure Tf_main.Init_ye();
var x,y : integer; //页码位置
begin
//调整字体
ye_1_be.Font:=yeFont.Font;
ye_1.Font:=yeFont.Font;
ye_1_af.Font:=yeFont.Font;
ye_1_test.Font:=yeFont.Font;
ye_2_be.Font:=yeFont.Font;
ye_2.Font:=yeFont.Font;
ye_2_af.Font:=yeFont.Font;
ye_2_test.Font:=yeFont.Font;
//调整页码位置参数
ye_1_loc:=f_setup.ye_1_loc.Caption;
ye_2_loc:=f_setup.ye_2_loc.Caption;
//计算页码位置变量
ye_loc_Left_v:=trunc(Width_av*ye_loc_Left);
ye_loc_Top_v:=trunc(Width_av*ye_loc_Top);
//调整页码1
ye_1.Caption:=IntToStr(ye_Current_v);
ye_1_test.Caption:=ye_1_be.Caption+ye_1.Caption+ye_1_af.Caption;
//计算页码1位置1变量
case ye_1_loc[1] of
'1' : //靠左
x:=Page_Move_Width+ye_loc_Left_v;
'2' : //中间
x:=trunc((Book_Width_v/2-Page_Move_Width)/2-ye_1_test.Width/2+Page_Move_Width);
'3' : //靠右
x:=trunc(Book_Width_v/2-ye_Loc_Left_v-ye_1_test.Width);
end;
//计算页码1位置2变量
case ye_1_loc[2] of
'1' : //靠上
y:=ye_loc_Top_v;
'2' : //靠下
y:=trunc(Book_Height_v-ye_Loc_Top_v-ye_1_test.Height);
end;
//调整页码1位置
ye_1_be.Left:=x;
ye_1.Left:=ye_1_be.Left+ye_1_be.Width;
ye_1_af.Left:=ye_1.Left+ye_1.Width;
ye_1_be.Top:=y;
ye_1.Top:=y;
ye_1_af.Top:=y;
if f_setup.Check_ye_View.Checked then
begin //显示页码1
ye_1_be.Visible:=True;
ye_1_af.Visible:=True;
ye_1.Visible:=True;
end
else
begin //隐藏页码1
ye_1_be.Visible:=False;
ye_1_af.Visible:=False;
ye_1.Visible:=False;
end;
//隐藏页码2
ye_2_be.Visible:=False;
ye_2_af.Visible:=False;
ye_2.Visible:=False;
//调整页码2
if ye_Current_v+1<=ye_Count_v then
begin //存在页码2,则调整页码2
ye_2.Caption:=IntToStr(ye_Current_v+1);
ye_2_test.Caption:=ye_2_be.Caption+ye_2.Caption+ye_2_af.Caption;
//计算页码2位置1变量
case ye_2_loc[1] of
'1' : //靠左
x:=trunc(Book_Width_v/2+ye_Loc_Left_v);
'2' : //中间
x:=trunc((Book_Width_v/2-Page_Move_Width)/2-ye_2_test.Width/2+Book_Width_v/2);
'3' : //靠右
x:=trunc(Book_Width_v-Page_Move_Width-ye_Loc_Left_v-ye_2_test.Width);
end;
//计算页码2位置2变量
case ye_2_loc[2] of
'1' : //靠上
y:=ye_loc_Top_v;
'2' : //靠下
y:=trunc(Book_Height_v-ye_Loc_Top_v-ye_2_test.Height);
end;
//调整页码2位置
ye_2_be.Left:=x;
ye_2.Left:=ye_2_be.Left+ye_2_be.Width;
ye_2_af.Left:=ye_2.Left+ye_2.Width;
ye_2_be.Top:=y;
ye_2.Top:=y;
ye_2_af.Top:=y;
if f_setup.Check_ye_View.Checked then
begin //显示页码2
ye_2_be.Visible:=True;
ye_2_af.Visible:=True;
ye_2.Visible:=True;
end;
end;
end;
procedure Tf_main.Init_UnderLine();
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -