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

📄 ufrmmain.pas

📁 通过平行文件列表
💻 PAS
字号:
unit UFrmMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, FuncUnit, SUIButton, SUIPageControl, ExtCtrls, SUITabControl,
  StdCtrls, SUIEdit, SUIProgressBar, SUIMemo, SUIScrollBar, SUIListBox,
  SUISkinForm, SUIComboBox, RxGIF;

type
  TFrmMain = class(TForm)
    OpenDlg: TOpenDialog;
    suiPageControl1: TsuiPageControl;
    suiTabSheet1: TsuiTabSheet;
    suiTabSheet2: TsuiTabSheet;
    suiTabSheet3: TsuiTabSheet;
    suiBtnZipDir: TsuiButton;
    suiEdit1: TsuiEdit;
    suiProgressBar1: TsuiProgressBar;
    suiEdit2: TsuiEdit;
    suiButton3: TsuiButton;
    suiButton4: TsuiButton;
    suiEdit5: TsuiEdit;
    suiScrollBar1: TsuiScrollBar;
    Bevel2: TBevel;
    suiMemo1: TsuiMemo;
    suiButton2: TsuiButton;
    suiEdit3: TsuiEdit;
    Bevel1: TBevel;
    suiButton7: TsuiButton;
    suiEdit4: TsuiEdit;
    Bevel3: TBevel;
    suiButton1: TsuiButton;
    suiEdit6: TsuiEdit;
    suiButton8: TsuiButton;
    suiSkinForm1: TsuiSkinForm;
    suiButton5: TsuiButton;
    suiEdit7: TsuiEdit;
    Label1: TLabel;
    Panel1: TPanel;
    suiEdit8: TsuiEdit;
    Label2: TLabel;
    savedlg: TSaveDialog;
    suiComboBox1: TsuiComboBox;
    Label3: TLabel;
    suiEdit9: TsuiEdit;
    Label4: TLabel;
    suiComboBox2: TsuiComboBox;
    Label5: TLabel;
    suiButton6: TsuiButton;
    suiScrollBar2: TsuiScrollBar;
    Panel2: TPanel;
    Image1: TImage;
    procedure suiButton5Click(Sender: TObject);
    procedure suiButton1Click(Sender: TObject);
    procedure suiButton7Click(Sender: TObject);
    procedure suiButton8Click(Sender: TObject);
    procedure Panel1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure suiBtnZipDirClick(Sender: TObject);
    procedure suiButton2Click(Sender: TObject);
    procedure suiButton4Click(Sender: TObject);
    procedure suiButton6Click(Sender: TObject);
    procedure suiButton3Click(Sender: TObject);
  private
    zip: TZipDef;
    procedure ProcessZipEvent(MaxSize, CurSize: Integer; var CancelProcess: Boolean);
  public
    { Public declarations }
  end;

var
  FrmMain: TFrmMain;

implementation
uses UFrmSelDir,UFrmSelFile;
{$R *.dfm}

procedure TFrmMain.suiButton5Click(Sender: TObject);
begin
  Close;
end;

procedure TFrmMain.suiButton1Click(Sender: TObject);
begin
  if OpenDlg.Execute then suiEdit6.Text := OpenDlg.FileName;
end;

procedure TFrmMain.suiButton7Click(Sender: TObject);
var
  Frm: TFrmSelDir;
begin
  Frm := TFrmSelDir.Create(self);
  if Frm.ShowModal = mrOK then suiEdit4.Text := Frm.ShellTreeView1.SelectedFolder.PathName;
end;

procedure TFrmMain.suiButton8Click(Sender: TObject);
var
  b: Boolean;
  ResultInt: Integer;
begin
  Case suiPageControl1.ActivePageIndex of
    2:begin
      if (suiEdit6.Text = '') or (not FileExists(suiEdit6.Text)) then Exit;
      if not DirectoryExists(suiEdit4.Text) then Exit;
      zip := TZipDef.Create;
      try
        Zip.OnProcessZipEvent := ProcessZipEvent;
        ResultInt:= zip.UnZipFiles(Trim(suiEdit6.Text), Trim(suiEdit4.Text),Trim(suiEdit7.Text));
        if ResultInt <> 0 then Showmessage('发生错误' + IntToStr(ResultInt))
        else ShowMessage('完成');
        suiProgressBar1.Position := 0;
      finally
        zip.free;
      end;
    end;
    1:begin
      if (suiEdit5.Text = '') then Exit;
      if suiMemo1.Lines.Count <= 0 then Exit;
      zip := TZipDef.Create;
      try
        Zip.OnProcessZipEvent := ProcessZipEvent;
        b := Trim(suiEdit9.Text) <> '';
        ResultInt:= zip.ZipFiles(suiMemo1.Text,Trim(suiEdit5.Text), b,
            suiComboBox2.ItemIndex + 1, Trim(suiEdit9.Text));
        if ResultInt <> 0 then Showmessage('发生错误' + IntToStr(ResultInt))
        else ShowMessage('完成');
        suiProgressBar1.Position := 0;
      finally
        zip.free;
      end;
    end;
    0:begin
      if (suiEdit3.Text = '') then Exit;
      if not DirectoryExists(suiEdit1.Text) then Exit;
      zip := TZipDef.Create;
      try
        Zip.OnProcessZipEvent := ProcessZipEvent;
        b := Trim(suiEdit8.Text) <> '';
        ResultInt:= zip.ZipDir(Trim(suiEdit1.Text), Trim(suiEdit3.Text), b,
          suiComboBox1.ItemIndex + 1, Trim(suiEdit8.Text));
        if ResultInt <> 0 then Showmessage('发生错误' + IntToStr(ResultInt))
        else ShowMessage('完成');
        suiProgressBar1.Position := 0;
      finally
        zip.free;
      end;
    end;
  end;
end;

procedure TFrmMain.ProcessZipEvent(MaxSize, CurSize: Integer; var CancelProcess: Boolean); 
begin
  suiProgressBar1.Max := MaxSize;
  suiProgressBar1.Position := CurSize;
  Application.ProcessMessages;
end;

procedure TFrmMain.Panel1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbRight then Exit;
  ReleaseCapture;
  self.Perform(WM_SYSCOMMAND, SC_MOVE or 1, 0);
end;

procedure TFrmMain.suiBtnZipDirClick(Sender: TObject);
var
  Frm: TFrmSelDir;
begin
  Frm := TFrmSelDir.Create(self);
  if Frm.ShowModal = mrOK then suiEdit1.Text := Frm.ShellTreeView1.SelectedFolder.PathName;
end;

procedure TFrmMain.suiButton2Click(Sender: TObject);
begin
  if savedlg.Execute then
    if ExtractFileExt(savedlg.FileName) = '' then
      suiEdit3.Text := savedlg.FileName + '.kzp'
    else
      suiEdit3.Text := savedlg.FileName;
end;

procedure TFrmMain.suiButton4Click(Sender: TObject);
begin
  if savedlg.Execute then
    if ExtractFileExt(savedlg.FileName) = '' then
      suiEdit5.Text := savedlg.FileName + '.kzp'
    else
      suiEdit5.Text := savedlg.FileName;
end;

procedure TFrmMain.suiButton6Click(Sender: TObject);
begin
  suiMemo1.Lines.Clear;
end;

procedure TFrmMain.suiButton3Click(Sender: TObject);
var
  Frm: TFrmSelFile;
begin
  Frm := TFrmSelFile.Create(self);
  if Frm.ShowModal = mrOK then
    if not Frm.ShellListView1.SelectedFolder.IsFolder then
     suiMemo1.Lines.Add(Frm.ShellListView1.SelectedFolder.PathName);
end;

end.

⌨️ 快捷键说明

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