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

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

?? preview.pas

?? 為青島一家公司做的條碼打印管理
?? PAS
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
unit Preview;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ExtCtrls, Buttons,printers;

type
  TFrmPreview = class(TForm)
    Image1: TImage;
    BtnPrint: TBitBtn;
    BtnClose: TBitBtn;
    procedure FormShow(Sender: TObject);
    procedure BtnPrintClick(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    procedure PrintPreview(var Bmp:TBitmap);
  end;

var
  FrmPreview: TFrmPreview;

implementation

{$R *.DFM}

uses mTm;

type
  PPalEntriesArray = ^TPalEntriesArray; {for palette re-construction}
  TPalEntriesArray = array[0..0] of TPaletteEntry;
procedure BltTBitmapAsDib(DestDc : hdc; {Handle of where to blt}
                          x : word; {Bit at x}
                          y : word; {Blt at y}
                          Width : word; {Width to stretch}
                          Height : word; {Height to stretch}
                          bm : TBitmap); {the TBitmap to Blt}
var
  OriginalWidth :LongInt; {width of BM}
  dc : hdc; {screen dc}
  IsPaletteDevice : bool; {if the device uses palettes}
  IsDestPaletteDevice : bool; {if the device uses palettes}
  BitmapInfoSize : integer; {sizeof the bitmapinfoheader}
  lpBitmapInfo : PBitmapInfo; {the bitmap info header}
  hBm : hBitmap; {handle to the bitmap}
  hPal : hPalette; {handle to the palette}
  OldPal : hPalette; {temp palette}
  hBits : THandle; {handle to the DIB bits}
  pBits : pointer; {pointer to the DIB bits}
  lPPalEntriesArray : PPalEntriesArray; {palette entry array}
  NumPalEntries : integer; {number of palette entries}
  i : integer; {looping variable}
begin
  {If range checking is on - lets turn it off for now}
  {we will remember if range checking was on by defining}
  {a define called CKRANGE if range checking is on.}
  {We do this to access array members past the arrays}
  {defined index range without causing a range check}
  {error at runtime. To satisfy the compiler, we must}
  {also access the indexes with a variable. ie: if we}
  {have an array defined as a: array[0..0] of byte,}
  {and an integer i, we can now access a[3] by setting}
  {i := 3; and then accessing a[i] without error}
  {$IFOPT R+}
  {$DEFINE CKRANGE}
  {$R-}
  {$ENDIF}

  {Save the original width of the bitmap}
  OriginalWidth := bm.Width;

  {Get the screen's dc to use since memory dc's are not reliable}
  dc := GetDc(0);
  {Are we a palette device?}
  IsPaletteDevice :=
  GetDeviceCaps(dc, RASTERCAPS) and RC_PALETTE = RC_PALETTE;
  {Give back the screen dc}
  dc := ReleaseDc(0, dc);

  {Allocate the BitmapInfo structure}
  if IsPaletteDevice then BitmapInfoSize := sizeof(TBitmapInfo) + (sizeof(TRGBQUAD) * 255)
  else BitmapInfoSize := sizeof(TBitmapInfo);
  GetMem(lpBitmapInfo, BitmapInfoSize);

  {Zero out the BitmapInfo structure}
  FillChar(lpBitmapInfo^, BitmapInfoSize, #0);

  {Fill in the BitmapInfo structure}
  lpBitmapInfo^.bmiHeader.biSize := sizeof(TBitmapInfoHeader);
  lpBitmapInfo^.bmiHeader.biWidth := OriginalWidth;
  lpBitmapInfo^.bmiHeader.biHeight := bm.Height;
  lpBitmapInfo^.bmiHeader.biPlanes := 1;
  if IsPaletteDevice then lpBitmapInfo^.bmiHeader.biBitCount := 8
  else lpBitmapInfo^.bmiHeader.biBitCount := 24;
  lpBitmapInfo^.bmiHeader.biCompression := BI_RGB;
  lpBitmapInfo^.bmiHeader.biSizeImage :=((lpBitmapInfo^.bmiHeader.biWidth *
                                          longint(lpBitmapInfo^.bmiHeader.biBitCount)) div 8) *
                                          lpBitmapInfo^.bmiHeader.biHeight;
  lpBitmapInfo^.bmiHeader.biXPelsPerMeter := 0;
  lpBitmapInfo^.bmiHeader.biYPelsPerMeter := 0;
  if IsPaletteDevice then begin
    lpBitmapInfo^.bmiHeader.biClrUsed := 256;
    lpBitmapInfo^.bmiHeader.biClrImportant := 256;
  end else begin
    lpBitmapInfo^.bmiHeader.biClrUsed := 0;
    lpBitmapInfo^.bmiHeader.biClrImportant := 0;
  end;

  {Take ownership of the bitmap handle and palette}
  hBm := bm.ReleaseHandle;
  hPal := bm.ReleasePalette;

  {Get the screen's dc to use since memory dc's are not reliable}
  dc := GetDc(0);

  if IsPaletteDevice then begin
    {If we are using a palette, it must be}
    {selected into the dc during the conversion}
    OldPal := SelectPalette(dc, hPal, TRUE);
    {Realize the palette}
    RealizePalette(dc);
  end;
  {Tell GetDiBits to fill in the rest of the bitmap info structure}
  GetDiBits(dc,hBm,0,lpBitmapInfo^.bmiHeader.biHeight,nil,TBitmapInfo(lpBitmapInfo^),DIB_RGB_COLORS);

  {Allocate memory for the Bits}
  hBits := GlobalAlloc(GMEM_MOVEABLE,
  lpBitmapInfo^.bmiHeader.biSizeImage);
  pBits := GlobalLock(hBits);
  {Get the bits}
  GetDiBits(dc,hBm,0,lpBitmapInfo^.bmiHeader.biHeight,pBits,TBitmapInfo(lpBitmapInfo^),DIB_RGB_COLORS);
  if IsPaletteDevice then begin
    {Lets fix up the color table for buggy video drivers}
    GetMem(lPPalEntriesArray, sizeof(TPaletteEntry) * 256);
    {$IFDEF VER100}
    NumPalEntries := GetPaletteEntries(hPal,0,256,lPPalEntriesArray^);
    {$ELSE}
    NumPalEntries := GetSystemPaletteEntries(dc,0,256,lPPalEntriesArray^);
    {$ENDIF}
    for i := 0 to (NumPalEntries - 1) do begin
      lpBitmapInfo^.bmiColors[i].rgbRed :=lPPalEntriesArray^[i].peRed;
      lpBitmapInfo^.bmiColors[i].rgbGreen :=lPPalEntriesArray^[i].peGreen;
      lpBitmapInfo^.bmiColors[i].rgbBlue :=lPPalEntriesArray^[i].peBlue;
    end;
    FreeMem(lPPalEntriesArray, sizeof(TPaletteEntry) * 256);
  end;
  if IsPaletteDevice then begin
    {Select the old palette back in}
    SelectPalette(dc, OldPal, TRUE);
    {Realize the old palette}
    RealizePalette(dc);
  end;

  {Give back the screen dc}
  dc := ReleaseDc(0, dc);
  {Is the Dest dc a palette device?}
  IsDestPaletteDevice :=
  GetDeviceCaps(DestDc, RASTERCAPS) and RC_PALETTE = RC_PALETTE;

  if IsPaletteDevice then begin
    {If we are using a palette, it must be}
    {selected into the dc during the conversion}
    OldPal := SelectPalette(DestDc, hPal, TRUE);
    {Realize the palette}
    RealizePalette(DestDc);
  end;

  {Do the blt}
  StretchDiBits(DestDc,x,y,Width,Height,0,0,OriginalWidth,lpBitmapInfo^.bmiHeader.biHeight,
                pBits,lpBitmapInfo^,DIB_RGB_COLORS,SrcCopy);
  if IsDestPaletteDevice then begin
    {Select the old palette back in}
    SelectPalette(DestDc, OldPal, TRUE);
    {Realize the old palette}
    RealizePalette(DestDc);
  end;

  {De-Allocate the Dib Bits}
  GlobalUnLock(hBits);
  GlobalFree(hBits);

  {De-Allocate the BitmapInfo}
  FreeMem(lpBitmapInfo, BitmapInfoSize);

  {Set the ownership of the bimap handles back to the bitmap}
  bm.Handle := hBm;
  bm.Palette := hPal;

  {Turn range checking back on if it was on when we started}
  {$IFDEF CKRANGE}
  {$UNDEF CKRANGE}
  {$R+}
  {$ENDIF}
end;







{ TFrmPreview }

procedure TFrmPreview.PrintPreview(var Bmp:TBitmap);
var
  {x1,x2,y,Space:integer; }
  TopLeft,TopRight,BottomLeft,BottomRight:TPoint;
begin
  TopLeft.x:=10;
  TopLeft.y:=15;
  TopRight.x:=485;
  TopRight.y:=15;
  BottomLeft.x:=10;
  BottomLeft.y:=305;
  BottomRight.x:=485;
  BottomRight.y:=305;
  Bmp.Width:=664;
  Bmp.Height:=460;
  Bmp.Canvas.MoveTo(TopLeft.x,TopLeft.y);
  Bmp.Canvas.LineTo(TopRight.x,TopRight.y);
  Bmp.Canvas.LineTo(BottomRight.x,BottomRight.y);
  Bmp.Canvas.LineTo(BottomLeft.x,BottomLeft.y);
  Bmp.Canvas.LineTo(TopLeft.x,TopLeft.y);


  Bmp.Canvas.Rectangle(10,305,520,400);
  Bmp.Canvas.Rectangle(10,305,190,400);
  Bmp.Canvas.Rectangle(189,305,303,338);
  Bmp.Canvas.Rectangle(10,388,664,460);
  Bmp.Canvas.MoveTo(10,388+35);
  Bmp.Canvas.LineTo(669,388+35);

  Bmp.Canvas.MoveTo(10+109,388);
  Bmp.Canvas.LineTo(10+109,485);
  Bmp.Canvas.MoveTo(10+109+109,388);
  Bmp.Canvas.LineTo(10+109+109,485);
  Bmp.Canvas.MoveTo(10+109+109+109,388);
  Bmp.Canvas.LineTo(10+109+109+109,485);
  Bmp.Canvas.MoveTo(10+109+109+109+109,388);
  Bmp.Canvas.LineTo(10+109+109+109+109,485);
  Bmp.Canvas.MoveTo(10+109+109+109+109+109,388);

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人午夜在线视频| 欧美日韩夫妻久久| 日韩av在线免费观看不卡| 国产亚洲精品aa| 欧美日韩午夜精品| 国产福利一区二区三区| 日韩高清一级片| 亚洲免费观看高清完整版在线观看| 日韩欧美中文字幕制服| 色丁香久综合在线久综合在线观看 | 日韩精品一区二区在线观看| 91年精品国产| 成人黄色777网| 久久久久久久精| 欧美性生活一区| 老司机精品视频一区二区三区| 亚洲免费观看高清在线观看| 中文字幕精品一区二区精品绿巨人| 欧美一区二区三区四区视频| 欧美午夜理伦三级在线观看| 91网站黄www| 丰满少妇久久久久久久| 99re6这里只有精品视频在线观看| 最新中文字幕一区二区三区| 成人污视频在线观看| 国产精品久久久久久久久动漫| 91麻豆国产精品久久| 国产成人午夜视频| 精品一区二区三区蜜桃| 美国十次了思思久久精品导航| 午夜精品爽啪视频| 亚洲国产欧美日韩另类综合| 亚洲精品成人精品456| 亚洲男人天堂av| 亚洲激情av在线| 亚洲国产成人va在线观看天堂| 一区精品在线播放| 亚洲色图.com| 一区二区久久久久久| 亚洲激情图片一区| 亚洲超碰97人人做人人爱| 亚洲国产精品一区二区久久| 亚洲一区在线观看网站| 亚洲综合丁香婷婷六月香| 亚洲h精品动漫在线观看| 性感美女极品91精品| 日本成人在线不卡视频| 美女视频免费一区| 狠狠狠色丁香婷婷综合激情| 高清日韩电视剧大全免费| 成人丝袜18视频在线观看| av综合在线播放| 色系网站成人免费| 欧美精品日韩精品| 精品久久久久一区| 中文字幕高清一区| 亚洲一区二区三区四区在线 | 欧美吞精做爰啪啪高潮| 欧美午夜一区二区三区免费大片| 91搞黄在线观看| 欧美一区二区三区在| 26uuu国产电影一区二区| 国产精品电影一区二区| 亚洲国产欧美另类丝袜| 麻豆成人在线观看| 成人成人成人在线视频| 在线欧美日韩国产| 日韩久久精品一区| 亚洲少妇中出一区| 日韩av电影天堂| 国产白丝精品91爽爽久久| 色哟哟欧美精品| 欧美成人vr18sexvr| 国产精品嫩草久久久久| 亚洲成a人片在线观看中文| 国产乱理伦片在线观看夜一区| av电影天堂一区二区在线观看| 欧美日韩中文一区| 国产亚洲精久久久久久| 亚洲一区二区三区四区在线免费观看 | 日本国产一区二区| 日韩免费观看2025年上映的电影 | 91亚洲精品久久久蜜桃| 日韩亚洲国产中文字幕欧美| 国产精品高潮呻吟| 久久激五月天综合精品| 91免费版pro下载短视频| 日韩欧美一级在线播放| 玉足女爽爽91| 91精品国产一区二区| 国产精品人人做人人爽人人添| 亚洲成人在线免费| a美女胸又www黄视频久久| 日韩精品一区二区三区中文不卡| 中文字幕在线一区免费| 国产一区二区三区日韩| 欧美日韩精品一区二区三区| 中文字幕在线免费不卡| 韩国欧美一区二区| 91精品国产一区二区三区香蕉| 亚洲人精品一区| 国产大陆亚洲精品国产| 日韩一级片在线观看| 亚洲成人精品一区二区| 91浏览器在线视频| 久久九九久精品国产免费直播| 日韩高清不卡一区二区三区| 欧美综合天天夜夜久久| 国产精品成人一区二区三区夜夜夜 | 亚洲素人一区二区| 国产高清久久久| 久久久久综合网| 麻豆精品一二三| 欧美人与禽zozo性伦| 亚洲影院在线观看| 色综合一区二区| 国产精品久久国产精麻豆99网站| 精品无人区卡一卡二卡三乱码免费卡| 欧美美女一区二区| 亚洲成人资源在线| 欧美丝袜丝nylons| 亚洲宅男天堂在线观看无病毒| 99国产精品国产精品久久| 国产精品久久久久久久午夜片| 韩国欧美国产一区| 欧美精品一区二区久久婷婷 | 美女脱光内衣内裤视频久久网站 | 久久综合国产精品| 久久国内精品视频| 日韩午夜中文字幕| 美国三级日本三级久久99| 91精品婷婷国产综合久久性色| 爽好久久久欧美精品| 国产精品毛片无遮挡高清| 成人一区在线观看| 国产精品美女www爽爽爽| av成人动漫在线观看| 亚洲人成在线观看一区二区| 91视频xxxx| 亚洲人成伊人成综合网小说| 97国产一区二区| 一区二区三区精品视频| 91福利资源站| 一区二区三区小说| 欧美自拍偷拍一区| 视频在线在亚洲| 日韩一区二区三区在线| 九九视频精品免费| 亚洲国产精品av| 91蝌蚪porny| 亚洲成人一区在线| 91欧美一区二区| 亚洲精品欧美专区| 欧美精品久久久久久久多人混战| 亚洲高清免费在线| 欧美日韩精品欧美日韩精品| 亚洲一级片在线观看| 日韩一区二区视频| 国产成人免费av在线| 亚洲天堂中文字幕| 欧美精品一卡二卡| 国产主播一区二区三区| 国产精品久久久久久户外露出| 欧美无砖砖区免费| 精品一区二区三区免费毛片爱| 欧美韩日一区二区三区四区| 91久久人澡人人添人人爽欧美 | 久久国产麻豆精品| 欧美国产激情二区三区| 欧美午夜不卡视频| 国产揄拍国内精品对白| 亚洲色大成网站www久久九九| 欧美久久久久久久久中文字幕| 欧美人体做爰大胆视频| 国产剧情一区二区| 亚洲在线免费播放| 久久精品水蜜桃av综合天堂| 91精品办公室少妇高潮对白| 蜜臀久久99精品久久久久宅男| 中文字幕国产精品一区二区| 3atv在线一区二区三区| 不卡在线观看av| 青椒成人免费视频| 国产精品对白交换视频 | 色婷婷激情久久| 国产在线一区二区综合免费视频| 亚洲色图欧洲色图婷婷| 精品久久一区二区| 欧美性感一类影片在线播放| 国产成人av电影在线观看| 天天av天天翘天天综合网| 国产精品色眯眯| 91精品国产高清一区二区三区| jlzzjlzz国产精品久久| 精品一区二区三区的国产在线播放 | 日韩精品专区在线影院观看| 91丨porny丨在线| 国产一区二区免费在线| 视频一区中文字幕| 一区二区三区中文字幕在线观看|