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

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

?? prndbgeh.pas

?? 很COOL的GRID表格控件
?? 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一区二区三区免费野_久草精品视频
欧美一区二区三区思思人| 91免费观看在线| 亚洲图片一区二区| 亚洲精品日韩专区silk| 亚洲视频你懂的| 亚洲精选一二三| 亚洲福利一区二区| 日本中文字幕一区二区视频| 亚洲第一会所有码转帖| 五月天中文字幕一区二区| 亚洲国产精品尤物yw在线观看| 亚洲一区二区三区四区在线| 亚洲国产成人av网| 久久成人免费日本黄色| 国产伦精一区二区三区| 不卡一区在线观看| 在线看不卡av| 日韩亚洲欧美成人一区| 国产亚洲综合在线| 亚洲三级免费观看| 亚洲大片精品永久免费| 精品一区二区三区在线播放 | 欧美精三区欧美精三区| 欧美午夜精品理论片a级按摩| 欧美精品一卡两卡| 久久久久久电影| 亚洲色图制服丝袜| 麻豆精品视频在线观看免费| 国产很黄免费观看久久| 在线观看精品一区| 精品人在线二区三区| 中文字幕一区二区三区四区 | 五月婷婷激情综合| 国产久卡久卡久卡久卡视频精品| eeuss鲁片一区二区三区在线看| 欧美午夜在线观看| 久久久久青草大香线综合精品| 亚洲三级久久久| 极品瑜伽女神91| 欧美性色综合网| 国产欧美精品一区二区色综合朱莉| 亚洲男人的天堂av| 国产精品资源站在线| 欧美精品久久一区二区三区| 欧美激情自拍偷拍| 奇米影视一区二区三区| 91视频91自| 国产欧美一区二区精品性| 爽好久久久欧美精品| av不卡免费电影| 欧美成人性福生活免费看| 亚洲福利电影网| 91在线国产观看| 久久精品人人做| 美国十次了思思久久精品导航| 日本乱码高清不卡字幕| 中文字幕 久热精品 视频在线| 青青草国产成人99久久| 在线观看欧美日本| 亚洲欧美激情小说另类| 国产69精品久久久久毛片| 2021久久国产精品不只是精品| 偷拍自拍另类欧美| 在线免费精品视频| 国产精品欧美精品| 国产999精品久久久久久| 欧美精品一区二区久久婷婷| 日本最新不卡在线| 91精品国产综合久久久蜜臀图片| 一区二区在线观看视频 | 欧美精品1区2区3区| 亚洲裸体xxx| 91久久精品国产91性色tv| 亚洲色图欧美在线| 色一情一乱一乱一91av| 亚洲视频免费看| 91电影在线观看| 亚洲va欧美va人人爽午夜| 欧美日韩亚洲丝袜制服| 日日夜夜免费精品| 欧美一区二区三区成人| 麻豆精品蜜桃视频网站| 精品久久久久久最新网址| 国产在线不卡视频| 国产精品欧美久久久久一区二区| 暴力调教一区二区三区| 一区二区三区四区视频精品免费 | 久久人人97超碰com| 国产福利电影一区二区三区| 中文字幕av不卡| 欧美性受极品xxxx喷水| 日本大胆欧美人术艺术动态| 欧美不卡一区二区三区| 国产成人午夜电影网| 最新日韩av在线| 欧美日本韩国一区| 国产最新精品精品你懂的| 国产精品视频yy9299一区| 欧美自拍丝袜亚洲| 久久国产剧场电影| 国产精品嫩草久久久久| 欧美中文字幕亚洲一区二区va在线| 亚洲国产综合视频在线观看| 91精品国产欧美一区二区| 国产精品亚洲一区二区三区在线 | 久久www免费人成看片高清| 国产视频亚洲色图| 欧美性猛片aaaaaaa做受| 精品一区二区三区影院在线午夜| 国产精品久久久久久亚洲毛片| 欧美色欧美亚洲另类二区| 国产中文一区二区三区| 一区二区三区在线观看视频| 欧美大黄免费观看| 色av综合在线| 国产成人午夜高潮毛片| 亚洲电影一区二区| 国产亚洲一区二区在线观看| 91福利精品视频| 粉嫩绯色av一区二区在线观看| 亚洲午夜私人影院| 国产精品久久久久7777按摩| 91精品国产综合久久久蜜臀图片| 成人av在线一区二区| 麻豆精品视频在线观看免费| 一区二区不卡在线播放| 国产三级欧美三级日产三级99| 欧美私人免费视频| 成人精品一区二区三区四区 | 9l国产精品久久久久麻豆| 美国精品在线观看| 亚洲国产日韩一区二区| 中文字幕中文在线不卡住| 精品久久久久久久一区二区蜜臀| 欧美亚洲国产一区二区三区| 成人高清av在线| 福利视频网站一区二区三区| 精彩视频一区二区| 老司机精品视频一区二区三区| 亚洲6080在线| 亚洲成人1区2区| 亚洲成人动漫一区| 亚洲v精品v日韩v欧美v专区| 亚洲一区二区三区在线播放| 中文字幕欧美一| 国产精品青草综合久久久久99| 久久久影院官网| 337p日本欧洲亚洲大胆精品| 日韩欧美国产午夜精品| 欧美另类高清zo欧美| 欧美日韩一本到| 欧美欧美欧美欧美| 欧美一区永久视频免费观看| 日韩女优av电影在线观看| 欧美一级高清片在线观看| 日韩一区二区视频| 日韩精品一区二区三区三区免费| 欧美一区二区精品在线| 日韩一区二区精品在线观看| 欧美一区二区三区在线电影| 91精品国产手机| 欧美精品一区二| 国产精品白丝在线| 中文字幕一区二区不卡| 一个色综合网站| 亚洲不卡av一区二区三区| 视频一区二区三区在线| 精品一区二区在线观看| 粗大黑人巨茎大战欧美成人| www.色综合.com| 欧美视频一区二区三区在线观看| 制服丝袜亚洲精品中文字幕| 精品嫩草影院久久| 中文字幕免费不卡| 亚洲一区二区美女| 久久99精品视频| 99久久99久久免费精品蜜臀| 精品视频一区二区不卡| 8x8x8国产精品| 国产欧美日韩不卡| 亚洲444eee在线观看| 国内精品免费**视频| 99久久久国产精品| 日韩视频不卡中文| 国产精品久久久久一区二区三区共| 日韩理论电影院| 另类成人小视频在线| 99国产精品久| 欧美zozozo| 亚洲国产中文字幕在线视频综合 | 亚洲国产一区在线观看| 久久国产精品无码网站| 91免费看`日韩一区二区| 91.com视频| 亚洲精品免费在线观看| 国产一区二区三区四区五区美女| 91亚洲资源网| 欧美—级在线免费片| 青青草原综合久久大伊人精品优势 | 亚洲国产一区视频|