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

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

?? qm_pcontrol.pas

?? 計算機系畢業設計
?? PAS
字號:
{*******************************************************}
{                                                       }
{                   QReportMaker 2.0                    }
{              TQMPrintControl Component                }
{                                                       }
{            Copyright (c) 2003,2004 by Zwm.            }
{                                                       }
{*******************************************************}

unit QM_PControl;

interface


uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Typinfo, ComCtrls,
  StdCtrls, ExtCtrls, Mask, QM_RConsole;

type
  { TQMPrintControl }
  TQMPrintControl = class(TQMReportConsole)
  private
    FControl: TWinControl;
    FFitToPageWidth: Boolean;
    FOverPrint: Boolean;
    procedure SetControl(const Value: TWinControl);
  protected
    procedure DrawReport; override;
    procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  public
  published
    property Control: TWinControl read FControl write SetControl;
    property FitToPageWidth: Boolean read FFitToPageWidth write FFitToPageWidth default False;
    property OverPrint: Boolean read FOverPrint write FOverPrint default False;
  end;

implementation

uses QuickRpt, QRPrntr, QRCtrls, QM_Utils, QM_QRFuns;

{ TQMPrintControl }

procedure TQMPrintControl.DrawReport;
var
  QRBand: TQRBand;
  RepWidth,iHeight,iWidth,iTop,iLeft: Integer;
  clr: TColor;

  procedure DrawQRLabel(cCaption:String; cColor:TColor; cFont:TFont;
     bAutoSize,bTransparent:Boolean; iAlignment:TAlignment);
  var
    QRLabel:TQRLabel;
  begin
    QRLabel := TQRLabel.Create(QROwner);
    QrLabel.Parent := QRBand;
    With QRLabel do
    begin
      AutoSize := bAutoSize;
      Font.Assign(cFont);
      Font.Height := Round(Font.Height * ScaleHT);
      Font.Color := QM_PrintColor(self, Font.Color);
      Top := iTop;
      Left := iLeft;
      Width := iWidth;
      Height := iHeight;
      Caption := cCaption;
      Alignment := iAlignment;
      Color := QM_BGColor(self, cColor);
      TransParent := bTransparent;
      if (not TransParent) and QM_CompareColor(clr, cColor) then
        TransParent := True;
      if NeedName then
        Name := QM_UniqueName(QROwner,'QRLabel');
    end;
  end;

  procedure DrawQRMemo(sLines:TStrings; cColor:TColor; cFont:TFont;
    bAutoSzie,bTransparent,bWordWrap:boolean; iAlignment:TAlignment);
  var
    QRMemo:TQRMemo;
  begin
    QRMemo := TQRMemo.Create(QROwner);
    QRMemo.Parent := QRBand;
    with QRMemo do
    begin
      AutoSize := bAutoSzie;
      Font.Assign(cFont);
      Font.Height := Round(Font.Height * ScaleHT);
      Font.Color := QM_PrintColor(self, Font.Color);
      Top := iTop;
      Left := iLeft;
      Width := iWidth;
      Height := iHeight;
      WordWrap := bWordWrap;
      Lines.Assign(sLines);
      Alignment := iAlignment;
      Color := QM_BGColor(self, cColor);
      TransParent := bTransparent;
      if (not TransParent) and QM_CompareColor(clr, cColor) then
        TransParent := True;
      if NeedName then
        Name := QM_UniqueName(QROwner,'QRMemo');
    end;
  end;

  procedure DrawQRShape(cBrush:TBrush; cPen:TPen; cShape:TQRShapeType);
  var
    QRShape:TQRShape;
  begin
    QRShape := TQRShape.Create(QROwner);
    QRShape.Parent := QRBand;
    with QRShape do
    begin
      Top := iTop;
      Left := iLeft;
      Width := iWidth;
      Height := iHeight;
      Brush.Assign(cBrush);
      Brush.Color := QM_BGColor(self, Brush.Color);
      Brush.Style := cBrush.Style;
      Pen.Assign(cPen);
      Pen.Color := QM_PrintColor(self, Pen.Color);
      Shape := cShape;
      if NeedName then
        Name := QM_UniqueName(QROwner,'QRShape');
    end;
  end;

  procedure DrawQRImage(cPicture:TPicture; bAutoSize,bCenter,bStretch:Boolean);
  var
    QRImage:TQRImage;
  begin
    QRImage := TQRImage.Create(QROwner);
    QRImage.Parent := QRBand;
    with QRImage do
    begin
      AutoSize := bAutoSize;
      QRImage.Picture := cPicture;
      Top := iTop;
      Left := iLeft;
      Width := iWidth;
      Height := iHeight;
      Stretch := bStretch;
      Center := bCenter;
      if NeedName then
        Name := QM_UniqueName(QROwner,'QRImage');
    end;
  end;

  procedure DrawQRRichText(cRichEdit:TRichEdit);
  var
    QRRichText: TQRRichText;
  begin
    QRRichText := TQRRichText.Create(QROwner);
    QRRichText.Parent := QRBand;
    with QRRichText do
    begin
      Top := iTop;
      Left := iLeft;
      Width := iWidth;
      Height := iHeight;
      ParentRichEdit := cRichEdit;
      if NeedName then
        Name := QM_UniqueName(QROwner,'QRRichText');
    end;
  end;

  function IsPrintCtrl(pctrl:TControl;pTp,pLft:Integer):boolean;
  var
    cShape: TQRShapeType;
    s: String;
    procedure gtTLWH(iTp,iLft,iWd,iHg: Integer);
    begin
      with pctrl do
      begin
        iTop := Round((pTp + Top + iTp) * ScaleHT);
        iHeight := Round((Height + iHg) * ScaleHT + 0.49);
        iLeft := Round((pLft + Left + iLft) * ScaleWL);
        iWidth := Round((Width + iWd) * ScaleWL + 0.49);
      end;
    end;
  begin
    Result := False;
    if (pctrl.Visible = False) or (OverPrint and (pctrl.Tag > 99)) then
    begin
      Result := True;
      exit;
    end;
    if pctrl is TLabel then
    begin
      Result := True;
      gtTLWH(0,0,0,0);
      with pctrl as TLabel do
        DrawQRLabel(Caption,Color,Font,AutoSize,TransParent,Alignment);
    end
    else if pctrl is TShape then
    begin
      Result := True;
      gtTLWH(0,0,0,0);
      with pctrl as TShape do
      begin
        if (Shape=stCircle) or (Shape=stEllipse) then cShape := qrsCircle
        else cShape := qrsRectangle;
        DrawQRShape(Brush,Pen,cShape);
      end
    end
    else if pctrl is TEdit then
    begin
      Result := True;
      gtTLWH(3,2,-3,-3);
      with pctrl as TEdit do
        DrawQRLabel(Text,Color,Font,False,False,taLeftJustify);
    end
    else if pctrl is TCombobox then
    begin
      Result := True;
      gtTLWH(3,2,-3,-3);
      with pctrl as TCombobox do
        DrawQRLabel(Text,Color,Font,False,False,taLeftJustify);
    end
    else if pctrl is TDateTimePicker then
    begin
      Result := True;
      gtTLWH(3,2,-3,-3);
      {$IFDEF QRMaker_6}
      s := TDateTimePicker(pctrl).Format;
      if s = '' then
        if TDateTimePicker(pctrl).DateFormat = dfShort then
          s := ShortDateFormat
        else s := LongDateFormat;
      try
        s := FormatDateTime(s, TDateTimePicker(pctrl).DateTime);
      except
        s := '';
      end;
      {$ELSE}
      if TDateTimePicker(pctrl).DateFormat = dfShort then
        s := ShortDateFormat
      else s := LongDateFormat;
      s := FormatDateTime(s, TDateTimePicker(pctrl).DateTime);
      {$ENDIF}
      with pctrl as TDateTimePicker do
        DrawQRLabel(s,Color,Font,False,False,taLeftJustify);
    end
    else if pctrl is TMaskEdit then
    begin
      Result := True;
      gtTLWH(3,2,-3,-3);
      with pctrl as TMaskEdit do
        DrawQRLabel(Text,Color,Font,False,False,taLeftJustify);
    end
    else if pctrl is TMemo then
    begin
      Result := True;
      gtTLWH(3,2,-3,-3);
      with pctrl as TMemo do
        DrawQRMemo(Lines,Color,Font,False,False,WordWrap,Alignment);
    end
    else if pctrl is TRichEdit then
    begin
      Result := True;
      gtTLWH(2,1,-1,-2);
      with pctrl as TRichEdit do
        DrawQRRichText(TRichEdit(pctrl));
    end
    else if pctrl is TImage then
    begin
      Result := True;
      gtTLWH(0,0,0,0);
      with pctrl as TImage do
        DrawQRImage(Picture,AutoSize,Center,Stretch);
   end;
    {
    else if pctrl is TCheckBox then  //TQRMemo
    begin
      Result := True;
      with pctrl as TCheckBox do
      begin

      end
    end
    else if pctrl is TRadioButton then  //TQRLabel
    begin
      Result := True;
      with pctrl as TRadioButton do
      begin

      end
    end
    else if pctrl is TCheckList then  //TQRMemo
    begin
      Result := True;
      with pctrl as TCheckList do
      begin

      end
    end;
    }
  end;

  procedure DrawControl(Ctrl:TWinControl; pTop,pLeft: integer);
  var
    i:integer;
  begin
    for i := 0 to Ctrl.ControlCount-1 do
    begin
      if (not IsPrintCtrl(Ctrl.Controls[i], pTop, pLeft)) and
        (Ctrl.Controls[i] is TWinControl) then
        DrawControl(TWinControl(Ctrl.Controls[i]),
          pTop+Ctrl.Controls[i].Top, pleft + Ctrl.Controls[i].Left);
    end;
  end;

begin
  if Assigned(OnBeforeDraw) then OnBeforeDraw(self);
  if FitToPageWidth or (Control=nil) then RepWidth := 0
  else RepWidth := Control.Width;
  FormatReport(RepWidth);
  inherited DrawReport;
  if Control=nil then exit;
  clr := clBtnFace;
  if IsPublishedProp(Control, 'Color') then
    try
      clr := TColor(GetPropValue(Control, 'Color'));
    except end;
  QRBand := QM_FindBand(rbTitle, BGColor);
  if QRBand.Tag = 1 then
    QRBand.Height := Round(Control.Height * ScaleHT)
  else QRBand.Height := QRBand.Height + Round(Control.Height * ScaleHT);
  DrawControl(Control, QRBand.Height - Round(Control.Height * ScaleHT), LftMargin);
end;

procedure TQMPrintControl.Notification(AComponent: TComponent;
  Operation: TOperation);
begin
  inherited Notification(AComponent, Operation);
  if (Operation = opRemove) and (AComponent = FControl) then FControl := nil;
end;

procedure TQMPrintControl.SetControl(const Value: TWinControl);
begin
  FControl := Value;
  if Value <> nil then Value.FreeNotification(Self);
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区在线观看视频| eeuss影院一区二区三区| 一区二区三区精品视频在线| 久久电影国产免费久久电影| 欧美亚洲国产一区在线观看网站| 一区二区三区四区在线免费观看 | 2022国产精品视频| 成人免费视频网站在线观看| 秋霞影院一区二区| 亚洲激情在线激情| 国产精品情趣视频| 91国产福利在线| 久久久久久免费毛片精品| 日韩高清一区二区| 欧美一区二区三区四区五区 | 国产精品996| 欧美videos大乳护士334| 久久超碰97人人做人人爱| 精品国产免费视频| 国产精品一线二线三线精华| 国产亚洲欧美激情| 91女神在线视频| 亚洲mv大片欧洲mv大片精品| 7777精品伊人久久久大香线蕉的 | 国产成人综合网| 2023国产精品自拍| 91欧美一区二区| 国产在线精品一区二区夜色| 欧美日韩综合在线| 老司机免费视频一区二区| 欧美特级限制片免费在线观看| 亚洲伊人伊色伊影伊综合网| 亚洲精品写真福利| 亚欧色一区w666天堂| 色婷婷狠狠综合| 色综合色综合色综合色综合色综合 | 久久精品网站免费观看| 日韩一区和二区| 欧美一区二区福利在线| 国产二区国产一区在线观看| 亚洲视频免费看| 欧美精品1区2区3区| 成人深夜视频在线观看| 国产三级精品三级| 国产成人精品免费网站| 日韩高清一区二区| 日韩中文字幕1| 中文字幕在线不卡一区| 日韩精品综合一本久道在线视频| 99re亚洲国产精品| 国产69精品久久777的优势| 亚洲成人三级小说| 一区二区三区在线观看动漫 | 综合欧美一区二区三区| 日韩欧美久久久| 在线日韩国产精品| 91在线精品一区二区| 成人久久18免费网站麻豆| 韩国精品主播一区二区在线观看| 视频一区中文字幕| 亚洲欧美一区二区三区极速播放 | 精久久久久久久久久久| 日韩国产高清在线| eeuss鲁片一区二区三区在线看 | 91久久久免费一区二区| 日韩亚洲电影在线| 国产日产精品1区| 亚洲电影一级片| 狠狠色丁香婷婷综合久久片| 国产在线精品视频| 老司机精品视频导航| 亚洲欧美成人一区二区三区| 久久精品久久精品| 精品国产乱码久久久久久图片 | 成人免费视频视频| av不卡在线观看| 欧美裸体bbwbbwbbw| 久久免费电影网| 亚洲日本韩国一区| 久久66热偷产精品| eeuss鲁片一区二区三区| 欧美人牲a欧美精品| 26uuu另类欧美亚洲曰本| 一区二区三区在线观看视频| 亚洲情趣在线观看| 国产一区二区在线视频| 99久久久久久| 精品久久久久久久久久久久久久久久久 | 大胆亚洲人体视频| 国产精品国产三级国产aⅴ入口| 99久久久精品| 丝袜美腿亚洲综合| 欧美激情一区二区三区全黄| 色成人在线视频| 久久精品国内一区二区三区| 国产精品卡一卡二卡三| 在线观看免费视频综合| 国产美女精品人人做人人爽| 久久久久久夜精品精品免费| 亚洲不卡在线观看| 欧美性大战xxxxx久久久| 欧美日韩一本到| 日韩av不卡一区二区| 欧美xxxx老人做受| 色老综合老女人久久久| 日本不卡的三区四区五区| 中文字幕一区二区三区精华液 | 欧美日韩一区二区三区四区五区 | 粉嫩一区二区三区在线看| 亚洲美女屁股眼交3| 久久人人爽爽爽人久久久| 色av成人天堂桃色av| 成人美女视频在线看| 青青草国产成人99久久| 亚洲精品乱码久久久久久黑人| 久久综合国产精品| 欧美一区二区视频免费观看| 91极品美女在线| 成人18视频在线播放| 国产69精品一区二区亚洲孕妇| 久热成人在线视频| 蜜臀99久久精品久久久久久软件| 亚洲精品中文在线观看| ...xxx性欧美| 综合激情网...| 伊人一区二区三区| 亚洲视频精选在线| 一区二区三区在线免费| 一区二区三区高清不卡| 亚洲美女免费视频| 亚洲国产视频网站| 午夜精品国产更新| 久久se精品一区二区| 国产大片一区二区| 成人涩涩免费视频| 欧美色图在线观看| 日韩三级精品电影久久久| 欧美变态tickle挠乳网站| 欧美精品一区二区三区一线天视频| 日韩一级二级三级精品视频| 欧美变态口味重另类| 国产精品天干天干在线综合| 精品日韩在线观看| 成人在线视频首页| 石原莉奈在线亚洲二区| 国产精品高清亚洲| 欧美女孩性生活视频| 成人免费视频播放| 国v精品久久久网| 亚洲成人av一区二区| 成人一级片在线观看| 国产日韩亚洲欧美综合| 成人av网站免费观看| 亚洲男同性视频| 欧美日韩夫妻久久| 美腿丝袜亚洲一区| 国产婷婷精品av在线| www.66久久| 日韩精品亚洲专区| 久久理论电影网| 91捆绑美女网站| 青青草97国产精品免费观看无弹窗版| 日韩一区二区影院| 成人网男人的天堂| 亚洲高清免费视频| 久久伊人中文字幕| 91社区在线播放| 日本不卡1234视频| 国产精品情趣视频| 69堂国产成人免费视频| 国产盗摄女厕一区二区三区| 一区二区三区精品在线观看| 日韩一区二区三区四区| 成人一二三区视频| 五月婷婷激情综合| 国产欧美视频在线观看| 91黄色免费版| 国产一区二区调教| 亚洲主播在线播放| 26uuu成人网一区二区三区| 91在线视频免费91| 麻豆高清免费国产一区| 亚洲四区在线观看| 日韩欧美一区二区三区在线| av一区二区不卡| 狠狠狠色丁香婷婷综合久久五月| 中文字幕一区二区三区视频| 日韩片之四级片| 一本色道亚洲精品aⅴ| 美女视频黄免费的久久| 亚洲精品免费在线观看| 欧美精品一区二区三区在线| 欧美日韩三级在线| 菠萝蜜视频在线观看一区| 免费美女久久99| 亚洲福利一二三区| 自拍视频在线观看一区二区| 久久综合九色综合欧美就去吻| 欧美视频在线播放| 97se亚洲国产综合自在线不卡|