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

📄 unit1.pas

📁 DELPHI的压缩控件,非常实用的第三方控件
💻 PAS
字号:
Unit Unit1;

Interface

Uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ComCtrls, ExtCtrls, ztvZipTV, ztvregister, ztvbase,
  ztvUnZip, Err_Msgs;

Type
  TForm2 = Class(TForm)
    UnZip1: TUnZip;
    ZipTV1: TZipTV;
    Panel2: TPanel;
    Panel3: TPanel;
    RichEdit1: TRichEdit;
    ListBox1: TListBox;
    Panel1: TPanel;
    Edit1: TEdit;
    BitBtn1: TBitBtn;
    Label1: TLabel;
    Panel4: TPanel;
    OpenDialog1: TOpenDialog;
    Procedure BitBtn1Click(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
  Private
    { Private declarations }
  Public
    { Public declarations }
  End;

Var
  Form2: TForm2;

Implementation

{$R *.DFM}


//-------------------------------------------------------------

Procedure TForm2.BitBtn1Click(Sender: TObject);
Var
	TSL: TStrings;
Begin
   OpenDialog1.Options := [ofHideReadOnly, ofFileMustExist, ofPathMustExist];
   OpenDialog1.Filter := LoadStr( F_TZIPTV );
   OpenDialog1.FileName := '*.*';
   OpenDialog1.Title := 'Select archive...';
   If OpenDialog1.Execute() Then
   Begin
      ZipTV1.ArchiveFile := OpenDialog1.FileName;
      UnZip1.ArchiveFile := ZipTV1.ArchiveFile;
      If ZipTV1.IsArcValid( ZipTV1.ArcType ) And UnZip1.IsArcValid( UnZip1.ArcType ) Then
      Begin
         Edit1.Text := OpenDialog1.FileName;
         TSL := TStringList.Create();
         Try
            ZipTV1.FileSpec.Clear();
            ZipTV1.FileSpec.Add('*.*');
            ZipTV1.RecurseDirs := True;
            ZipTV1.FilesInArchive(TSL);
            ListBox1.Items.Assign(TSL);
         Finally
            TSL.Free();
         End;
      End Else
         Edit1.Text := 'Invalid archive...';
   End;
End;
//-------------------------------------------------------------

Procedure TForm2.ListBox1Click(Sender: TObject);
Var
   p: PChar;
	FileSize: Int64;
   FileName: String;
Begin
   RichEdit1.Clear();

   FileName := ListBox1.Items[ListBox1.ItemIndex];
   FileSize := ZipTV1.GetFileUnpackedSize(FileName);

   GetMem(p, FileSize + 1);
   Try
      UnZip1.ExtractToPointer(FileName, p);
      RichEdit1.Lines.Add(StrPas(p));
   Finally
      FreeMem(p, FileSize + 1)
   End;
End;
//-------------------------------------------------------------

End.

⌨️ 快捷键说明

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