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

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

?? compmain.pas

?? 一個delphi下使用的壓縮組件 TCompress Component Set V8
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
(*
  CompDemo for TCompress Component Set

  See Thread-safe code example in CompressFilesViaThread

  You are free to amend, adjust, improve, update, borrow, alter and play
  with this demonstration program at will.

  However, if you redistribute the unregistered TCompress components, please be
  sure to include ALL the files that came with it (incl. Compress.hlp, Readme.txt
  and the ORIGINAL COMPDEMO source).  Thanks.

  Hint: To find the code which makes use of the TCompress components, search
  for Compress1, CDBImage1 and CDBMemo1 references...  At some point, you may
  also want to modify this demo to play with the Key, TargetPath and
  MakeDirectories properties of the TCompress component (all new in V2.5), or
  to experiment with the CompressStreamToArchive method (new in V3.0) of which
  a sample is given in SaveDirectToArchive.

  Enjoy.
*)

unit Compmain;

interface

uses
  SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
  Forms, Dialogs, StdCtrls, DB, DBTables, DBCtrls, ExtCtrls, Buttons, FileCtrl, Mask,
  Compress, CompCtrl
{$IFDEF CLR}
  , System.ComponentModel, System.Threading
{$ENDIF}
  ;


type
  TForm1 = class(TForm)
    Panel2: TPanel;
    Shape1: TShape;
    DBText1: TDBText;
    Image1: TImage;
    Memo1: TMemo;
    Memo2: TMemo;
    DBNavigator1: TDBNavigator;
    CMethod: TRadioGroup;
    GroupBox1: TGroupBox;
    FL: TFileListBox;
    DL: TDirectoryListBox;
    DCB: TDriveComboBox;
    Memo3: TMemo;
    ArchiveGroup: TGroupBox;
    ArchiveLabel: TLabel;
    Label2: TLabel;
    archivefile: TEdit;
    ListBox1: TListBox;
    Memo4: TMemo;
    Fishname: TDBEdit;
    Memo5: TMemo;
    Memo6: TMemo;
    Button1: TButton;
    Panel1: TPanel;
    Bevel1: TBevel;
    Time: TLabel;
    Percentage: TLabel;
    TimeLabel: TLabel;
    Label7: TLabel;
    Trashcan: TImage;
    Button2: TButton;
    CDBImage1: TCDBImage;
    CDBMemo1: TCDBMemo;
    Button3: TButton;
    Table1: TTable;
    Table1SpeciesNo: TFloatField;
    Table1Category: TStringField;
    Table1Common_Name: TStringField;
    Table1SpeciesName: TStringField;
    Table1Lengthcm: TFloatField;
    Table1Length_In: TFloatField;
    CDBImage1Graphic: TCGraphicField;
    CDBMemo1Notes: TCMemoField;
    DataSource1: TDataSource;
    Compress1: TCompress;
    procedure CompressOneFile(var fname: String);
    procedure ResetFileInfo;
    function GetDir: string;
    function GetDummyFilename(generatefrom: string; ext: string): string;
    procedure handleDropField(Source: TObject; archivetoo: Boolean);
    procedure SaveDirectToArchive(Source: TField; filename: string);
    procedure CompressFiles;
    function getCompressionMethod: TCompressionMethod;
    procedure showInfo(comp: TCompress);
    procedure FormCreate(Sender: TObject);
    procedure showfiles;
    procedure ExpandDelete(Operation: TCProcessMode; All: Boolean);
    procedure archivefileChange(Sender: TObject);
    procedure CMethodClick(Sender: TObject);
    procedure DLDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure CDBImage1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure CDBImage1DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure CDBMemo1DragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure CDBMemo1DragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure CDBImage1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure CDBMemo1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure archivefileDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure archivefileDragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure DLDragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure TrashcanDragDrop(Sender, Source: TObject; X, Y: Integer);
    procedure FormDestroy(Sender: TObject);
    procedure ListBox1Click(Sender: TObject);
    procedure Table1AfterPost(DataSet: TDataset);
    procedure Button1Click(Sender: TObject);
    procedure FLClick(Sender: TObject);
    procedure Compress1CheckFile(var filepath: String;
      mode: TCProcessMode);
    procedure Panel1Click(Sender: TObject);
    procedure FormClick(Sender: TObject);
    procedure GroupBox1Click(Sender: TObject);
    procedure TrashcanDragOver(Sender, Source: TObject; X, Y: Integer;
      State: TDragState; var Accept: Boolean);
    procedure Button2Click(Sender: TObject);
    procedure Compress1ShowProgress(var PercentageDone: Longint);
    procedure Button3Click(Sender: TObject);
    procedure disabledragMode;
    procedure enabledragMode;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.NFM}

var FileList: TStringList; { holds information about our archive files }
    saveCompressionMethod: Integer; { see ListBox1.click }

const ShowFileInfoColor :Tcolor = clGray; { see Listbox1.click }

{ Example of accessing the TCompress performance properties }
procedure Tform1.showinfo(comp: TCompress);
begin
   ResetFileInfo;
   Time.caption:=Format('%-5.1fsecs',[Comp.CompressionTime/1000.0]{[f]});
   Percentage.caption:=IntToStr(Comp.CompressedPercentage)+'%';
end;

{ Example of a progress event (new in TCompress 2.0) }
procedure TForm1.Compress1ShowProgress(var PercentageDone: Longint);
begin
   Percentage.caption:=IntToStr(PercentageDone)+'%';
   Application.ProcessMessages;
  { you may have *other* uses for this every-8K-read event...  In fact, in V2.5
    if you set PercentageDone to -1, it will cause compression to end at the
    point reached. If so, delete from the archive the compressed file
    which was created before the abort  }
end;

{ Example of getting a list of files in a multi-file archive }
procedure TForm1.showfiles;
begin
  listbox1.clear;
  Compress1.FreeFileList(FileList); { clear list and free any file information objects in it }
  if not FileExists(archivefile.Text) then exit;
  Compress1.ScanCompressedFile(ArchiveFile.Text,Filelist);
  ListBox1.Items.addStrings(FileList); { and File info objects are
                            there too -- see ListBox1Click and FormDestroy }
end;

{ Example of expanding/deleting one or more files from a multi-file archive }
procedure TForm1.ExpandDelete(Operation: TCProcessMode; All: Boolean);
var s: Tstringlist;
  count: Integer;
begin
  if (All and (Listbox1.Items.count > 0)) or (Listbox1.selcount>0) then { something is... }
  begin
     s:=Tstringlist.create;
     try
        if All then
           s.addStrings(ListBox1.Items)
        else
           for count :=0 to Listbox1.ITems.count-1 do
            if Listbox1.selected[count] then
              s.add(Listbox1.items[count]);
        if Operation=cmExpand then { expand }
          compress1.expandfiles(ArchiveFile.Text,s)
        else
          compress1.deletefiles(ArchiveFile.Text,s);
        showinfo(Compress1);
        showfiles; { also clears selections... }
     finally
        s.free;
        Screen.Cursor := crDefault;
     end;
  end;
end;

{ Example of compressing a SINGLE file into an archive }
procedure TForm1.CompressOneFile(var fname: String);
begin
  disableDragMode;
  try
    Compress1.CompressFile(ArchiveFile.Text,fname,getCompressionMethod);
    showInfo(Compress1);
    showfiles;
  finally
    Screen.Cursor := crDefault;
    enableDragMode;
  end;
  SysUtils.DeleteFile(fname); { because for this example we're creating TEMP files only... }
end;


{ Example of compressing MULTIPLE files into an archive }
{ V4.0: For CompressFiles(only) we're also showing how
  to create a thread (and a new instance of the component) to do the
  addition.
}

procedure CompressFilesViaThread;
var s: Tstringlist;
    Count: Integer;
    tc: TCompress;
begin
  with Form1 do
  if FL.selcount>0 then { something is... }
  begin
    s:=TStringlist.Create;
    try
      disableDragMode;
      for count :=0 to FL.Items.count-1 do
        if FL.selected[count] then
          s.add(FL.items[count]);
       tc := TCompress.create(nil);
       with tc do
       begin
         RegName := Compress1.RegName; { in case you've set these }
         RegNumber := Compress1.RegNumber;
         Key := Compress1.Key;
         OnShowProgress := Compress1.OnShowProgress;
         CompressFiles(ArchiveFile.Text,s,getCompressionMethod);
         showInfo(tc);
         free;
       end;
       showfiles;
    finally;
       s.free;
       Screen.Cursor := crDefault;
       enableDragMode;
    end;
  end;
end;

procedure TForm1.CompressFiles;
var
{$IFDEF CLR}
  aThread: System.Threading.Thread;
{$ELSE}
  threadid: Cardinal;
{$ENDIF}
begin
{$IFDEF CLR}
  aThread := System.Threading.Thread.Create(CompressFilesViaThread);
  aThread.Start;
{$ELSE}
  IsMultiThread := true;
  CreateThread(nil, 8192, @CompressFilesViaThread, nil, 0, threadID);
{$ENDIF}
end;

{ Examples of setting/loading/shifting image blobs }
procedure TForm1.CDBImage1DragDrop(Sender, Source: TObject; X, Y: Integer);
var filepath: String;
    isCenterImage: Boolean;
begin
   if Source=Sender then exit; { nowt to do }
   isCenterImage := (Sender=Image1) or (Sender=Memo1);
   if (Sender is TCDBImage) and (not Table1.active) then
   begin
     showmessage('Can''t do this unless table has been opened...');
     exit;
   end;

  Screen.Cursor:= crHourGlass;
  if (Source = Image1) and (Sender is TCDBImage) then
  begin
     Table1.edit;
     CDBImage1.picture.bitmap.Assign(Image1.Picture.bitmap)
  end
  else if (Source is TCDBImage) and isCenterImage then
     Image1.picture.bitmap.Assign(CDBImage1.Picture.Bitmap)
  else
  begin   { Have we got an image? }
     filepath := '';
     if (Source is TListBox) and (Listbox1.selcount = 1) then
      filepath:=ListBox1.Items[Listbox1.ItemIndex] { archive list }
     else if (Source is TFileListBox) and (FL.selcount=1) then
        filepath:=FL.Items[FL.ItemIndex]; { file list }
     if LowerCase(ExtractFileExt(filepath))<>'.bmp' then
     begin
        MessageBeep(1);
        showmessage('Must be a .BMP file...')
     end else begin                             { ok, here we go... }
        if Source is TListBox then { must first extract file... }
        begin { Note: see ARC2BLOB.PAS and ARC2MEM.PAS for three FASTER ways
                        of going about this (no expanded file needed) }
          try
            Compress1.ExpandFile(filepath,ArchiveFile.Text);
          finally
            Screen.cursor := crDefault; { as our OnCheckFile sets it on }
          end;
          if filepath='' then exit; { was skipped on confirmation }
        end;
        Screen.Cursor:= crHourGlass;
        if isCenterImage then
           Image1.Picture.Bitmap.LoadFromfile(filepath)
        else begin
           Table1.edit;
           CDBImage1.Picture.Bitmap.LoadFromFile(filepath);
        end
     end; { else }
  end;
  if not Image1.Picture.Bitmap.Empty then
  begin
   Memo1.visible := False; { got a piccy showing... }
   image1.visible := True;
  end;
  Screen.Cursor:= crDefault;
end;

{ Examples of setting/loading/shifting CDBMemo blobs }
procedure TForm1.CDBMemo1DragDrop(Sender, Source: TObject; X, Y: Integer);
var filepath: String;
begin
  if Source=Sender then exit; { nowt to do }
  filepath := ''; { in case fails }
  if (Source is TListBox) and (Listbox1.selcount = 1) then
   filepath:=ListBox1.Items[Listbox1.ItemIndex] { archive list }
  else if (Source is TFileListBox) and (FL.selcount=1) then
     filepath:=FL.Items[FL.ItemIndex]; { file list }
  if LowerCase(ExtractFileExt(filepath))<>'.txt' then
  begin
    MessageBeep(1);
    showmessage('Must be a .TXT file...')
  end else begin                             { ok, here we go... }
    if Source is TListBox then { must first extract file... }
    begin { Note: see ARC2BLOB.PAS and ARC2MEM.PAS for three FASTER ways
                       of going about this (no expanded file needed) }
      try
        Compress1.ExpandFile(filepath,ArchiveFile.Text);
      finally
        Screen.cursor := crDefault; { as our OnCheckFile sets it on }
      end;
      if filepath='' then exit; { was skipped on confirmation }
    end;
    Screen.Cursor:= crHourGlass;
    Table1.edit;
    CDBMemo1.Lines.LoadfromFile(filepath)
  end;
  Screen.Cursor:= crDefault;
end;

procedure TForm1.CDBMemo1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  accept := (Source is TFileListBox) or (Source is TListBox) or (Source is TCDBMemo);
end;

procedure TForm1.CDBImage1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  accept := (Source=Image1) or (Source is TCDBImage) or
     (Source is TFileListBox) or (Source is TListBox);
end;

{ Refreshing a CDBImage so it will be compressed (assuming previously uncompressed) }
procedure TForm1.CDBImage1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button=mbRight then { ok, refresh our field }
  begin
     CDBImage1.CopyToClipBoard;
     CDBImage1.PasteFromClipBoard;
     Table1.post;
  end;
end;

procedure TForm1.CDBMemo1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button=mbRight then { ok, refresh our field }
  begin
     CDBMemo1.Lines[0]:=CDBMemo1.Lines[0]; { setting .Modified doesn't do it... }
     Table1.post;
  end;

end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97精品电影院| 欧美一区二区三区啪啪| 欧美精品乱人伦久久久久久| 精品sm在线观看| 亚洲午夜免费视频| 国产精品99久久久久久似苏梦涵| 欧美性猛交xxxxxx富婆| 国产日韩亚洲欧美综合| 日韩精品一级二级 | 粉嫩av一区二区三区粉嫩| 欧美乱妇23p| 有码一区二区三区| 成人va在线观看| 久久久不卡网国产精品一区| 日本一不卡视频| 欧美日韩高清一区二区不卡| 亚洲黄色在线视频| 一本一道综合狠狠老| 欧美高清在线精品一区| 国产一区视频导航| 久久久久久久久岛国免费| 另类调教123区| 欧美变态tickle挠乳网站| 日韩精品久久理论片| 欧美精品在线观看一区二区| 亚洲一区二区三区不卡国产欧美| 91亚洲精品久久久蜜桃网站| 国产精品久久久久久久久快鸭 | 视频一区二区国产| 欧美日韩一区二区三区在线| 亚洲在线观看免费| 欧美性xxxxxxxx| 天天综合色天天综合色h| 欧美午夜片在线看| 亚洲综合激情另类小说区| 欧美吞精做爰啪啪高潮| 日本美女一区二区三区| 日韩免费在线观看| 国产一区二区三区黄视频| 中文字幕+乱码+中文字幕一区| 国产iv一区二区三区| 国产精品短视频| 欧美午夜精品免费| 美女脱光内衣内裤视频久久网站| 91精品国产综合久久香蕉的特点| 欧美a一区二区| 亚洲精品一区二区精华| 成人精品国产免费网站| 一区二区三区精品视频在线| 555夜色666亚洲国产免| 久久er99精品| 欧美国产激情一区二区三区蜜月| 色综合久久综合网欧美综合网| 午夜精品久久久久久不卡8050| 日韩一区二区视频在线观看| 成人免费视频caoporn| 亚洲图片欧美视频| 久久久精品综合| 播五月开心婷婷综合| 视频一区二区中文字幕| 国产色一区二区| 欧美日韩在线一区二区| 国产永久精品大片wwwapp| 亚洲女爱视频在线| 日韩欧美一区二区不卡| 91猫先生在线| 激情小说亚洲一区| 亚洲成精国产精品女| 欧美韩国日本不卡| 色视频欧美一区二区三区| 久久精品av麻豆的观看方式| 国产精品第五页| 日韩丝袜美女视频| 91蝌蚪国产九色| 精品一区二区三区的国产在线播放| 国产精品激情偷乱一区二区∴| 在线播放国产精品二区一二区四区| 韩国三级电影一区二区| 一区二区三区在线播放| 欧美经典一区二区| 欧美一区二区国产| 欧美视频在线一区二区三区| 国产精品一线二线三线| 午夜精品久久久久久久| 中文字幕一区在线| 久久免费偷拍视频| 在线成人高清不卡| 日本黄色一区二区| 大尺度一区二区| 国产一区二区在线影院| 日本系列欧美系列| 五月婷婷欧美视频| 亚洲激情自拍偷拍| 亚洲色图一区二区三区| 久久精品亚洲国产奇米99| 日韩视频免费观看高清完整版在线观看 | 亚洲综合一区二区精品导航| 国产欧美一区二区精品性色超碰 | 国产在线精品一区二区三区不卡 | 国产农村妇女精品| 欧美mv日韩mv| 777亚洲妇女| 欧美日韩国产综合草草| 日本高清视频一区二区| 99久久精品国产导航| 9i看片成人免费高清| 成人午夜视频网站| 国产成人在线视频网站| 国产一区欧美日韩| 国产成人免费视频网站| 国产成人日日夜夜| 国产精品综合视频| 国产毛片精品视频| 国产精品一二三区在线| 国产成人在线影院| 成人动漫一区二区三区| 成人爽a毛片一区二区免费| 国产盗摄一区二区三区| 成人h动漫精品一区二区| 成人av高清在线| 色综合天天综合网天天看片| 色老综合老女人久久久| 欧美日韩一级二级| 日韩视频免费观看高清在线视频| 欧美电影精品一区二区| 国产欧美一区二区精品仙草咪| 国产精品视频在线看| 成人免费在线观看入口| 亚洲一区二区三区四区中文字幕| 亚洲成国产人片在线观看| 精品一区二区精品| av在线播放不卡| 欧洲精品一区二区| 日韩视频免费观看高清完整版在线观看| 精品乱码亚洲一区二区不卡| 国产精品乱码久久久久久| 亚洲黄一区二区三区| 久久99精品国产麻豆婷婷 | 欧美色精品在线视频| 在线不卡a资源高清| 日韩一区二区三区观看| 国产欧美日韩精品a在线观看| 中文字幕视频一区| 日韩成人一区二区| 成人aaaa免费全部观看| 91精品国产综合久久久久久久久久 | 久久se精品一区二区| 99久久婷婷国产综合精品| 欧美日韩一区小说| 久久久久久久综合| 亚洲国产你懂的| 国产麻豆91精品| 欧美视频自拍偷拍| 中文字幕欧美三区| 日本怡春院一区二区| av一区二区三区四区| 欧美一区二区三区在线看| 中文字幕第一页久久| 日本va欧美va精品发布| 成人福利视频在线| 欧美一区二区三区免费大片| 中文字幕一区二区三中文字幕| 蜜桃视频一区二区三区在线观看| 99精品欧美一区二区蜜桃免费| 91精品国产黑色紧身裤美女| 亚洲欧美日韩久久| 粉嫩一区二区三区在线看| 欧美大胆人体bbbb| 亚洲香肠在线观看| 播五月开心婷婷综合| 国产日韩一级二级三级| 日本美女一区二区| 欧美色爱综合网| 最好看的中文字幕久久| 国产一区二区不卡在线| 91精品在线观看入口| 亚洲一区二区三区四区的| av在线不卡网| 久久久久青草大香线综合精品| 免费观看在线综合色| 欧美日韩中文国产| 亚洲在线视频网站| 色香蕉久久蜜桃| 1000精品久久久久久久久| 国产成人精品一区二区三区网站观看| 日韩亚洲欧美一区二区三区| 亚洲 欧美综合在线网络| 91久久精品一区二区| 综合久久久久综合| 99国产精品视频免费观看| 一区在线播放视频| av一区二区三区黑人| 国产精品不卡在线| 成人性视频网站| 国产精品乱人伦中文| 99久久精品国产一区二区三区 | 26uuu成人网一区二区三区| 精品一区二区免费在线观看| 精品国产91洋老外米糕| 久久99日本精品|