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

📄 unit1.pas

📁 ziptv为delphi控件
💻 PAS
字号:
Unit Unit1;

Interface

Uses
   Windows,
   Messages,
   SysUtils,
   Classes,
   Graphics,
   Controls,
   Forms,
   Dialogs,
   StdCtrls,
   ExtCtrls,
   Buttons,
   ComCtrls,
   ztvRegister,
   ztvBase,
   ztvArchiveEditor,
   Err_Msgs;

Type
   TForm1 = Class(TForm)
      ArchiveEditor1: TArchiveEditor;
      OpenDialog1: TOpenDialog;
      ListBox1: TListBox;
      CheckBox1: TCheckBox;
      Panel1: TPanel;
      Panel2: TPanel;
      Panel4: TPanel;
      Button1: TButton;
      Button2: TButton;
      Button3: TButton;
      BitBtn1: TBitBtn;
      Label1: TLabel;
      Label2: TLabel;
      Label3: TLabel;
      Label4: TLabel;
      Edit1: TEdit;
      Edit2: TEdit;
      Edit3: TEdit;
      Edit4: TEdit;
      Button4: TButton;
      Memo1: TMemo;
      Procedure ArchiveEditor1BatchSkipFile(Sender: TObject; OldFileName,
        NewFileName: String; Index: Integer; Var SkipChange: Boolean);
    	Procedure ArchiveEditor1CommitFileName(Sender: TObject; NewFileName:
      	String; Index: Integer);
      Procedure ArchiveEditor1Error(Sender: TObject; FileName, ExtendedMsg,
         VolumeID: String; ECode: Integer);
      Procedure ArchiveEditor1GetCompressedFileName(Sender: TObject; FileName:
      	String);
      Procedure Button1Click(Sender: TObject);
      Procedure Button2Click(Sender: TObject);
      Procedure Button3Click(Sender: TObject);
      Procedure Button4Click(Sender: TObject);
      Procedure BitBtn1Click(Sender: TObject);
      Procedure FormClose(Sender: TObject; Var Action: TCloseAction);
      Procedure Edit2Change(Sender: TObject);
      Procedure Edit1KeyPress(Sender: TObject; Var Key: Char);
   Private
      { Private declarations }
   Public
      { Public declarations }
      CurrentItemIndex: Integer;
      Procedure CommitOrRollback;
      Procedure EnableButtons;
   End;

Var
   Form1: TForm1;

Implementation

Uses
   Unit2;

Const
   BypassClick: Boolean = False;

   {$R *.DFM}



//------------------------------------------------------------
Procedure TForm1.ArchiveEditor1BatchSkipFile(Sender: TObject; OldFileName,
	NewFileName: String; Index: Integer; Var SkipChange: Boolean);
Begin
   ListBox1.Items[Index] := OldFileName + ' -> ' + NewFileName;
End;
//------------------------------------------------------------

Procedure TForm1.ArchiveEditor1CommitFileName(Sender: TObject;
  NewFileName: String; Index: Integer);
Begin
   ListBox1.Items[Index] := NewFileName;
End;
//------------------------------------------------------------

Procedure TForm1.ArchiveEditor1Error(Sender: TObject; FileName, ExtendedMsg,
   VolumeID: String; ECode: Integer);
Var
   ShowStr: String;
Begin
   ShowStr :=
      LowerCase(Sender.Classname) + #13 +
      LowerCase(TZipCommon(Sender).ArchiveFile) + #13 +
      LowerCase(ExtractFilename(FileName)) + #13 +
      IntToStr(ECode) + #13 +
      LoadStr(ECode) + #13 +
      ExtendedMsg;

   ShowMessage(ShowStr);
End;
//------------------------------------------------------------

Procedure TForm1.ArchiveEditor1GetCompressedFileName(Sender: TObject;
   FileName: String);
Begin
   ListBox1.Items.Add(FileName);
End;
//------------------------------------------------------------

Procedure TForm1.Button1Click(Sender: TObject);
Var
   _ItemIndex,
      _TopIndex: Integer;
Begin
   _ItemIndex := ListBox1.ItemIndex;
   _TopIndex := ListBox1.TopIndex;

   ArchiveEditor1.RecurseDirs := CheckBox1.Checked;
   ArchiveEditor1.BatchRenameFiles(Edit2.Text, Edit3.Text, Edit4.Text);
   EnableButtons();

   ListBox1.ItemIndex := _ItemIndex;
   ListBox1.TopIndex := _TopIndex;
End;
//------------------------------------------------------------

Procedure TForm1.Button2Click(Sender: TObject);
Begin
   If ArchiveEditor1.inEditMode And ArchiveEditor1.ArchiveChanged() Then
      If MessageDlg('Commit updates?', mtConfirmation, [mbYes, mbNo], 0) = mrYes Then
      Begin
         ArchiveEditor1.CommitUpdates();
         EnableButtons();
      End;
End;
//------------------------------------------------------------

Procedure TForm1.Button3Click(Sender: TObject);
Var
   c: Char;
Begin
   If ArchiveEditor1.inEditMode Then
      If MessageDlg('Rollback changes?', mtConfirmation, [mbYes, mbNo], 0) = mrYes Then
      Begin
         ArchiveEditor1.RollBack();
         c := #13;
         Edit1KeyPress(Sender, c);      // reload file
      End;
End;
//------------------------------------------------------------

Procedure TForm1.Button4Click(Sender: TObject);
Begin
   frmTestArchive.ShowModal();
End;
//------------------------------------------------------------

Procedure TForm1.FormClose(Sender: TObject; Var Action: TCloseAction);
Begin
   CommitOrRollback();
End;
//------------------------------------------------------------

Procedure TForm1.CommitOrRollback;
Var
   Index: Integer;
Begin
   If ArchiveEditor1.inEditMode Then
   Begin
      Index := ListBox1.TopIndex;

      If ArchiveEditor1.ArchiveChanged() Then
      Begin
         If MessageDlg('Commit updates?', mtConfirmation, [mbYes, mbNo], 0) = mrYes Then
            ArchiveEditor1.CommitUpdates()
         Else
            ArchiveEditor1.RollBack();
      End
      Else
         ArchiveEditor1.RollBack();

      EnableButtons();
      ListBox1.TopIndex := Index;
   End;
End;
//------------------------------------------------------------

Procedure TForm1.EnableButtons;
Begin
   Button1.Enabled := ArchiveEditor1.inEditMode And
   	(Not ArchiveEditor1.ArchiveChanged());

   Button2.Enabled := ArchiveEditor1.ArchiveChanged();
   Button3.Enabled := Button2.Enabled;

   If Button2.Enabled Then
      Button2.Caption := 'Commit Updates'
   Else
      Button2.Caption := 'Unchanged';
End;
//------------------------------------------------------------

Procedure TForm1.BitBtn1Click(Sender: TObject);
Var
   c: Char;
Begin
   CommitOrRollback();
   ListBox1.Clear();

   OpenDialog1.InitialDir := ExtractFileDir(Edit1.Text);
   OpenDialog1.FileName := Edit1.Text;
   OpenDialog1.Filter := LoadStr(F_TZIPTV);
   OpenDialog1.Title := 'Select archive to edit...';
   OpenDialog1.Options := [ofHideReadOnly, ofFileMustExist, ofPathMustExist];
   If OpenDialog1.Execute() Then
   Begin
      Edit1.Text := OpenDialog1.FileName;
      c := #13;
      Edit1KeyPress(Sender, c);         // reload file
   End
   Else
   Begin
      Edit1.Text := '';
      EnableButtons();
   End;

End;
//------------------------------------------------------------

Procedure TForm1.Edit2Change(Sender: TObject);
Begin
   Button1.Enabled := (Edit2.Text <> '') And (Edit3.Text <> '');
End;
//------------------------------------------------------------

Procedure TForm1.Edit1KeyPress(Sender: TObject; Var Key: Char);
// 1. set the ArchiveFile property
// 2. initialize the edit of this archive by calling the StartEdit method
Begin
   If (Key = #13) And FileExists(Edit1.Text) Then
   Begin
      CommitOrRollback();
      ListBox1.Clear();
      ArchiveEditor1.ArchiveFile := Edit1.Text;
   	Button4.Enabled := ArchiveEditor1.IsArcValid(ArchiveEditor1.ArcType);
      If Button4.Enabled Then
      	ArchiveEditor1.StartEdit();
      EnableButtons();
   End;
End;
//------------------------------------------------------------


End.

⌨️ 快捷键说明

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