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

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

?? arc2blob.pas

?? TCompress Component Set For Delphi Kylix BCB v9.0
?? PAS
字號:
(*  ARC2BLOB.PAS for TCompress V3.0 (no change from V2.5 except para 4 in comments)

This code is designed to be dropped into the COMPDEMO application, adding
one new routine (LoadArchivedFileToBlobStream) and replacing one existing one
(CDBImage1DragDrop).

It shows what is probably the most efficient way to load compressed data from
a file archive to a blob field, without using an intermediate file as
COMPDEMO currently does.

Keep in mind that both this and the ARC2MEM code require manipulation of some
of the TCompress data structures... Unlike ARC2MEM, this approach doesn't
require a large memory buffer (because no expansion step), but does require
more knowledge of the TCompress data structures.

*** In TCompress 3.0, an alternative (and far easier) approach would be to use
the new ExpandStreamFromArchive routine. Because this would be writing
*expanded* data to the blob (which hence must be recompressed for storage),
two important points would apply if you used it:
1. It would not be as efficient as this routine, which copies the data in
   compressed form
2. You must pass a TCBlobstream to the above method, NOT the TBlobstream which
   this routine uses.
ExpandStreamFromArchive would be ideal, however, if you were loading a regular
field or Delphi stream-based object from an archive (e.g. a TDBImage)
*)

{ Example of Expanding a file DIRECTLY from an archive to a COMPRESSED field's blobstream.
  Important note: we are NOT expanding the data at all, thus we are actually bypassing
  all the expansion/compression stuff and writing directly to the underlying database }
procedure TForm1.LoadArchivedFileToBlobStream(bs:TBlobstream;filepath:String);
var fs: TFilestream;
    cfinfo: TCompressedFileInfo;
    fHeader: TCompressedFileHeader; { file header so we can get compression mode }
    aheader: TCompressHeader;       { archive header required for Blobstream     }
    cmode: string;
begin
  cfinfo := TCompressedFileInfo(FileList.objects[FileList.indexof(filepath)]);
  fs:=TFileStream.Create(archivefile.text,fmOpenRead or fmShareExclusive); { just want to READ it... }
  try
     fs.read(aheader,sizeof(aheader));  { quick way to initialize archive header }
     fs.seek(cfinfo.Position,0);        { start of FILE header within archive }
     fs.read(fheader, sizeof(fheader)); { let's have it }
     fs.seek(fheader.FilenameLength,1); { skip the filename which is stored next }

     { Now the tricky part -- we need to store a valid 3-char compression ID
       in our archive header -- here's the best approach: }

     if fheader.compressedmode<>coNone then { coNone won't GET a header... }
     begin
       case fheader.compressedmode of
          coLZH: cmode := 'LZH';
          coRLE: cmode := 'RLE';
          coCustom: cmode := 'CUS'; { CHANGE this if you use a different ID! }
       end;
       with aheader do  { ComID is already set by the read we did }
       begin
          Fullsize:=fheader.FullSize;
          ArchiveType:=caSingle;
          CheckSum := fheader.checksum;
          Move(cmode[1],ComMethodID,sizeof(ComMethodID)); { get precisely the bytes we want... }
       end;
       bs.write(aheader,sizeof(aheader)); { set up the header }
     end;
     bs.copyFrom(fs,Fheader.compressedsize); { now get the raw (compressed) data! }
     bs.truncate; { in case it started out larger... }
  finally
     fs.free
  end;
end;

{ Examples of setting/loading/shifting image blobs using the above routine }
procedure TForm1.CDBImage1DragDrop(Sender, Source: TObject; X, Y: Integer);
var filepath: String;
     cbs: TCBlobStream; { for loading image from an archived file }
begin
   if Source=Sender then exit; { nowt to do }
   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 is TImage) and (Sender is TCDBImage) then
     CDBImage1.picture.bitmap.Assign(Image1.Picture.bitmap)
  else if (Source is TCDBImage) and (Sender is TImage) 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 ExtractFileExt(filepath)<>'.bmp' then
        showmessage('Must be a .BMP file...')
     else                                     { ok, here we go... }
     if Source is TFileListBox then { just load from file... }
       if Sender is TImage then
          Image1.Picture.Bitmap.LoadFromfile(filepath)
       else
          CDBImage1.Picture.Bitmap.LoadFromFile(filepath)
     else { source must be our archive file... }
     begin
       if Sender is TImage then
           { Fastest way is using LoadArchivedFileToMemory approach per ARC2MEM.PAS }
       else
       begin { here is where we use our direct access routine... }
         cbs:=TCBlobStream.Create(CDBImage1.CField,bmWrite);      { we ARE going to update but... }
         try
           LoadArchivedFileToBlobstream(cbs.Blobstream,filepath); { NOT via expansion/compression }
         finally  { See the HELP notes on the Blobstream property for caveats }
           cbs.free
         end;
       end
     end;
  end;
  if Table1.active and Table1.Modified then Table1.post; { save immediately if updated }
  if not Image1.Picture.Bitmap.Empty then Memo1.visible := False; { got a piccy showing... }
  Screen.Cursor := crDefault;
end;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合激情五月| 国产一区在线看| 国产清纯白嫩初高生在线观看91 | 国产伦精品一区二区三区免费| 欧美一区二区三区色| 美女精品自拍一二三四| 2欧美一区二区三区在线观看视频| 国产剧情一区在线| 国产精品麻豆欧美日韩ww| 在线看日韩精品电影| 琪琪久久久久日韩精品| 欧美精品一区二区精品网| 国产成人av电影在线| 亚洲日本一区二区三区| 欧美欧美午夜aⅴ在线观看| 免费人成精品欧美精品| 国产精品午夜在线观看| 欧美亚洲图片小说| 久久国产精品区| 亚洲欧美偷拍卡通变态| 欧美一二三区精品| 粉嫩av亚洲一区二区图片| 亚洲综合免费观看高清完整版| 欧美一区二区视频观看视频| 国产白丝网站精品污在线入口| 亚洲男人的天堂在线aⅴ视频| 日韩一区二区电影| 97精品电影院| 久久精品国产网站| 一区二区免费视频| 久久久精品国产免费观看同学| 91久久精品国产91性色tv| 国产一区二区在线观看视频| 亚洲女同ⅹxx女同tv| 精品国产乱码久久久久久浪潮| 91香蕉视频污| 国产麻豆欧美日韩一区| 亚洲成人免费观看| 国产精品乱码人人做人人爱| 日韩一级在线观看| 97aⅴ精品视频一二三区| 韩国女主播一区| 天天综合网 天天综合色| 国产精品久久久久久久久免费桃花 | 成人av在线观| 美国毛片一区二区| 亚洲国产成人91porn| 成人欧美一区二区三区黑人麻豆| 日韩一区二区在线免费观看| 欧美午夜在线观看| 成人午夜免费av| 狠狠狠色丁香婷婷综合久久五月| 亚洲1区2区3区4区| 一区二区三区在线看| 国产精品嫩草99a| 久久久久9999亚洲精品| 日韩午夜激情av| 91精品午夜视频| 色88888久久久久久影院按摩 | 欧美三级视频在线观看| 成人高清av在线| 成人免费视频播放| 国产精品一区二区91| 蜜臀久久99精品久久久久宅男| 午夜久久电影网| 亚洲国产综合人成综合网站| 亚洲免费av网站| 亚洲乱码精品一二三四区日韩在线| 国产欧美va欧美不卡在线| 国产婷婷色一区二区三区四区| 欧美成人女星排行榜| 欧美成人综合网站| 精品国产一区二区精华| 日韩欧美精品在线视频| 日韩免费看网站| 精品少妇一区二区三区免费观看| 7777精品伊人久久久大香线蕉| 欧美日韩一区三区| 欧美久久久久久蜜桃| 777亚洲妇女| 欧美电影免费观看高清完整版在线观看| 欧美嫩在线观看| 欧美一区午夜精品| 欧美成人精品高清在线播放| 久久亚洲精品小早川怜子| 久久久国产一区二区三区四区小说| 久久九九久久九九| 成人欧美一区二区三区视频网页| 亚洲免费在线视频| 亚洲成人av资源| 美女视频黄a大片欧美| 国产精品香蕉一区二区三区| 成人福利视频在线| 欧美午夜一区二区三区| 69堂国产成人免费视频| 精品久久五月天| 国产精品人人做人人爽人人添| 亚洲色图另类专区| 天天综合网 天天综合色| 韩日欧美一区二区三区| av在线播放不卡| 欧美日韩国产a| 日韩视频免费观看高清完整版在线观看| 精品三级在线看| 国产精品成人一区二区艾草 | 日本二三区不卡| 欧美日韩第一区日日骚| 久久综合久久综合九色| 中文字幕av一区二区三区高| 亚洲午夜一二三区视频| 久久激情综合网| 99国产精品久久久久久久久久| 欧美亚洲一区二区在线| 精品久久久久久最新网址| 亚洲乱码中文字幕| 国产一区999| 欧美精品一二三| 国产欧美一区视频| 日韩不卡一二三区| 91免费版在线| 久久日一线二线三线suv| 亚洲视频在线一区二区| 久久精品国产精品亚洲综合| 色88888久久久久久影院按摩 | 欧美精品色一区二区三区| 国产丝袜欧美中文另类| 亚洲成国产人片在线观看| 国产成人av一区二区| 欧美亚洲国产一区二区三区va| 久久免费视频色| 日本不卡免费在线视频| 色偷偷88欧美精品久久久| 久久综合成人精品亚洲另类欧美| 亚洲国产综合在线| 成人精品国产福利| 精品国产乱码久久久久久久| 五月天欧美精品| 一本久久a久久免费精品不卡| 精品国产乱码久久| 日本欧美韩国一区三区| 欧洲精品一区二区| 亚洲婷婷国产精品电影人久久| 黄一区二区三区| 欧美一区二区三区小说| 午夜精彩视频在线观看不卡| www.激情成人| 久久久国产一区二区三区四区小说 | 成人精品视频一区二区三区尤物| 欧美在线看片a免费观看| 国产女人18水真多18精品一级做| 日本不卡一区二区三区高清视频| 91在线观看一区二区| 国产亚洲欧美日韩俺去了| 视频一区视频二区中文字幕| 色婷婷综合激情| 亚洲色图一区二区三区| 成人毛片视频在线观看| 国产亲近乱来精品视频| 国产成人自拍高清视频在线免费播放| 777亚洲妇女| 午夜欧美在线一二页| 欧美日韩一区二区三区视频| 亚洲黄色在线视频| 一本大道av伊人久久综合| 亚洲色图20p| 在线观看国产91| 午夜精品久久久久久| 欧美高清性hdvideosex| 天堂va蜜桃一区二区三区漫画版| 欧美在线一二三四区| 亚洲国产人成综合网站| 欧美日韩成人激情| 日韩在线观看一区二区| 日韩午夜在线观看视频| 久久66热偷产精品| 欧美精品一区二区精品网| 国产成人在线视频播放| 国产精品视频一二三| 99国产精品一区| 亚洲国产综合在线| 日韩欧美国产精品一区| 国产精品一区二区三区乱码| 国产精品国产三级国产aⅴ原创| 成人一道本在线| 一区二区三区不卡视频在线观看| 欧美日本不卡视频| 黄一区二区三区| 日韩一区在线看| 欧美精品少妇一区二区三区| 精品一区二区三区在线视频| 日本一区二区三区久久久久久久久不| 不卡av电影在线播放| 亚洲a一区二区| 精品成人私密视频| 91小视频在线免费看| 日韩精品电影一区亚洲| 久久这里只有精品6| 色久综合一二码| 免费成人结看片| 亚洲色图制服丝袜|