亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? frmprincipal.pas

?? A backupper program that make your codes safty
?? PAS
字號:
unit FrmPrincipal;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, GIFImage, ExtCtrls, ComCtrls, Buttons, ZLibComperssion,
  TZip, AbMeter, AbBase, AbBrowse, AbZBrows, AbZipper;

type
  TfrmMain = class(TForm)
    Label1: TLabel;
    edtFuente: TEdit;
    btnFuente: TButton;
    Label3: TLabel;
    btnBackup: TButton;
    btnCerrar: TButton;
    Image1: TImage;
    Label2: TLabel;
    edtDestino: TEdit;
    btnDestino: TButton;
    Label4: TLabel;
    mComment: TMemo;
    tvwFiles: TTreeView;
    btnVerFuente: TBitBtn;
    btnVerDestino: TBitBtn;
    Label5: TLabel;
    GroupBox1: TGroupBox;
    AbZipper1: TAbZipper;
    chkCompress: TCheckBox;
    AbMeterAllProgress: TAbMeter;
    AbMeterFileProgress: TAbMeter;
    meterAllProgress: TAbVCLMeterLink;
    meterFileProgress: TAbVCLMeterLink;
    lblFile: TLabel;
    lblItem: TLabel;
    procedure btnCerrarClick(Sender: TObject);
    procedure btnBackupClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure btnFuenteClick(Sender: TObject);
    procedure tvwFilesDeletion(Sender: TObject; Node: TTreeNode);
    procedure tvwFilesExpanding(Sender: TObject; Node: TTreeNode;
      var AllowExpansion: Boolean);
    procedure tvwFilesGetImageIndex(Sender: TObject; Node: TTreeNode);
    procedure tvwFilesGetSelectedIndex(Sender: TObject; Node: TTreeNode);
    procedure btnDestinoClick(Sender: TObject);
    procedure btnVerFuenteClick(Sender: TObject);
    procedure btnVerDestinoClick(Sender: TObject);
    procedure tvwFilesDblClick(Sender: TObject);
    procedure chkCompressClick(Sender: TObject);
    procedure Label5Click(Sender: TObject);
  private
    { Private declarations }
    sourceFolderPath : String;
    targetFolderPath: String;
    name : string;
    compress: Boolean;
    listaFicheros : TStringList;

    function GetLocalT: String;
    function CambiaEn(Cadena, Esto, Por: String): String;
    function CopiaTodo(Origen,Destino : String) : LongInt;

    procedure ReadFiles(Node: TTreeNode; Folder: String);
    procedure GetSystemImages;
    procedure FindFiles(StartDir, FileMask: string; recursively: boolean; var FilesList: TStringList);
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.dfm}

uses StrUtils, ShlObj, ShellApi, IniFiles, CommCtrl, FileCtrl, ZLib, FrmWait;

procedure TfrmMain.btnCerrarClick(Sender: TObject);
var
  i :  integer;
begin
  self.Close;
end;

function TfrmMain.GetLocalT: String;
var 
   stSystemTime : TSystemTime;
   temp : string;
   dd,mm,aa, hh: string;
begin
   Windows.GetLocalTime( stSystemTime );

   temp := DateTimeToStr( SystemTimeToDateTime( stSystemTime ) );
   dd := Copy(temp, 1, 2);
   mm := Copy(temp, 4, 2);
   aa := Copy(temp, 7, 4);
   hh := Copy(temp, 12, Length(temp) - 11);
   Result := aa + '.' + mm + '.' + dd + ' - ' + hh;
   Result := CambiaEn(Result,':','.');
end;

function TfrmMain.CambiaEn(Cadena, Esto, Por: String): String;
var
  aPos: Integer;
begin
    aPos := Pos(Esto, Cadena);
    Result:= '';
    while (aPos <> 0) do begin
      Result := Result + Copy(Cadena, 1, aPos-1) + Por;
      Delete(Cadena, 1, aPos + Length(Esto)-1);
      aPos := Pos(Esto, Cadena);
    end;
    Result := Result+Cadena;
end;

function TfrmMain.CopiaTodo(Origen, Destino: String): LongInt;
var
  SHFileOpStruct : TSHFileOpStruct;
begin
  if FileExists(Origen) = false then
  begin
    FillChar(SHFileOpStruct,SizeOf(TSHFileOpStruct),#0);
    with SHFileOpStruct do
    begin
      Wnd:=Application.Handle;
      wFunc:=FO_COPY;
      fFlags:=FOF_ALLOWUNDO;
      hNameMappings:=nil;
      pFrom:=PChar(Origen+#0+#0);
      pTo:=PChar(Destino+#0+#0);
    end;
  ShFileOperation(SHFileOpStruct);
 end;
end;

procedure TfrmMain.btnBackupClick(Sender: TObject);
var
 Ini: TIniFile;
 i : integer;
 listaFiles : TStringList;
 origDir: string;
begin
  Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
  try
    Ini.WriteString( 'Data', 'Source', edtFuente.Text);
    Ini.WriteString( 'Data', 'Target', edtDestino.Text);
  finally
    Ini.Free;
  end;

  sourceFolderPath := edtFuente.Text;
  targetFolderPath := edtDestino.Text;
  if (compress = false) then
  begin
    CopiaTodo(sourceFolderPath, targetFolderPath);
  end
    else
  begin
    //listaFiles := TStringList.Create();
    origDir :=  sourceFolderPath;
    Delete(origDir,Length(origDir) - 2,3);
    //self.FindFiles(origDir,'*.*',true,listaFiles);
    AbZipper1.FileName := targetFolderPath + '.zip';
    AbZipper1.BaseDirectory := origDir;
    AbZipper1.AddFiles('*.*',0);
    AbZipper1.Save;
  end;
  if ((mComment.Lines.Count > 0) and (Self.compress = false))then
  begin
    mComment.Lines.SaveToFile(targetFolderPath + '\Leeme.txt');
  end;
  MessageDlg('Los ficheros y carpetas de: ' + sourceFolderPath + ' se han copiado satisfactoriamente para: ' + targetFolderPath,mtInformation,[mbOK],1);
end;

procedure TfrmMain.FormCreate(Sender: TObject);
var
  Ini: TIniFile;
begin
  AbMeterAllProgress.Visible := false;
  AbMeterFileProgress.Visible := false;
  Self.listaFicheros := TStringList.Create();
  GetSystemImages();

  Ini := TIniFile.Create( ChangeFileExt( Application.ExeName, '.INI' ) );
  try
    edtFuente.Text  := Ini.ReadString( 'Data', 'Source', '');
    edtDestino.Text := Ini.ReadString( 'Data', 'Target', '' );
    sourceFolderPath := edtFuente.Text;
    edtFuente.Text := self.sourceFolderPath;
    compress := false;
    chkCompress.Checked := compress;

    ReadFiles(nil,LeftStr(edtFuente.Text,Length(edtFuente.Text)-3));
  finally
    Ini.Free;
  end;
end;

procedure TfrmMain.btnFuenteClick(Sender: TObject);
begin
  if SelectDirectory('Seleccionar carpeta Fuente', '', sourceFolderPath) then
  begin
    tvwFiles.Items.Clear;
  	ReadFiles(nil, IncludeTrailingPathDelimiter(sourceFolderPath));
    edtFuente.Text := sourceFolderPath + '\*.*';
  end;
end;

procedure TfrmMain.ReadFiles(Node: TTreeNode; Folder: String);
var
  SearchRec: TSearchRec;
  Child: TTreeNode;
  Data: PChar;

begin
  if FindFirst(Folder + '*.*', faAnyFile, SearchRec) = 0 then
  begin
    tvwFiles.Items.BeginUpdate;
    repeat
      if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') then
      begin
        Child := tvwFiles.Items.AddChild(Node, SearchRec.Name);
        listaFicheros.Add(child.Text);
        // si es un directorio, guardamos la ruta completa en Data
        if SearchRec.Attr and faDirectory = faDirectory then
        begin
          GetMem(Data, Length(Folder + SearchRec.Name + '\') + 1);
          StrPCopy(Data, Folder + SearchRec.Name + '\');

          Child.Data := Data;
          Child.HasChildren := true;
        end;
      end;
    until FindNext(SearchRec) <> 0;

    tvwFiles.Items.EndUpdate;
  end;
end;

procedure TfrmMain.tvwFilesDeletion(Sender: TObject; Node: TTreeNode);
begin
  if Assigned(Node.Data) then
    FreeMem(Node.Data);
end;

procedure TfrmMain.tvwFilesExpanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
begin
if Node.Count = 0 then
  begin
    ReadFiles(Node, PChar(Node.Data));
    Node.HasChildren := Node.Count <> 0;
  end;
end;

procedure TfrmMain.tvwFilesGetImageIndex(Sender: TObject; Node: TTreeNode);
const
  shgfiFlags = SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES;

var
  ShFileInfo: TShFileInfo;

begin
  if Assigned(Node.Data) then
    ShGetFileInfo('', faDirectory, ShFileInfo, SizeOf(ShFileInfo), shgfiFlags)
  else
    ShGetFileInfo(PChar(Node.Text), 0, ShFileInfo, SizeOf(ShFileInfo), shgfiFlags);

  Node.ImageIndex := ShFileInfo.iIcon;
end;

procedure TfrmMain.tvwFilesGetSelectedIndex(Sender: TObject;
  Node: TTreeNode);
const
  shgfiFlags = SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES or SHGFI_OPENICON;

var
  ShFileInfo: TShFileInfo;

begin
  if Assigned(Node.Data) then
    ShGetFileInfo('', faDirectory, ShFileInfo, SizeOf(ShFileInfo), shgfiFlags)
  else
    ShGetFileInfo(PChar(Node.Text), 0, ShFileInfo, SizeOf(ShFileInfo), shgfiFlags);

  Node.SelectedIndex := ShFileInfo.iIcon;
end;

procedure TfrmMain.GetSystemImages;
const
  shgfiFlags = SHGFI_SYSICONINDEX or SHGFI_SMALLICON;

var
  ShFileInfo: TShFileInfo;
  iSmall: Cardinal;

begin
  iSmall := ShGetFileInfo('', 0, ShFileInfo, SizeOf(ShFileInfo), shgfiFlags);
  TreeView_SetImageList(tvwFiles.Handle, iSmall, LVSIL_NORMAL);
end;

procedure TfrmMain.btnDestinoClick(Sender: TObject);
begin
  if SelectDirectory('Seleccionar carpeta Destino', '', targetFolderPath) then
  begin
    edtDestino.Text := targetFolderPath + '\' + GetLocalT;
  end;
end;

procedure TfrmMain.btnVerFuenteClick(Sender: TObject);
begin
  ShellExecute(0, 'explore', nil, nil, PChar(edtFuente.Text), SW_SHOW);
end;

procedure TfrmMain.btnVerDestinoClick(Sender: TObject);
begin
  ShellExecute(0, 'explore', nil, nil, PChar(edtDestino.Text), SW_SHOW);
end;

procedure TfrmMain.tvwFilesDblClick(Sender: TObject);
var
 dir : string;
begin
  dir := LeftStr(sourceFolderPath,length(sourceFolderPath) - 3) + tvwFiles.Selected.Text;
  ShellExecute(Handle,'Open',PChar(dir),nil,nil,SW_SHOW);
end;

procedure TfrmMain.chkCompressClick(Sender: TObject);
begin
  compress := chkCompress.Checked;
  if (compress = true ) then
  begin
    AbMeterAllProgress.Visible := true;
    AbMeterFileProgress.Visible := true;
    lblItem.Visible := true;
    lblFile.Visible := true;
  end
  else
  begin
    AbMeterAllProgress.Visible := false;
    AbMeterFileProgress.Visible := false;
    lblItem.Visible := false;
    lblFile.Visible := false;
  end;
end;

procedure TfrmMain.FindFiles(StartDir, FileMask: string; recursively: boolean; var FilesList: TStringList);
  const
    MASK_ALL_FILES = '*.*';
    CHAR_POINT = '.';
  var
    SR: TSearchRec;
    DirList: TStringList;
    IsFound: Boolean;
    i: integer;
  begin
    if (StartDir[length(StartDir)] <> '\') then begin
      StartDir := StartDir + '\';
    end;

    // Crear la lista de ficheos en el directorio StartDir (no directorios!)
    IsFound := FindFirst(StartDir + FileMask, faAnyFile - faDirectory, SR) = 0;
    // MIentras encuentre
    while IsFound do  begin
      FilesList.Add(StartDir + SR.Name);
      IsFound := FindNext(SR) = 0;
    end;
  
    FindClose(SR);
  
    // Recursivo?
    if (recursively) then begin
      // Build a list of subdirectories
      DirList := TStringList.Create;
      // proteccion
      try
        IsFound := FindFirst(StartDir + MASK_ALL_FILES, faAnyFile, SR) = 0;
        while IsFound do
        begin
          if ((SR.Attr and faDirectory) <> 0) and
            (SR.Name[1] <> CHAR_POINT) then
            DirList.Add(StartDir + SR.Name);
          IsFound := FindNext(SR) = 0;
        end;
        FindClose(SR);
  
        // Scan the list of subdirectories
        for i := 0 to DirList.Count - 1 do
          FindFiles(DirList[i], FileMask, recursively, FilesList);
      finally
        DirList.Free;
      end;
    end;
  end;


procedure TfrmMain.Label5Click(Sender: TObject);
begin
  ShowMessage('Credo por Lazaro Bustio - lbustio@yahoo.es');
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级视频在线| 国产视频一区二区在线观看| 91精品国产综合久久精品| 久久久久久久久岛国免费| 亚洲女性喷水在线观看一区| 午夜不卡av在线| 91浏览器在线视频| 精品日韩一区二区| 亚洲综合丁香婷婷六月香| 国产不卡在线一区| 日韩免费成人网| 午夜精品一区二区三区电影天堂 | 777亚洲妇女| 日韩一区有码在线| 狠狠色狠狠色综合日日91app| 色婷婷av久久久久久久| 国产欧美一区二区三区在线看蜜臀| 一区二区三区四区蜜桃| 不卡视频一二三四| 国产调教视频一区| 国产一区激情在线| 日韩一区二区在线看片| 午夜久久久久久久久久一区二区| 91色综合久久久久婷婷| 国产日韩欧美一区二区三区乱码| 玖玖九九国产精品| 在线成人av影院| 亚洲成人av福利| 欧美唯美清纯偷拍| 天天av天天翘天天综合网| 91黄色小视频| 亚洲高清在线视频| 欧美日韩日日夜夜| 亚洲成av人**亚洲成av**| 欧美视频在线一区| 亚洲第四色夜色| 欧美日韩免费电影| 日本欧美一区二区| 日韩天堂在线观看| 久久av老司机精品网站导航| 在线综合+亚洲+欧美中文字幕| 一区二区三区不卡在线观看| 91麻豆高清视频| 亚洲国产精品一区二区久久恐怖片| 色狠狠色狠狠综合| 亚洲不卡av一区二区三区| 欧美日韩精品三区| 免费的国产精品| 26uuu色噜噜精品一区二区| 久久国产麻豆精品| 国产精品无人区| 91丝袜美腿高跟国产极品老师| 日韩av一区二区在线影视| 欧美日韩精品一区二区三区 | 日本一区免费视频| 99在线精品免费| 亚洲精品乱码久久久久久久久| 日本韩国一区二区| 日韩av电影一区| 国产日韩欧美一区二区三区乱码| 成人av在线网站| 亚洲午夜久久久久久久久久久| 欧美日韩精品系列| 极品美女销魂一区二区三区 | 欧美一区二区视频在线观看2020 | 国产在线播放一区三区四| 中文字幕av不卡| 欧美亚洲国产一区在线观看网站 | 精品一二线国产| 欧美激情一区二区三区全黄| 91黄色小视频| 国产一区二区影院| 一区二区三区在线视频免费| 日韩你懂的在线播放| av高清久久久| 美女在线观看视频一区二区| 国产精品国产a| 欧美精品日韩一区| 91在线观看美女| 久久精品久久精品| 亚洲精选视频在线| 久久久久免费观看| 26uuu国产在线精品一区二区| 日本福利一区二区| 国产精品中文有码| 日韩精品欧美精品| 亚洲裸体xxx| 久久精品人人做| 欧美日韩三级视频| 日本大香伊一区二区三区| 国产精品一区一区三区| 亚洲最新视频在线播放| 国产人妖乱国产精品人妖| 日韩一区二区三区在线| 在线一区二区三区四区五区| 国产成人免费xxxxxxxx| 麻豆91免费看| 日韩国产一区二| 亚洲一二三区不卡| 亚洲免费电影在线| 国产精品人人做人人爽人人添| 精品日韩99亚洲| 欧美一区二区三区色| 欧美天堂一区二区三区| 成人福利视频网站| 高清国产一区二区| 国产裸体歌舞团一区二区| 日本中文在线一区| 日韩福利视频导航| 午夜精品久久久久影视| 亚洲综合在线电影| 亚洲精品欧美激情| 亚洲少妇30p| 亚洲天堂av老司机| 亚洲日本一区二区三区| 亚洲欧洲日产国码二区| 国产精品成人一区二区三区夜夜夜| 久久久国产精品麻豆| 久久久99精品免费观看| 久久亚区不卡日本| 国产午夜精品美女毛片视频| 久久久久久久久久久久电影 | 91国产丝袜在线播放| 成人午夜激情视频| 成人在线视频一区| 99精品视频在线免费观看| 91视频观看视频| 欧美伊人久久大香线蕉综合69| 在线日韩一区二区| 91精品在线麻豆| 日韩精品中文字幕在线不卡尤物 | 日韩激情视频在线观看| 日韩精品一二三四| 精品一区二区三区视频| 国产精品自在在线| av电影在线观看完整版一区二区| 99久久婷婷国产综合精品电影 | 日韩av电影天堂| 久久99久久99| 成人免费av网站| 欧美综合亚洲图片综合区| 91精品国产欧美一区二区成人| 日韩一级精品视频在线观看| 亚洲精品在线免费播放| 国产精品情趣视频| 亚洲国产精品尤物yw在线观看| 美女精品一区二区| www.激情成人| 69av一区二区三区| 国产亚洲成aⅴ人片在线观看| 亚洲美女屁股眼交3| 免费av网站大全久久| 成人免费毛片高清视频| 欧美午夜理伦三级在线观看| 精品国产不卡一区二区三区| 国产精品成人免费| 看电影不卡的网站| 色综合色综合色综合色综合色综合 | 日韩主播视频在线| 国产乱码精品一区二区三区忘忧草| 99re6这里只有精品视频在线观看| 欧美日韩成人激情| 中文子幕无线码一区tr| 亚洲国产日韩综合久久精品| 国产一区91精品张津瑜| 欧美视频在线观看一区二区| 国产亚洲美州欧州综合国| 亚洲国产精品一区二区久久| 国产精品538一区二区在线| 欧美三级日韩三级国产三级| 国产偷国产偷亚洲高清人白洁 | 欧美三级在线播放| 国产欧美久久久精品影院| 视频一区二区三区入口| 99国产精品久久久久| 久久嫩草精品久久久久| 日韩成人伦理电影在线观看| 91浏览器打开| 亚洲国产高清aⅴ视频| 看片的网站亚洲| 91麻豆精品国产91久久久更新时间 | 亚洲综合一区二区三区| 成人综合激情网| 久久婷婷国产综合精品青草| 日韩国产欧美在线视频| 91官网在线免费观看| 国产精品传媒视频| 国产精品一线二线三线精华| 日韩视频免费直播| 亚洲妇熟xx妇色黄| 91精品1区2区| 亚洲精品国产无套在线观| av在线综合网| 国产精品久久久久久久蜜臀| 国产成人啪午夜精品网站男同| 欧美大度的电影原声| 麻豆精品在线观看| 欧美v亚洲v综合ⅴ国产v| 日韩激情一区二区| 欧美一区二区三区免费观看视频|