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

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

?? prndbgeh.pas

?? delphi控件類
?? PAS
字號(hào):
{*******************************************************}
{                                                       }
{                       EhLib v2.0                      }
{                TPrintDBGridEh component               }
{                                                       }
{   Copyright (c) 1998, 2001 by Dmitry V. Bolshakov     }
{                                                       }
{*******************************************************}

unit PrnDbgeh;

interface

{$I EhLib.Inc}

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, DBGridEh, PrntsEh,
  ImgList, PrViewEh, Forms, DB, Grids, StdCtrls, DBGrids, ComCtrls;

type
  TMeasureUnits = (MM,Inches);
  TPrintDBGridEhOption = (pghFitGridToPageWidth, pghColored, pghRowAutoStretch,
                          pghFitingByColWidths, pghOptimalColWidths);
  TPrintDBGridEhOptions = set of TPrintDBGridEhOption;


  TPageParams = class(TPersistent)
  private
//    FColumns: Integer;
//    FColumnSpace: Currency;
    FBottomMargin: Currency;
    FRightMargin: Currency;
    FLeftMargin: Currency;
    FTopMargin: Currency;
    procedure SetBottomMargin(const Value: Currency);
//    procedure SetColumns(const Value: Integer);
//    procedure SetColumnSpace(const Value: Currency);
    procedure SetLeftMargin(const Value: Currency);
    procedure SetRightMargin(const Value: Currency);
    procedure SetTopMargin(const Value: Currency);
  public
    constructor Create;
    procedure Assign(Source: TPersistent); override;
  published
    property BottomMargin:Currency read FBottomMargin write SetBottomMargin;
    property LeftMargin:Currency read FLeftMargin write SetLeftMargin;
    property RightMargin:Currency read FRightMargin write SetRightMargin;
    property TopMargin:Currency read FTopMargin write SetTopMargin;
//    property Columns:Integer read FColumns write SetColumns;
//    property ColumnSpace:Currency read FColumnSpace write SetColumnSpace;
  end;

  TPageColontitleLineType = (pcltNon,pcltSingleLine,pcltDoubleLine);

  TPageColontitle = class(TPersistent)
  private
    FCenterText: TStrings;
    FFont: TFont;
    FLeftText: TStrings;
    FLineType: TPageColontitleLineType;
    FRightText: TStrings;
    procedure SetCenterText(const Value: TStrings);
    procedure SetFont(const Value: TFont);
    procedure SetLeftText(const Value: TStrings);
    procedure SetLineType(const Value: TPageColontitleLineType);
    procedure SetRightText(const Value: TStrings);
  public
    procedure Assign(Source: TPersistent); override;
    constructor Create;
    destructor Destroy; override;
  published
    property CenterText:TStrings read FCenterText write SetCenterText;
    property Font:TFont read FFont write SetFont;
    property LeftText:TStrings read FLeftText write SetLeftText;
    property LineType: TPageColontitleLineType read FLineType write SetLineType default pcltNon;
    property RightText:TStrings read FRightText write SetRightText;
  end;

  TPrintDBGridEh = class(TComponent)
  private
    FAfterGridText: TStrings;
    FBeforeGridText: TStrings;
    FColCellParamsEh: TColCellParamsEh;
    FDBGridEh: TDBGridEh;
    FOnAfterPrint: TNotifyEvent;
    FOnBeforePrint: TNotifyEvent;
    FOnPrinterSetupDialog: TNotifyEvent;
    FOptions: TPrintDBGridEhOptions;
    FPage: TPageParams;
    FPageFooter: TPageColontitle;
    FPageHeader: TPageColontitle;
    FPrintFontName: String;
    FSubstitutesNames: TStrings;
    FSubstitutesValues: TStrings;
    FTitle: TStrings;
    FUnits: TMeasureUnits;
    function  GetAfterGridText: TStrings;
    function  GetBeforeGridText: TStrings;
    function  GridTextReplace(RichStrings:TStrings; const SearchStr, ReplaceStr: string;
      StartPos, Length: Integer; Options: TSearchTypes; ReplaceAll: Boolean): Integer;
    procedure ReadAfterGridText(Stream: TStream);
    procedure ReadBeforeGridText(Stream: TStream);
    procedure SetAfterGridText(const Value: TStrings);
    procedure SetBeforeGridText(const Value: TStrings);
    procedure SetDBGridEh(const Value: TDBGridEh);
    procedure SetOptions(const Value: TPrintDBGridEhOptions);
    procedure SetPage(const Value: TPageParams);
    procedure SetPageFooter(const Value: TPageColontitle);
    procedure SetPageHeader(const Value: TPageColontitle);
    procedure SetPrintFontName(const Value: String);
    procedure SetTitle(const Value: TStrings);
    procedure SetUnits(const Value: TMeasureUnits);
    procedure WriteAfterGridText(Stream: TStream);
    procedure WriteBeforeGridText(Stream: TStream);
  protected
    procedure DefineProperties(Filer: TFiler); override;
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
    procedure PrinterSetupDialogPreview(Sender: TObject);
  public
    constructor Create(AOwner: TComponent); override;
    destructor Destroy; override;
    function PrinterSetupDialog:Boolean;
    procedure Preview;
    procedure Print;
    procedure PrintTo(VPrinter:TVirtualPrinter);
    procedure SetSubstitutes(ASubstitutes:array of const);
  published
    property AfterGridText: TStrings read GetAfterGridText write SetAfterGridText stored False;
    property BeforeGridText: TStrings read GetBeforeGridText write SetBeforeGridText stored False;
    property DBGridEh: TDBGridEh read FDBGridEh write SetDBGridEh;
    property Options: TPrintDBGridEhOptions read FOptions write SetOptions;
    property Page: TPageParams read FPage write SetPage;
    property PageFooter: TPageColontitle read FPageFooter write SetPageFooter;
    property PageHeader: TPageColontitle read FPageHeader write SetPageHeader;
    property PrintFontName: String read FPrintFontName write SetPrintFontName;
    property Title: TStrings read FTitle write SetTitle;
    property Units: TMeasureUnits read FUnits write SetUnits;
    property OnAfterPrint: TNotifyEvent read FOnAfterPrint write FOnAfterPrint;
    property OnBeforePrint: TNotifyEvent read FOnBeforePrint write FOnBeforePrint;
    property OnPrinterSetupDialog: TNotifyEvent read FOnPrinterSetupDialog write FOnPrinterSetupDialog;
  end;


implementation

uses PrnDGDlg, RichEdit, ComStrs;

var
  FCheckBoxWidth, FCheckBoxHeight: Integer;

procedure GetCheckSize;
begin
  with TBitmap.Create do
    try
      Handle := LoadBitmap(0, PChar(32759));
      FCheckBoxWidth := Width div 4;
      FCheckBoxHeight := Height div 3;
    finally
      Free;
    end;
end;

function iif(Condition:Boolean;V1,V2:Integer):Integer;
begin
  if (Condition) then Result := V1 else Result := V2;
end;

function GetTextWidth(Canvas:TCanvas; Text:String):Integer;
var ARect:TRect;
    uFormat:Integer;
begin
  uFormat := DT_CALCRECT or DT_LEFT or DT_NOPREFIX or DT_EXPANDTABS;
  ARect := Rect(0,0,1,0);
  DrawText(Canvas.Handle, PChar(Text), Length(Text), ARect, uFormat);
  Result := ARect.Right - ARect.Left;
end;

{new WriteTextEh}{}
function WriteTextEh(ACanvas: TCanvas; ARect: TRect; FillRect:Boolean; DX, DY: Integer;
  const Text: string; Alignment: TAlignment; Layout: TTextLayout; MultyL:Boolean;
  EndEllipsis:Boolean; LeftMarg,RightMarg:Integer; CalcRect:Boolean):Integer;
const
  AlignFlags : array [TAlignment] of Integer =
    ( DT_LEFT or DT_EXPANDTABS or DT_NOPREFIX,
      DT_RIGHT or DT_EXPANDTABS or DT_NOPREFIX,
      DT_CENTER or DT_EXPANDTABS or DT_NOPREFIX );
var opt:Integer;
   tm: TTEXTMETRIC;
   rect1: TRect;
   txth, DrawFlag: Integer;
   lpDTP :  TDrawTextParams;
begin
 Result := 0;
 if CalcRect = False then begin
   if (FillRect = True) then ACanvas.FillRect(ARect);

   DrawFlag := 0;
   if (MultyL = True) then DrawFlag := DrawFlag or DT_WORDBREAK;
   if (EndEllipsis = True) then DrawFlag := DrawFlag or DT_END_ELLIPSIS;
   DrawFlag := DrawFlag or AlignFlags[Alignment];

    {}
   rect1.Left := 0; rect1.Top := 0; rect1.Right := 0; rect1.Bottom := 0;
   rect1 := ARect;  {}

   lpDTP.cbSize := SizeOf(lpDTP);
   lpDTP.uiLengthDrawn := Length(Text);
   lpDTP.iLeftMargin := LeftMarg;
   lpDTP.iRightMargin := RightMarg;

   InflateRect(rect1, -DX, -DY);

   if (Layout <> tlTop) {and (MultyL = True)} then
     txth := DrawTextEx(ACanvas.Handle,PChar(Text), Length(Text),    {}
        rect1, DrawFlag or DT_CALCRECT,@lpDTP) // 項(xiàng)塍麒螯 賑噤疣

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区丝袜| 国产三级三级三级精品8ⅰ区| 国产在线观看一区二区| 天堂成人免费av电影一区| 亚洲一二三区在线观看| 亚洲乱码国产乱码精品精可以看 | 色婷婷激情久久| 成人美女在线观看| 99re热这里只有精品视频| jlzzjlzz欧美大全| 欧洲国内综合视频| 制服丝袜亚洲网站| 久久久久久影视| 国产精品网曝门| 亚洲最新视频在线播放| 亚洲成人黄色小说| 久久成人免费日本黄色| 高清在线不卡av| 91免费版在线| 欧美成人aa大片| ...xxx性欧美| 视频一区在线播放| 国产黑丝在线一区二区三区| 99热99精品| 日韩一级黄色大片| 欧美国产综合一区二区| 一区二区在线观看视频在线观看| 天天操天天干天天综合网| 国产一区二区三区不卡在线观看| 成人免费福利片| 这里是久久伊人| √…a在线天堂一区| 免费久久99精品国产| 北岛玲一区二区三区四区| 欧美日韩高清不卡| 中文一区一区三区高中清不卡| 亚洲综合色区另类av| 九九精品一区二区| 在线欧美一区二区| 久久亚洲综合色| 亚洲一区二区三区三| 国产毛片精品一区| 欧美男生操女生| 亚洲欧洲日韩在线| 狠狠色2019综合网| 欧美三级日韩三级| 国产精品久久久久久久午夜片 | 亚洲婷婷在线视频| 激情国产一区二区 | 欧美一级理论性理论a| 久久久久久久av麻豆果冻| 亚洲不卡av一区二区三区| 福利电影一区二区三区| 日韩精品中文字幕一区二区三区| 亚洲免费高清视频在线| 成人自拍视频在线观看| 日韩欧美中文一区| 亚洲成人tv网| 91久久香蕉国产日韩欧美9色| 久久精品人人做人人爽97| 日本vs亚洲vs韩国一区三区 | 26uuu国产一区二区三区| 亚洲九九爱视频| 成人精品视频网站| 久久久久久亚洲综合| 久久国产福利国产秒拍| 日韩欧美一级二级| 免费高清在线视频一区·| 欧美久久久久久蜜桃| 亚洲午夜久久久久| 91麻豆国产精品久久| 亚洲欧美日韩久久精品| 成人综合婷婷国产精品久久蜜臀| 国产丝袜美腿一区二区三区| 国产精品白丝jk白祙喷水网站| 久久综合999| 国产一区 二区 三区一级| 久久久美女毛片| 国产最新精品精品你懂的| 精品国产乱码久久久久久老虎 | 日韩成人一区二区三区在线观看| 欧美日韩免费观看一区二区三区| 亚洲第一主播视频| 91精品麻豆日日躁夜夜躁| 免费日本视频一区| 久久免费午夜影院| 99免费精品在线| 亚洲成人1区2区| 这里只有精品电影| 国产一区在线精品| 中文字幕在线观看一区二区| 一本大道综合伊人精品热热| 亚洲国产综合色| 日韩欧美久久久| 成人爽a毛片一区二区免费| 中文字幕日韩精品一区| 欧美视频完全免费看| 美女一区二区在线观看| 国产精品乱码久久久久久| 日本高清不卡一区| 紧缚捆绑精品一区二区| 国产精品久久久久久久久动漫 | 色婷婷久久99综合精品jk白丝| 亚洲一区二区三区美女| 日韩欧美国产一区二区三区| 国产精品综合一区二区三区| 亚洲精品第1页| 亚洲精品一区二区三区蜜桃下载| 成人av免费在线观看| 天天综合网天天综合色| 久久久久国产免费免费| 欧美亚洲综合在线| 国产乱子伦视频一区二区三区| 亚洲男人的天堂av| 久久久午夜精品理论片中文字幕| 色欧美片视频在线观看| 国产在线精品一区二区不卡了| 亚洲乱码中文字幕| 久久久久久久久久久久久久久99| 在线免费观看不卡av| 国产成人h网站| 蜜臀av亚洲一区中文字幕| 1区2区3区欧美| 久久天堂av综合合色蜜桃网| 欧美日韩视频不卡| 91麻豆精品秘密| 国产成人精品一区二区三区网站观看| 午夜亚洲国产au精品一区二区| 中文字幕欧美日韩一区| 91精品国产欧美一区二区18 | 国产精品888| 亚洲成人综合视频| 亚洲精品视频观看| 国产精品丝袜在线| 国产日韩欧美亚洲| 日韩精品一区二区三区视频播放| 欧美性色欧美a在线播放| 成人一级片网址| 精品一区二区三区在线观看国产 | 久久精品网站免费观看| 欧美一区二区三区播放老司机| 欧美亚洲国产怡红院影院| 成人av网站在线观看免费| 国产一区二区美女诱惑| 久久99精品国产麻豆不卡| 午夜精品一区二区三区电影天堂| 亚洲美女视频一区| 一区二区成人在线观看| 一区二区三区美女| 一卡二卡欧美日韩| 亚洲成a天堂v人片| 亚洲午夜一区二区三区| 亚洲在线视频网站| 午夜电影久久久| 日产国产欧美视频一区精品| 午夜伊人狠狠久久| 美女视频黄 久久| 激情五月婷婷综合网| 国产一区亚洲一区| 91在线视频免费观看| 色综合久久中文字幕| 色成年激情久久综合| 欧美日韩精品是欧美日韩精品| 欧美日韩国产免费| 日韩三级视频在线看| 久久免费看少妇高潮| 国产亚洲一区二区三区在线观看| 中文字幕不卡在线观看| 亚洲精品国产精华液| 日韩精品久久久久久| 国产综合色精品一区二区三区| fc2成人免费人成在线观看播放| 一本一道波多野结衣一区二区| 欧美日韩国产首页| 久久久不卡影院| 亚洲男人天堂av| 蜜芽一区二区三区| thepron国产精品| 欧美挠脚心视频网站| 久久免费视频一区| 亚洲一区二区三区四区五区黄| 久久精品免费观看| 色综合久久六月婷婷中文字幕| 欧美一区二区三区日韩| 国产精品美女久久久久av爽李琼 | 蜜桃免费网站一区二区三区| 国产在线一区二区综合免费视频| 99视频在线精品| 日韩欧美一级二级三级| 亚洲婷婷在线视频| 蜜乳av一区二区| 91理论电影在线观看| 精品国产免费人成电影在线观看四季| 亚洲色图欧洲色图婷婷| 波多野结衣精品在线| 制服丝袜在线91| 玉米视频成人免费看| 韩日av一区二区| 欧美日韩国产中文| 亚洲视频综合在线|