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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? copyto.pas

?? 該程序用D5編譯
?? PAS
字號:
unit CopyTo;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ComCtrls, ExtCtrls, Menus;//,registry;

type
  TCopyToForm = class(TForm)
    CopyToPopupMenu: TPopupMenu;
    N_CP_Begin: TMenuItem;
    N_CP_Del: TMenuItem;
    Panel1: TPanel;
    Panel2: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    Panel3: TPanel;
    Label3: TLabel;
    BtnDirList: TSpeedButton;
    ComboBox1: TComboBox;
    Panel4: TPanel;
    Label4: TLabel;
    BtnCopy: TSpeedButton;
    BtnCancel: TSpeedButton;
    CopyListView: TListView;
    procedure BtnDirListClick(Sender: TObject);
    procedure BtnCancelClick(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
    procedure BtnCopyClick(Sender: TObject);
    //procedure CopyListViewClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Panel3MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Label4MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure CopyToPopupMenuPopup(Sender: TObject);
    procedure N_CP_BeginClick(Sender: TObject);
    procedure N_CP_DelClick(Sender: TObject);
    procedure CopyListViewDblClick(Sender: TObject);
    procedure CopyListViewDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure CopyListViewDragDrop(Sender, Source: TObject; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

TCopyFile = class(TThread)
  public
    Percent    : Integer;
    Done,ToDo  : Integer;
    ListIndex   : integer;
    Start      : TDateTime;
    constructor Create(Src, Dest: String);
  private
    { Private declarations }
    IName,OName : String;
  protected
    procedure Execute; override;
    procedure CopyProgress;
    procedure TotalCopyProgress;
    procedure ShowError;
end;

const
  sc_DragMove:longint=$F012;
  KB1 = 1024;
  MB1 = 1024*KB1;
  GB1 = 1024*MB1;
  // ---------------------------
  del_img_set=[22,24,25];
  copy_img_set=[22,25];
  
var
  CopyToForm: TCopyToForm;
  iCopy:integer;

implementation
uses Main,ShellAPI,FileCtrl,FmxUtils,ShlObj,ActiveX;
{$R *.DFM}

constructor TCopyFile.Create(Src, Dest : String);
begin
  IName := Src;
  OName := Dest;
  Percent := 0;
  Start := Now;
  FreeOnTerminate := True;
  inherited Create(True);
end;

procedure TCopyFile.ShowError;
begin
  CopyToForm.CopyListView.items[ListIndex].ImageIndex :=25;
  ShowMessage('無法讀取源文件'+IName+',此次拷貝將是不完整的,請以后再試。');
end;

procedure TCopyFile.CopyProgress;
begin
  with CopyToForm do
  begin
     //listview1.items[ListIndex].SubItems.BeginUpdate;
     CopyListview.items[ListIndex].SubItems[0]:= inttostr(Percent)+'%';
     if percent>=100 then CopyListview.items[ListIndex].ImageIndex :=24;
     //label4.Caption := '已復(fù)制'+ inttostr(Round((ListIndex+1)/listview1.Items.Count*100))+'%';
     //listview1.items[ListIndex].SubItems.EndUpdate;
  end;
end;

procedure TCopyFile.TotalCopyProgress;
begin
  with CopyToForm do
  begin
     inc(iCopy);
     label4.Caption := '已復(fù)制'+ inttostr(Round((iCopy)/CopyListview.Items.Count*100))+'%';
     caption:='拷貝文件('+label4.Caption+')';
     if iCopy=CopyListview.Items.Count then
     begin
          label4.Caption := '復(fù)制完成。';
          BtnCancel.Caption :='關(guān)閉';
          //speedbutton4.Enabled := false;
          show;
          CopyToForm.WindowState := wsNormal;
          //listview1.items[ListIndex].SubItems.EndUpdate;
     end;
  end;
end;

procedure TCopyFile.Execute;
var
  fi,fo       : TFileStream;
  dod,did     : Integer;
  cnt,max     : Integer;
begin
  Start := Now;
  //try
    { Open existing destination }
    if fileexists(oName) then      //斷點(diǎn)續(xù)傳!
    begin
      try
      fo := TFileStream.Create(OName, fmOpenReadWrite);
      except on EFOpenError do
      begin
             {CopyToForm.CopyListView.items[ListIndex].ImageIndex :=25;
             ShowMessage('無法讀取源文件'+OName+',此次拷貝將是不完整的,請以后再試。'); }
             synchronize(ShowError);
             exit;
      end;
      end;//end of try
      fo.Position:=fo.size;
    end
  //except
    { otherwise Create destination }
    else fo := TFileStream.Create(OName, fmCreate);
  //end;
  try
    { open source }
    try
    fi := TFileStream.Create(IName, fmOpenRead);
    except on EFOpenError do
      begin
             synchronize(ShowError);
             exit;
      end;
    end;//end of try

    try
      { synchronise dest en src }
      cnt:= fo.Position;
      fi.Position := cnt;
      max := fi.Size;
      ToDo := Max-cnt;
      Done := 0;
      did:=0; // zw
      { start copying }
      Repeat
        dod := KB1; // Block size
        if cnt+dod>max then dod := max-cnt;
        try
          if dod>0 then did := fo.CopyFrom(fi, dod);
        except on EReadError do
        begin
             {CopyToForm.CopyListView.items[ListIndex].ImageIndex :=25;
             ShowMessage('無法讀取源文件'+OName+',此次拷貝將是不完整的,請以后再試。');}
             synchronize(ShowError);
             exit;
        end
        end; // end of try
        cnt:=cnt+did;
        Percent := Round(Cnt/Max*100);
        synchronize(CopyProgress);
        Done := Done+did;
        ToDo := Max;
      until (dod=0) or (Terminated);

    finally
      fi.free;
    end;
  finally
    fo.free;
  end;
  synchronize(TotalCopyProgress);
end;

procedure TCopyToForm.BtnDirListClick(Sender: TObject);
var Sc:string;
begin
 Sc := '';
  if SelectDirectory('Select Directory', '', Sc) then
    begin
    ComboBox1.Items.Add(combobox1.text);
    if sc[length(sc)]<>'\' then sc:=sc+'\';
    combobox1.text:=sc;
    end;
end;

procedure TCopyToForm.BtnCancelClick(Sender: TObject);
begin
  Close;
end;

procedure TCopyToForm.ComboBox1Change(Sender: TObject);
begin
  BtnCopy.Enabled := true;
end;

procedure TCopyToForm.BtnCopyClick(Sender: TObject);
var
  CopyThread: TCopyFile;
  i: integer;
  files,fulls: string;
begin
    //listview1.Items.BeginUpdate;
    iCopy:=0;
    caption:='正在復(fù)制...';
    Label4.Caption := '多線程復(fù)制文件......';
    if ComboBox1.Text[length(ComboBox1.Text)] <> '\'
      then ComboBox1.Text := ComboBox1.Text + '\';
    for i:= 1 to CopyListview.Items.Count do
    if (CopyListview.Items[i-1].ImageIndex = 22)or(CopyListview.Items[i-1].ImageIndex = 25) then
    begin
      fulls:= CopyListview.Items[i-1].Caption;
      files:=extractfilename(fulls);
      CopyListview.Items[i-1].ImageIndex := 23;
      CopyThread:=TCopyFile.Create(fulls,ComboBox1.Text+files);
      CopyThread.ListIndex:= i-1;
      CopyThread.Resume;
    end;

end;

{procedure TCopyToForm.CopyListViewClick(Sender: TObject);
begin
end;}

{function GetDesktopDir: string;
var
  Buffer: PChar;
begin
  Result := '';
  GetMem(Buffer, MAX_PATH);
  try
    if ShGetSpecialFolderPath(Application.Handle,Buffer, CSIDL_DESKTOP, False) then
      SetString(Result, Buffer, StrLen(Buffer));
  finally
    FreeMem(Buffer);    
  end;
end; }

function GetDesktopDir: string;
var
  Buffer        : PChar;
  ItemIDList    : PItemIDList;
  ShellMalloc   : IMalloc;
begin
  Result := '';
  if (ShGetMalloc(ShellMalloc) = S_OK) and (ShellMalloc <> nil) then
  begin
    Buffer := ShellMalloc.Alloc(MAX_PATH);
    try
      if SHGetSpecialFolderLocation(Application.Handle, CSIDL_DESKTOP, ItemIDList) = S_OK then
        if SHGetPathFromIDList(ItemIDList,Buffer) then
          SetString(Result, Buffer, StrLen(Buffer));
    finally
      ShellMalloc.Free(Buffer);
    end;
  end;
end;

{function GetDesktopDir: string;
var myreg : tregistry;
begin
  MyReg:=TRegistry.create;
  MyReg.RootKey := HKEY_CURRENT_USER;
  MyReg.OpenKey('Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders',false);
  Result:= MyReg.ReadString('DeskTop');
  MyReg.Free;
end;}


procedure TCopyToForm.FormCreate(Sender: TObject);
begin
  ComboBox1.Text := GetDesktopDir+'\';
  CopyListView.DoubleBuffered := true;
  if bk<>nil then Brush.Bitmap :=  bk;
end;

procedure TCopyToForm.Panel3MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin

 ReleaseCapture;
 SendMessage(handle,wm_SysCommand,sc_DragMove,0);

end;

procedure TCopyToForm.Label4MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin

 ReleaseCapture;
 SendMessage(handle,wm_SysCommand,sc_DragMove,0);

end;

procedure TCopyToForm.CopyToPopupMenuPopup(Sender: TObject);
begin

  if CopyListView.SelCount = 0 then
  begin
    N_CP_Begin.Enabled := false;
    N_CP_Del.Enabled := false;
  end
  else
  begin
    N_CP_Begin.Enabled := true;
    N_CP_Del.Enabled := true;
  end;

end;

procedure TCopyToForm.N_CP_BeginClick(Sender: TObject);
var
  i             : integer;
  fulls,files   : string;
  CopyThread    : TCopyFile;
begin

    for i:= 1 to CopyListview.Items.Count do
    if (CopyListview.Items[i-1].Selected)and(CopyListview.Items[i-1].ImageIndex in copy_img_set) then
    begin
      fulls:= CopyListview.Items[i-1].Caption;
      files:=extractfilename(fulls);
      CopyListview.Items[i-1].ImageIndex := 23;
      CopyThread:=TCopyFile.Create(fulls,ComboBox1.Text+files);
      CopyThread.ListIndex:= i-1;
      CopyThread.Resume;
    end;

end;

procedure TCopyToForm.N_CP_DelClick(Sender: TObject);
var
  i: integer;
begin

    for i:=CopyListview.Items.Count downto 1 do
    if (CopyListview.Items[i-1].Selected)and(CopyListview.Items[i-1].ImageIndex in del_img_set) then
    begin
      CopyListview.Items[i-1].delete;
    end;

end;

procedure TCopyToForm.CopyListViewDblClick(Sender: TObject);
var
  CopyThread    : TCopyFile;
  files,fulls   : string;
begin

  if CopyListview.SelCount <> 0 then
  begin
    caption:='正在復(fù)制...';
    Label4.Caption := '多線程復(fù)制文件......';

    if (CopyListview.selected.ImageIndex in copy_img_set) then
    begin
    fulls:= CopyListview.selected.Caption;
    files:=extractfilename(fulls);
    CopyListview.Selected.ImageIndex := 23;
    CopyThread:=TCopyFile.Create(fulls,ComboBox1.Text+files);
    CopyThread.ListIndex:= CopyListview.Selected.Index;
    CopyThread.Resume;
    end;
  end;

end;

procedure TCopyToForm.CopyListViewDragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
  if Source=MainForm.CurListView then accept :=true;
end;

procedure TCopyToForm.CopyListViewDragDrop(Sender, Source: TObject; X,
  Y: Integer);
var
  CopyItem,TemItem      : TListItem;
  i                     : integer;
begin

  for i:=1 to MainForm.CurListView.Items.Count  do
  if MainForm.CurListView.Items[i-1].Selected then
  begin
    With Source as TListView do TemItem:= MainForm.CurListView.Items[i-1];
    CopyItem:=CopyListView.Items.Add;
    CopyItem.ImageIndex := 22;
    CopyItem.Caption := MainForm.CurDirName+TemItem.Caption;
    CopyItem.SubItems.Add('尚未開始');
  end;

end;

end.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品夜夜爽| 亚洲资源中文字幕| 久久99国产精品免费| 日韩视频在线观看一区二区| 日韩专区中文字幕一区二区| 欧美一区二区精品久久911| 日本美女一区二区| 欧美电视剧免费全集观看| 韩国v欧美v日本v亚洲v| 欧美国产综合一区二区| 99久久综合国产精品| 亚洲黄色性网站| 精品视频999| 久久99精品久久只有精品| 26uuuu精品一区二区| 成人一区二区三区中文字幕| 亚洲色图都市小说| 欧美系列亚洲系列| 蜜桃视频免费观看一区| 欧美精品一区二区三区蜜臀| 岛国一区二区三区| 午夜私人影院久久久久| 国产日韩一级二级三级| 99精品1区2区| 蜜臀av一区二区三区| 中文幕一区二区三区久久蜜桃| 波多野结衣亚洲| 石原莉奈一区二区三区在线观看| 久久综合av免费| 欧洲精品视频在线观看| 久久国产乱子精品免费女| 国产精品国产三级国产| 欧洲视频一区二区| 国产成人免费网站| 亚洲一区二区三区不卡国产欧美| www精品美女久久久tv| 91亚洲国产成人精品一区二区三| 久久精品久久综合| 亚洲色图制服丝袜| 久久久夜色精品亚洲| 欧美性受xxxx黑人xyx| 国产一区欧美日韩| 亚洲成av人片| 综合色天天鬼久久鬼色| 日韩一区二区高清| 在线免费观看日韩欧美| 成人午夜免费av| 美国三级日本三级久久99| 一区二区三区四区在线播放| 国产日韩欧美精品一区| 制服视频三区第一页精品| eeuss鲁片一区二区三区| 麻豆91免费观看| 香蕉成人啪国产精品视频综合网| 国产精品美女久久福利网站 | 粉嫩av一区二区三区| 日韩成人一区二区三区在线观看| 中文字幕视频一区二区三区久| 日韩美女视频在线| 欧美精品久久久久久久久老牛影院| 大桥未久av一区二区三区中文| 久久99热99| 日本不卡高清视频| 午夜国产精品一区| 亚洲成人一区二区在线观看| 亚洲天堂a在线| 国产精品久久久久桃色tv| 久久这里只有精品首页| 日韩午夜激情视频| 精品视频999| 欧美日韩一区二区在线观看| 欧美亚洲免费在线一区| 91电影在线观看| 色婷婷狠狠综合| 色综合咪咪久久| 91麻豆国产在线观看| 色综合久久久久| 91在线观看污| 91首页免费视频| 91麻豆自制传媒国产之光| 成av人片一区二区| 成人免费视频国产在线观看| 成人午夜免费av| 91香蕉视频mp4| 欧美吻胸吃奶大尺度电影 | 日本一区二区成人在线| 国产欧美日韩亚州综合 | 中文字幕在线不卡国产视频| 国产精品麻豆欧美日韩ww| 亚洲国产成人一区二区三区| 中文字幕av一区二区三区高| 成人免费在线观看入口| 一区二区三区中文字幕电影| 午夜精品久久久久| 美女视频一区在线观看| 国产综合久久久久影院| 国产精品 日产精品 欧美精品| 成人午夜电影网站| 日本道在线观看一区二区| 欧美视频在线一区二区三区| 在线播放91灌醉迷j高跟美女| 欧美一区二区啪啪| 国产日韩av一区二区| 中文字幕在线一区免费| 亚洲一区二区高清| 麻豆视频一区二区| 成人精品视频一区二区三区| 日本电影欧美片| 欧美sm美女调教| 国产精品久久午夜| 一区二区久久久久| 麻豆视频一区二区| 91性感美女视频| 欧美大片日本大片免费观看| 国产精品盗摄一区二区三区| 日韩高清不卡一区| 成人一级视频在线观看| 欧美吻胸吃奶大尺度电影| 精品国产成人在线影院 | 婷婷成人激情在线网| 国产精品99久久久久久久女警| 色天使色偷偷av一区二区| 日韩欧美中文一区二区| 国产精品麻豆99久久久久久| 美女一区二区在线观看| av男人天堂一区| 精品福利av导航| 午夜精品福利在线| 99国产一区二区三精品乱码| 2021中文字幕一区亚洲| 亚洲一二三四在线观看| 国产成人精品亚洲日本在线桃色| 欧美午夜精品久久久久久孕妇| 中文一区在线播放| 免费精品视频在线| 91福利在线观看| 国产精品女同互慰在线看| 日本欧美一区二区在线观看| 91在线观看下载| 日本一区二区三区四区| 久久99久久久欧美国产| 欧美欧美欧美欧美| 亚洲免费观看视频| 成人免费黄色在线| 欧美成人欧美edvon| 日韩高清在线观看| 欧美性大战久久久久久久蜜臀| 国产精品国产馆在线真实露脸| 国产精品自拍一区| 欧美一级欧美三级在线观看| 亚洲午夜在线电影| 色成人在线视频| 亚洲天堂免费看| av亚洲产国偷v产偷v自拍| 国产亚洲va综合人人澡精品| 精品一区二区在线播放| 日韩一区二区三| 日本视频一区二区| 91精品国产综合久久久蜜臀图片| 一区二区三区**美女毛片| 色婷婷综合久久久久中文一区二区 | 亚洲va欧美va国产va天堂影院| av电影一区二区| 国产精品第13页| 91一区二区三区在线播放| 国产精品久久网站| 99re热这里只有精品免费视频 | 一区二区中文字幕在线| 成人性色生活片| 最好看的中文字幕久久| av亚洲精华国产精华精| 中文字幕一区二区三区不卡| 成人h动漫精品| 亚洲视频1区2区| 欧美视频一区二区三区在线观看| 一区二区三区在线观看国产| 欧美曰成人黄网| 日本欧美一区二区| 日韩视频在线你懂得| 国内久久精品视频| 久久精品欧美一区二区三区麻豆| 国产黄人亚洲片| 国产精品国产三级国产aⅴ无密码| 色香蕉成人二区免费| 亚洲福利一区二区| 欧美一级欧美三级| 国产乱理伦片在线观看夜一区| 中文字幕五月欧美| 欧美午夜电影网| 激情综合五月天| 中文字幕+乱码+中文字幕一区| 91欧美激情一区二区三区成人| 一区二区免费视频| 欧美岛国在线观看| 成人涩涩免费视频| 亚洲成人免费av| 26uuu国产日韩综合| 色综合天天综合狠狠| 视频一区在线播放| 国产日韩欧美a|