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

📄 unit_made.pas

📁 电子阅读器,适合处学者使用和学习.有意见联系我 .
💻 PAS
字号:
Unit Unit_Made;

Interface

Uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

Type
  TF_Made=Class(TForm)
    Button2: TButton;
    Button1: TButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    E_Writer: TEdit;
    E_Me: TEdit;
    C_Label: TComboBox;
    M_Remark: TMemo;
    M_Infor: TMemo;
    Button3: TButton;
    SaveDialog1: TSaveDialog;
    Procedure Button1Click(Sender: TObject);
    Procedure Button3Click(Sender: TObject);
    Procedure FormCreate(Sender: TObject);
  Private
    { Private declarations }
  Public
    { Public declarations }
  End;

Var
  f_made: TF_Made;

Implementation
Uses Unit_Main, unit_code, unit_pass;
Var BtkInfor: InFor;
{$R *.dfm}
Function Check_Made(): Boolean; //判断用户输入的信息是否合法
Begin
  Check_Made:=True;
  If Length(f_made.E_Writer.Text)>19 Then
  Begin
    MessageBox(f_made.Handle, PChar('图书著作者中的字符不能超过20个!'), PChar('信息'),
      MB_ICONINFORMATION Or MB_OK);
    Check_Made:=false;
    Exit;
  End;
  If Length(f_made.E_Me.Text)>19 Then
  Begin
    MessageBox(f_made.Handle, PChar('电子书作者中的字符不能超过20个!'), PChar('信息'),
      MB_ICONINFORMATION Or MB_OK);
    Check_Made:=false;
    Exit;
  End;
  If Length(f_made.M_Infor.Text)>224 Then
  Begin
    MessageBox(f_made.Handle, PChar('图书简介中的字符不能超过255个!'), PChar('信息'),
      MB_ICONINFORMATION Or MB_OK);
    Check_Made:=false;
    Exit;
  End;
  If Length(f_made.M_Remark.Text)>99 Then
  Begin
    MessageBox(f_made.Handle, PChar('备注中的字符不能超过100个!'), PChar('信息'),
      MB_ICONINFORMATION Or MB_OK);
    Check_Made:=false;
    Exit;
  End;
  If Length(f_made.C_Label.Text)>19 Then
  Begin
    MessageBox(f_made.Handle, PChar('图书分类中的字符不能超过20个!'), PChar('信息'),
      MB_ICONINFORMATION Or MB_OK);
    Check_Made:=false;
    Exit;
  End;
End;
Procedure TF_Made.Button1Click(Sender: TObject);
Var
  iTargetFile: Integer;
  ToFileName: String;

Begin
  If Not Check_Made Then Exit;

  If f_main.TreeView.Items.Count=0 Then
  Begin
    MessageBox(Handle, PChar('您尚未修改图书文件,无法生成电子图书!'), PChar('信息'),
      MB_ICONINFORMATION Or MB_OK);
    Exit;
  End;

  SaveDialog1.FileName:=f_main.TreeView.Items.Item[0].Text;

  ToFileName:='';
  If SaveDialog1.Execute Then //保存文件对话框
    ToFileName:=SaveDialog1.FileName;
  If ToFileName='' Then Exit;

  If f_main.TreeView.Selected<>Nil Then
    f_main.MainText.Lines.SaveToFile(Smulu+'Temp\File\'+f_main.TreeView.Selected.Text+'.bop'); //保存文本
  With f_main.VCLZip1 Do
  Begin
    IncludeHiddenFiles:=True;
    IncludeSysFiles:=false;
    IncludeReadOnlyFiles:=True;
    IncludeArchiveFiles:=True;

    StorePaths:=false;

    RootDir:=Smulu+'Temp\File';
    ZipName:=ToFileName;
    FilesList.Add('*.*');

    Recurse:=True;
  End;
  BtkInfor.SWriter:=E_Writer.Text;
  BtkInfor.SMaker:=E_Me.Text;
  BtkInfor.SInfor:=M_Infor.Text;
  BtkInfor.SRemark:=M_Remark.Text;
  BtkInfor.SLabel:=C_Label.Text;
  BtkInfor.BReadOnly:=True;
  BtkInfor.SFlag:=CFlag;


  If f_main.VCLZip1.Zip>0 Then
  Begin
    If FileExists(ToFileName)=false Then
    Begin
      MessageBox(Handle, PChar(Error_Compress), PChar('信息'),
        MB_ICONINFORMATION Or MB_OK);
      Addlog('Error_Compress');
      Exit;
    End;

    iTargetFile:=FileOpen(ToFileName, fmOpenReadWrite);
    Try
      Try
        FileSeek(iTargetFile, 0, soFromEnd);
        FileWrite(iTargetFile, BtkInfor, SizeOf(BtkInfor));
      Except
        MessageBox(Handle, PChar(Error_Stream), PChar('信息'),
          MB_ICONINFORMATION Or MB_OK);
        Addlog('Error_Stream');
      End
    Finally
      FileClose(iTargetFile)
    End;
    MessageBox(Handle, PChar('电子图书生成成功!'), PChar('成功'),
      MB_ICONINFORMATION Or MB_OK)
  End
  Else
  Begin
    MessageBox(Handle, PChar('电子图书生成失败!'), PChar('失败'),
      MB_ICONINFORMATION Or MB_OK);
    Addlog('Cannot make E-Book');
  End;
End;

Procedure TF_Made.Button3Click(Sender: TObject);
Begin
  F_Pass.ShowModal;
  If F_Pass.Edit1.Text<>'' Then
    BtkInfor.SPass:=F_Pass.Edit1.Text
  Else
    BtkInfor.SPass:='';
End;

Procedure TF_Made.FormCreate(Sender: TObject);
Begin
  BtkInfor.SPass:='';
End;

End.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -