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

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

?? prndbgeh.pas

?? Delphi控件源碼
?? PAS
字號:
{*******************************************************}
{                                                       }
{                       EhLib v1.56                     }
{                TPrintDBGridEh component               }
{                                                       }
{   Copyright (c) 1998, 2000 by Dmitry V. Bolshakov     }
{                                                       }
{*******************************************************}

unit PrnDbgeh;

interface

{$I EhLib.Inc}

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, DBGridEh, PrntsEh
{$IFDEF EH_LIB_4} ,ImgList{$ENDIF}
  ,PrViewEh,Forms,DB, Grids, StdCtrls, 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;
    FLeftText: TStrings;
    FRightText: TStrings;
    FFont: TFont;
    FLineType: TPageColontitleLineType;
    procedure SetCenterText(const Value: TStrings);
    procedure SetFont(const Value: TFont);
    procedure SetLeftText(const Value: TStrings);
    procedure SetRightText(const Value: TStrings);
    procedure SetLineType(const Value: TPageColontitleLineType);
  public
    procedure Assign(Source: TPersistent); override;
    constructor Create;
    destructor Destroy; override;
  published
    property LeftText:TStrings read FLeftText write SetLeftText;
    property CenterText:TStrings read FCenterText write SetCenterText;
    property RightText:TStrings read FRightText write SetRightText;
    property Font:TFont read FFont write SetFont;
    property LineType: TPageColontitleLineType read FLineType write SetLineType default pcltNon;
  end;

  TPrintDBGridEh = class(TComponent)
  private
    FDBGridEh: TDBGridEh;
    FUnits: TMeasureUnits;
    FTitle: TStrings;
    FPrintFontName: String;
    FOptions: TPrintDBGridEhOptions;
    FPage: TPageParams;
    FPageFooter: TPageColontitle;
    FPageHeader: TPageColontitle;
    FOnPrinterSetupDialog: TNotifyEvent;
    FBeforeGridText: TStrings;
    FAfterGridText: TStrings;
    FSubstitutesNames: TStrings;
    FSubstitutesValues: TStrings;
    procedure ReadBeforeGridText(Stream: TStream);
    procedure ReadAfterGridText(Stream: TStream);
    procedure SetDBGridEh(const Value: TDBGridEh);
    procedure SetUnits(const Value: TMeasureUnits);
    procedure SetTitle(const Value: TStrings);
    procedure SetPrintFontName(const Value: String);
    procedure SetOptions(const Value: TPrintDBGridEhOptions);
    procedure SetPage(const Value: TPageParams);
    procedure SetPageFooter(const Value: TPageColontitle);
    procedure SetPageHeader(const Value: TPageColontitle);
    procedure SetBeforeGridText(const Value: TStrings);
    procedure WriteBeforeGridText(Stream: TStream);
    procedure WriteAfterGridText(Stream: TStream);
    procedure SetAfterGridText(const Value: TStrings);
    function  GetAfterGridText: TStrings;
    function  GetBeforeGridText: TStrings;
    function  GridTextReplace(RichStrings:TStrings; const SearchStr, ReplaceStr: string;
      StartPos, Length: Integer; Options: TSearchTypes; ReplaceAll: Boolean): Integer;
  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;
    procedure Preview;
    procedure Print;
    function  PrinterSetupDialog:Boolean;
    procedure PrintTo(VPrinter:TVirtualPrinter);
    procedure SetSubstitutes(ASubstitutes:array of const);
  published
    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 BeforeGridText:TStrings read GetBeforeGridText write SetBeforeGridText stored False;
    property AfterGridText:TStrings read GetAfterGridText write SetAfterGridText stored False;
    property Units:TMeasureUnits read FUnits write SetUnits;
    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) // 項塍麒螯 賑噤疣

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人免费在线观看入口| 亚洲成av人片www| 51精品视频一区二区三区| 国产在线精品免费| 亚洲不卡在线观看| 亚洲女子a中天字幕| 久久久www成人免费毛片麻豆| 99精品国产视频| 国产成人午夜99999| 日本女人一区二区三区| 一区二区三区在线影院| 国产精品免费久久| 国产午夜精品美女毛片视频| 91精品国产综合久久福利软件| 99riav久久精品riav| 国产91丝袜在线播放| 久久99国产精品久久99果冻传媒| 亚洲国产日韩在线一区模特| 国产精品天美传媒沈樵| 欧美精品一区二区三区久久久| 欧美精品v国产精品v日韩精品| 91免费版在线| 成人三级在线视频| 国产**成人网毛片九色| 国产在线精品国自产拍免费| 免费观看91视频大全| 午夜成人在线视频| 亚洲国产精品一区二区尤物区| 18成人在线视频| 亚洲人一二三区| 国产精品理论片| 国产精品入口麻豆原神| 久久久精品国产免费观看同学| 亚洲精品一区二区三区四区高清 | 日本不卡在线视频| 日本欧美在线观看| 美国av一区二区| 久久99国产精品免费网站| 久久疯狂做爰流白浆xx| 久久国产精品第一页| 麻豆成人免费电影| 激情成人综合网| 国产一区高清在线| 国产精品一区专区| 国产一区二区三区四区五区入口| 精品在线视频一区| 国产黄色精品网站| av中文字幕亚洲| 色婷婷综合中文久久一本| 一本一本大道香蕉久在线精品 | 亚洲成人福利片| 蜜臀久久99精品久久久画质超高清 | 色综合网站在线| 欧美色图天堂网| 4438成人网| 精品精品国产高清a毛片牛牛 | 亚洲精品日日夜夜| 亚洲成av人片一区二区| 久久se精品一区精品二区| 东方aⅴ免费观看久久av| 成人黄色av电影| 色综合久久中文字幕| 欧美老年两性高潮| 日韩精品一区二区三区视频播放 | 成人免费高清视频在线观看| 91在线视频播放地址| 欧美老年两性高潮| 久久久久99精品一区| 亚洲猫色日本管| 亚洲免费在线视频一区 二区| 午夜视频在线观看一区二区 | 性欧美大战久久久久久久久| 久久激情综合网| 99久久伊人网影院| 日韩一区二区三区观看| 亚洲国产精品av| 亚洲电影一级黄| 国产69精品一区二区亚洲孕妇| 一本久道久久综合中文字幕| 日韩欧美国产电影| 亚洲免费电影在线| 久久国产视频网| 91亚洲大成网污www| 日韩精品一区二区三区视频 | 国产在线精品一区二区| 色综合天天视频在线观看| 精品区一区二区| 一区二区三区四区亚洲| 国产自产v一区二区三区c| 91激情五月电影| 337p粉嫩大胆噜噜噜噜噜91av| 亚洲自拍与偷拍| 国产精品一区二区果冻传媒| 欧美人伦禁忌dvd放荡欲情| 国产精品私人影院| 激情六月婷婷久久| 欧美三级电影一区| 国产精品福利一区| 国产乱子伦视频一区二区三区 | 国产精品久久久久久久午夜片| 日本午夜精品一区二区三区电影| 99久久99久久精品国产片果冻 | 中文久久乱码一区二区| 日产欧产美韩系列久久99| eeuss影院一区二区三区| 精品国产免费视频| 婷婷久久综合九色国产成人| 粉嫩嫩av羞羞动漫久久久 | 国产婷婷精品av在线| 琪琪久久久久日韩精品| 欧美性视频一区二区三区| 国产精品毛片久久久久久| 久久66热偷产精品| 欧美一区二区三区色| 亚洲午夜三级在线| 色婷婷一区二区| 1区2区3区国产精品| 成人久久久精品乱码一区二区三区| 91精品国产综合久久久久| 亚洲一区二区三区爽爽爽爽爽| 国产91精品一区二区| 精品国产人成亚洲区| 另类小说一区二区三区| 3d动漫精品啪啪一区二区竹菊| 亚洲五月六月丁香激情| 欧美影视一区在线| 亚洲一区二区在线播放相泽| 在线区一区二视频| 一级女性全黄久久生活片免费| 99v久久综合狠狠综合久久| 亚洲国产成人私人影院tom| 国产91丝袜在线播放九色| 亚洲国产高清不卡| 成人av片在线观看| 中文字幕在线一区| 91小宝寻花一区二区三区| 亚洲精品水蜜桃| 精品视频一区二区三区免费| 亚洲精选视频在线| 欧美四级电影网| 天天操天天综合网| 日韩免费观看高清完整版| 精品一区二区在线观看| 2020日本不卡一区二区视频| 国产一区二区三区日韩| 中文字幕巨乱亚洲| 91亚洲精华国产精华精华液| 亚洲在线视频免费观看| 欧美日韩久久久| 美女网站色91| 国产丝袜在线精品| 一本久久综合亚洲鲁鲁五月天 | 欧美一区二区在线播放| 麻豆精品精品国产自在97香蕉| 精品成人在线观看| 成人精品国产福利| 亚洲国产综合人成综合网站| 91精品国产综合久久精品app | 狠狠色丁香婷婷综合久久片| 久久青草欧美一区二区三区| 成人国产精品免费观看| 亚洲国产日韩a在线播放性色| 日韩欧美高清dvd碟片| 波多野结衣在线aⅴ中文字幕不卡| 亚洲欧美区自拍先锋| 欧美一级黄色大片| av在线这里只有精品| 日韩精品欧美精品| 欧美激情一二三区| 欧美日韩一区二区三区不卡| 精品制服美女丁香| 亚洲精品日日夜夜| 久久尤物电影视频在线观看| av在线免费不卡| 麻豆精品蜜桃视频网站| 自拍偷拍亚洲激情| 欧美不卡在线视频| 91久久久免费一区二区| 精品系列免费在线观看| 亚洲精品伦理在线| 久久色.com| 欧美撒尿777hd撒尿| 成人性生交大合| 热久久久久久久| 亚洲伦理在线精品| 久久久99精品久久| 8v天堂国产在线一区二区| 成人精品一区二区三区四区| 日韩av在线播放中文字幕| 国产精品福利影院| 2023国产精华国产精品| 欧美三级日本三级少妇99| 不卡电影免费在线播放一区| 奇米888四色在线精品| 一区二区久久久| 欧美国产在线观看| 欧美不卡一区二区三区| 欧美日韩精品欧美日韩精品一综合| 成人免费视频国产在线观看| 蜜桃视频一区二区|