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

📄 main.pas

📁 编写
💻 PAS
📖 第 1 页 / 共 5 页
字号:
  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 + -