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

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

?? qm_rconsole.pas

?? 計算機系畢業設計
?? PAS
?? 第 1 頁 / 共 4 頁
字號:
          begin
            LineHg := LineHg + R_TitleRowHeights[p];
            inc(p);
          end;
          QRLabel := TQRLabel.Create(QROwner);
          QRLabel.Parent := QRHBand;
          with QRLabel do
          begin
            AutoSize := false;
            WordWrap := False;
            Font.Assign(Columns[j-1].Title.Font);
            Left := LineLft + R_LftMargin;
            Caption := R_Titles[j-1][k];
            iTmp := TextRow(Caption);
            Height := iTmp * QM_TextHeight(Font); //R_TitleTextHg;
            Width := LineWd - 3;
             Top := LineTp + (LineHg - Height) div 2;
            Alignment := Columns[j-1].Title.Alignment;
            Transparent := True;
            if rgTitleBottomLines in Grid.Options then
            begin
              Frame.DrawBottom := True;
              Frame.Color := Columns[j-1].Title.Font.Color;
            end;
            if NeedName then
              Name := QM_UniqueName(QROwner, 'QRLabel');
          end;
        end;
        LineTp := LineTp + R_TitleRowHeights[k];
        inc(k);
      end;
      LineLft := LineLft + Columns[j-1].Width;
    end;
    if rgLines in Grid.Options then
      P_DrawTitleLine();
    Hline.Free;
    Vline.Free;
  end;

  procedure P_DrawSummaryLine;
  var
    i:integer;
  begin
    LineLft := 0;
    if rgColLines in Grid.Options then
    for i := 0 to Columns.Count - 1 do
    begin
      if (R_LRLineWd > 0) or (i > 0) then
      begin
        QRShape := TQRShape.Create(QROwner);
        QRShape.Parent := QRBBand;
        with QRShape do
        begin
          Height := R_FooterHeight + 1;
          Brush.Color := R_LineColor;
          pen.Color := R_LineColor;
          Left := LineLft + R_LftMargin;
          Top := -1;
          if i=0 then Width := R_LineWd else Width := 1;
          if NeedName then
            Name := QM_UniqueName(QROwner, 'QRShape');
        end;
      end;
      LineLft := LineLft + Columns[i].Width;
    end;

    if (R_LRLineWd <> 0) and (rgColLines in Grid.Options) then
    begin
      QRShape := TQRShape.Create(QROwner);
      QRShape.Parent := QRBBand;
      with QRShape do
      begin
        Height := R_FooterHeight + 1;
        Brush.Color := R_LineColor;
        pen.Color := R_LineColor;
        Left := LineLft - R_LineWd + 1 + R_LftMargin;
        Top := -1;
        Width := R_LRLineWd;
        if NeedName then
          Name := QM_UniqueName(QROwner, 'QRShape');
      end;
    end;
    if rgRowLines in Grid.Options then
    for i := 1 to Grid.FooterRowCount - 1 do
    begin
      QRShape := TQRShape.Create(QROwner);
      QRShape.Parent := QRBBand;
      with QRShape do
      begin
        Height := 1;
        Brush.Color := R_LineColor;
        pen.Color := R_LineColor;
        Left := R_LftMargin;
        Top := i*R_DetailHeight - 1;
        Width := R_RepWidth + 1;
        if NeedName then
          Name := QM_UniqueName(QROwner, 'QRShape');
      end;
    end;
  end;

  function P_GetFooterValue(iRow,iCol: Integer): string;
  begin
    if iRow < Columns[iCol].Footers.Count then
      Result := Columns[iCol].Footers[iRow].Caption
    else
      Result := Columns[iCol].Footer.Caption;
  end;

  procedure ColumnScale;
  var
    T_Real: Real;
    i,ReportWidth,R_PageWd,R_ReportWd,T_Val: Integer;
  begin
    ReportWidth := 0;
    for i:=0 to Columns.Count-1 do
      Inc(ReportWidth, Columns[i].Width);
    R_PageWd := QM_FindBand(rbColumnHeader, BGColor).Width;
    QMQuickRep.Bands.HasColumnHeader := False;
    if R_PageWd < 10 then R_PageWd := 10;
    if ReportWidth < 10 then R_ReportWd := R_PageWd
    else R_ReportWd := ReportWidth;
    R_ScaleWL := Scale/100;
    T_Val := Round(R_ReportWd * R_ScaleWL);
    T_Real := Round(R_PageWd/R_ReportWd * 100)/100;
    if rcFitToPageWidth in Options then
    begin
      if (rcAllowExtend in Options) or (T_Val > R_PageWd) then
        if rcScaleWhole in Options then
      begin
        R_ScaleWL := T_Real;
      end else
        R_ScaleWL := T_Real;
    end;
    R_ScaleWL := QM_GetFloatValue(R_ScaleWL, 0.1, 5);
    if (rcCenter in Options) and (T_Val < R_PageWd)
      and ( not ((rcFitToPageWidth in Options) and (rcAllowExtend in Options))) then
      R_LftMargin := (R_PageWd - T_Val) div 2 - 1
    else R_LftMargin := 0;
  end;

begin
  if GridType = gtGrid then
  begin
    Columns := TQMColumns.Create(self, TQMColumn);
    Columns.Assign(Grid.Columns);
    Columns.Grid := Grid;
  end else
    Columns := Grid.Columns;
  if Page.Columns = 1 then
  begin
    R_ScaleWL := ScaleWL;
    R_LftMargin := LftMargin;
  end else ColumnScale();
  if rcBodyFont in Options then
    R_TitleTextHg := QM_TextHeight(Font)
  else R_TitleTextHg := QM_TextHeight(Grid.TitleFont);
  R_TitleTextHg := Round(R_TitleTextHg * ScaleHT);
  if Grid.TitleHeight = 0 then
    R_TBMargin := Round((QM_TextHeight(Grid.TitleFont) + 6)*ScaleHT) -  R_TitleTextHg
  else
    R_TBMargin := Round(Grid.TitleHeight*ScaleHT) - R_TitleTextHg;
  if Grid.RowHeight =0 then
    R_DetailHeight := Round((QM_TextHeight(Grid.Font) + 5)*ScaleHT)
  else
    R_DetailHeight := Round(Grid.RowHeight * ScaleHT);
  if (Columns.Count = 0) or (R_DetailHeight < 5) then Exit;
  B_Titles := (rgTitles in Grid.Options) and (R_TitleTextHg + R_TBMargin >= 5);
  QMQuickRep.DataSet := DataSet;
  R_RepWidth := 0;
  SetLength(R_Titles, Columns.Count);
  for i := 0 to Columns.Count - 1 do
  begin
    R_Titles[i] := TStringList.Create;
    tmpStr := QM_ReplaceStr(Columns[i].Title.Caption, '||', '|');
    if LeftStr(tmpStr,1)='|' then tmpStr := RightStr(tmpStr, Length(tmpStr) - 1);
    if RightStr(tmpStr,1)='|' then tmpStr := LeftStr(tmpStr, Length(tmpStr) - 1);
    R_Titles[i].Add(tmpStr);
    Columns[i].Width := Round(Columns[i].Width * R_ScaleWL);
    Inc(R_RepWidth,Columns[i].Width);
    if rcBodyFont in Options then
    begin
      Columns[i].Title.Font.Assign(Font);
      Columns[i].Font.Assign(Font);
      Columns[i].Footer.Font.Assign(Font);
      for j := 0 to Columns[i].Footers.Count - 1 do
        Columns[i].Footers[j].Font.Assign(Font);
    end;
    Columns[i].Title.Font.Height := Round(Columns[i].Title.Font.Height * ScaleHT);
    Columns[i].Title.Font.Color := QM_PrintColor(self, Columns[i].Title.Font.Color);
    Columns[i].Font.Height := Round(Columns[i].Font.Height*ScaleHT);
    Columns[i].Font.Color := QM_PrintColor(self, Columns[i].Font.Color);
    Columns[i].Footer.Font.Height := Round(Columns[i].Footer.Font.Height * ScaleHT);
    Columns[i].Footer.Font.Color := QM_PrintColor(self, Columns[i].Footer.Font.Color);
    for j := 0 to Columns[i].Footers.Count - 1 do
    begin
      Columns[i].Footers[j].Font.Height := Round(Columns[i].Footers[j].Font.Height * ScaleHT);
      Columns[i].Footers[j].Font.Color := QM_PrintColor(self, Columns[i].Footers[j].Font.Color);
    end;
  end;
  if Grid.TitleMulti then
    R_TitleRowCount := DeCaption()
  else
    R_TitleRowCount := 1;
  R_LineColor := QM_PrintColor(self, LineColor);
  if rgBoldFrame in Grid.Options then R_LineWd := 2 else R_LineWd := 1;
  if not (rgLRLines in Grid.Options) then R_LRLineWd := 0
  else R_LRLineWd := R_LineWd;
  if B_Titles or (rgKeepTitleHeight in Grid.Options) then P_DrawTitle();
  if ((not B_Titles) or ((rgKeepTitleHeight in Grid.Options) and (not B_Titles)))
     and ((rgLines in Grid.Options) and (rgRowLines in Grid.Options)) then
  begin
    QRHBand := QM_FindBand(rbColumnHeader, BGColor);
    QRHBand.Height := QRHBand.Height + R_LineWd + 1;
    QRShape := TQRShape.Create(QROwner);
    QRShape.Parent := QRHBand;
    with QRShape do
    begin
      Height := R_LineWd;
      Brush.Color := R_LineColor;
      pen.Color := R_LineColor;
      Left := R_LftMargin;
      Top := QRHBand.Height - R_LineWd - 1;
      Width := R_RepWidth + 1;
      if NeedName then
        Name := QM_UniqueName(QROwner,'QRShape');
    end;
  end;
  //Draw Detail
  QMQuickRep.Bands.HasDetail := False;
  QRBBand := QM_FindBand(rbDetail, BGColor);
  QRBBand.Height := R_DetailHeight;
  LineLft := 2;
  if HasDataSet then
  begin
    for i := 0 to Columns.Count - 1 do
    begin
      if Columns[i].Width < 6 then
      begin
        LineLft := LineLft + Columns[i].Width;
        Continue;
      end;
      if Columns[i].FieldName <> '' then
      begin
        QRExpr := TQRExpr.Create(QROwner);
        QRExpr.Parent := QRBBand;
        with QRExpr do
        begin
          AutoSize := Columns[i].AutoSize;
          WordWrap := False;
          Transparent := True;
          Font.Assign(Columns[i].Font);
          Width := Columns[i].Width - 3;
          Left := LineLft + R_LftMargin;
          Mask := Columns[i].DisplayFormat;
          if Copy(Columns[i].FieldName,1,1)='=' then
            Expression := Copy(Columns[i].FieldName,2,Length(Columns[i].FieldName) - 1)
          else
          begin
            if Columns[i].HideZero then
              Expression := 'if([' + Columns[i].FieldName + ']=0,'''',[' + Columns[i].FieldName + '])'
            else
              Expression := '[' + Columns[i].FieldName + ']';
          end;
          if (Grid.DetailAlign = alTop) or (R_DetailHeight < QM_TextHeight(Font)) then
            Top := 1
          else if Grid.DetailAlign = alBottom then
            Top := R_DetailHeight - QM_TextHeight(Font) - 2
          else
            Top := (R_DetailHeight - QM_TextHeight(Font)) div 2;
          Alignment := Columns[i].Alignment;
          if NeedName then
            Name := QM_UniqueName(QROwner,'QRExpr');
        end;
      end;
      LineLft := LineLft + Columns[i].Width;
    end;
  end else
  begin
    SetLength(QRLabels, Columns.Count);
    iTmp := 0;
    for i := 0 to Columns.Count - 1 do
    begin
      if Columns[i].Width < 6 then
      begin
        LineLft := LineLft + Columns[i].Width;
        Continue;
      end;
      Inc(iTmp);
      QRLabel := TQRLabel.Create(QROwner);
      QRLabel.Parent := QRBBand;
      QRLabels[i] := QRLabel;
      with QRLabel do
      begin
        AutoSize := Columns[i].AutoSize;
        WordWrap := False;
        Transparent := True;
        Font.Assign(Columns[i].Font);
        Width := Columns[i].Width - 3;
        Left := LineLft + R_LftMargin;
        if (Grid.DetailAlign=alTop) then {or (R_DetailHeight<QM_TextHeight(Font))} 
          Top := 1
        else if Grid.DetailAlign=alBottom then
          Top := R_DetailHeight - QM_TextHeight(Font) - 1
        else
          Top := (R_DetailHeight - QM_TextHeight(Font)) div 2;
        Alignment := Columns[i].Alignment;
        if NeedName then
          Name := QM_UniqueName(QROwner,'QRLabel');
      end;
      LineLft := LineLft + Columns[i].Width;
    end;
    SetLength(QRLabels, iTmp);
    QMQuickRep.OnNeedData := OnNeedData;
  end;
  if rgLines in Grid.Options then
    P_DrawBodyLine();
  //Draw GridFooter
  R_FooterHeight := R_DetailHeight * Grid.FooterRowCount;
  QRBBand := QM_FindBand(rbSummary, BGColor);
  if (rgRowLines in Grid.Options) and (rgLines in Grid.Options) then
  begin
    if QRBBand.Tag = 1 then QRBBand.Height := 1;
    QRShape := TQRShape.Create(QROwner);
    QRShape.Parent := QRBBand;
    with QRShape do
    begin
      if rgBoldFrame in Grid.Options then
        Height :=2
      else Height := 1;
      Brush.Color := R_LineColor;
      pen.Color := R_LineColor;
      Left := R_LftMargin;
      Top := -1;
      Width := R_RepWidth + 1;
      if NeedName then
        Name := QM_UniqueName(QROwner, 'QRShape');
    end;
  end;
  if Grid.FooterRowCount > 0 then
  begin
    QM_SpaceBand(R_FooterHeight, QRBBand);
    for i := 0 to Grid.FooterRowCount - 1 do
    begin
      LineLft := 2;
      for j := 0 to Columns.Count - 1 do
      begin
        if (Trim(P_GetFooterValue(i,j)) = '') or (Columns[j].Width < 6) then
        begin
          LineLft := LineLft + Columns[j].Width;
          Continue;
        end;
        QRLabel := TQRLabel.Create(QROwner);
        QRLabel.Parent := QRBBand;
        with QRLabel do
        begin
          AutoSize := Columns[j].AutoSize;
          WordWrap := False;
          Transparent := True;
          if Columns[j].Footers.Count > i then
          begin
            Font.Assign(Columns[j].Footers[i].Font);
            Alignment := Columns[j].Footers[i].Alignment;
          end else
          begin
            Font.Assign(Columns[j].Footer.Font);
            Alignment := Columns[j].Footer.Alignment;
          end;
          Height := QM_TextHeight(Font);
          Left := LineLft + R_LftMargin;
          Caption := P_GetFooterValue(i,j);
          Width := Columns[j].Width - 3;
          if (Grid.DetailAlign = alTop) or (R_DetailHeight < QM_TextHeight(Font)) then
            Top := i * (R_DetailHeight) + 1
          else if Grid.DetailAlign = alBottom then
            Top := (i + 1) * (R_DetailHeight) - QM_TextHeight(Font) - 1
          else
            Top := i * (R_DetailHeight) + (R_DetailHeight - QM_TextHeight(Font)) div 2;
          if NeedName then
            Name := QM_UniqueName(QROwner, 'QRLabel');
          if i = Grid.FooterRowCount - 1 then SendToBack;
        end;
        LineLft := LineLft + Columns[j].Width;
      end;
    end;
    if rgLines in Grid.Options then
      P_DrawSummaryLine();
  end;
  //Free Memory
  for i := 0 to Columns.Count - 1 do
    R_Titles[i].Free;
  Columns.Clear;
  if GridType = gtGrid then Columns.Free;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av电影一区二区| 日韩一区二区精品葵司在线| 成人app下载| 欧美国产国产综合| 成人激情动漫在线观看| 国产精品短视频| 欧美性受极品xxxx喷水| 天天色天天操综合| 日韩精品中文字幕一区| 国产福利精品一区二区| 国产精品第五页| 欧美日韩中文字幕一区二区| 免费在线观看一区二区三区| 久久久久久久久一| 色婷婷精品久久二区二区蜜臀av| 夜色激情一区二区| 精品国产凹凸成av人网站| 风间由美一区二区三区在线观看| 亚洲欧美日韩国产中文在线| 7777精品伊人久久久大香线蕉完整版| 99re热这里只有精品免费视频 | 国产福利91精品一区| 久久精品人人爽人人爽| 色网站国产精品| 久久精品999| 亚洲欧美日韩国产中文在线| 日韩视频免费直播| 99国产精品久久久| 亚洲一二三四区不卡| 欧美xingq一区二区| eeuss鲁一区二区三区| 亚洲国产视频a| 国产精品伦一区| 91麻豆123| 国产精品免费久久| 成人中文字幕合集| 中文字幕av一区二区三区| 亚洲国产乱码最新视频| 午夜精品在线看| 91久久国产综合久久| 欧美精品一区二区三区蜜臀| 中文字幕免费不卡| 精品日韩一区二区三区| 久久久影视传媒| 亚洲午夜一二三区视频| 国产一区二区91| 久久久亚洲午夜电影| 亚洲成人动漫精品| 麻豆国产欧美一区二区三区| 麻豆成人久久精品二区三区小说| 午夜日韩在线观看| 日韩视频国产视频| 午夜精品久久一牛影视| 欧美性猛交xxxxxxxx| 日韩精品91亚洲二区在线观看| 日韩欧美一区电影| 国产成人精品免费看| 亚洲你懂的在线视频| 91精品国产综合久久久久久 | 欧美国产一区在线| 99视频一区二区三区| 日本女优在线视频一区二区 | 美腿丝袜亚洲综合| 亚洲精品五月天| 久久嫩草精品久久久精品一| 国产传媒欧美日韩成人| 一区二区三区在线观看视频| 亚洲精品在线免费播放| 欧美日韩国产首页| 成人免费视频视频| 韩国中文字幕2020精品| 日韩电影免费在线观看网站| 国产精品久久久久一区二区三区| 精品久久久久久久久久久久久久久久久 | 免费欧美日韩国产三级电影| 日韩久久久精品| 欧美日韩中字一区| 色婷婷综合久久久中文一区二区| 日韩不卡免费视频| 五月天丁香久久| 亚洲欧美综合另类在线卡通| 欧美激情一二三区| 国产精品伦一区| 亚洲一区在线观看免费观看电影高清| 色爱区综合激月婷婷| 99久久夜色精品国产网站| 精品区一区二区| 91在线视频播放地址| 一本大道久久a久久综合婷婷| 国产高清成人在线| 色婷婷精品久久二区二区蜜臂av | 日韩高清一区二区| 国产精品一区不卡| 国产99久久精品| 成人午夜看片网址| 视频一区二区不卡| 亚洲视频在线一区二区| 秋霞成人午夜伦在线观看| 日韩av网站免费在线| 国产成人av电影在线观看| 欧美性猛交xxxx黑人交| 久久你懂得1024| 亚洲成av人片在线观看| 日韩精品久久理论片| 成人h版在线观看| 日韩午夜激情视频| 国产91精品精华液一区二区三区| 欧美高清在线一区二区| 一区二区三区**美女毛片| 麻豆成人综合网| 日本精品裸体写真集在线观看| 欧美国产日韩亚洲一区| 综合久久国产九一剧情麻豆| 波多野结衣亚洲一区| 国产精品一区二区三区乱码| 国产suv精品一区二区三区| 欧美日韩高清影院| 亚洲天堂中文字幕| eeuss鲁一区二区三区| 日韩免费观看2025年上映的电影| 成人听书哪个软件好| 七七婷婷婷婷精品国产| 国产精品一品二品| 91精品福利在线一区二区三区| 亚洲激情在线激情| 色拍拍在线精品视频8848| 亚洲专区一二三| 风间由美中文字幕在线看视频国产欧美 | 国产精品情趣视频| 国产亚洲精品精华液| 狠狠色丁香婷婷综合久久片| 精品动漫一区二区三区在线观看| 亚洲va在线va天堂| 欧美久久久久久久久久| 免费视频最近日韩| 精品播放一区二区| 99国产精品视频免费观看| 一区二区三区不卡视频| 这里只有精品视频在线观看| 久久se这里有精品| 亚洲欧美日韩在线播放| 一级女性全黄久久生活片免费| 免费成人在线影院| 欧美变态tickle挠乳网站| 久久66热re国产| 欧美大胆人体bbbb| 国产黄人亚洲片| 亚洲激情男女视频| 亚洲成人午夜影院| 国产成人免费在线观看| 日韩精品一区二区三区蜜臀| 国内精品在线播放| 亚洲欧美激情视频在线观看一区二区三区 | 欧美日韩高清在线| 亚洲风情在线资源站| 久久99国内精品| 欧美色涩在线第一页| 国产亚洲精品资源在线26u| 播五月开心婷婷综合| 天堂蜜桃91精品| 中文字幕一区二区在线观看| 91精品国产福利| 色综合咪咪久久| 国产激情视频一区二区三区欧美| 亚洲欧美欧美一区二区三区| 欧美一区二区免费观在线| 成人免费毛片app| 久久 天天综合| 六月丁香综合在线视频| 亚洲欧美日韩久久| 精品国产91洋老外米糕| 91美女福利视频| 国产一区二区三区精品视频| 亚洲国产成人porn| 17c精品麻豆一区二区免费| 日韩精品一区二区三区三区免费| 成人丝袜视频网| 国产日韩欧美电影| 欧美丰满嫩嫩电影| www.日韩大片| 国产精品一二三四| 麻豆精品一区二区三区| 一区二区三区高清不卡| 久久中文娱乐网| 精品国产一二三区| 日韩女优毛片在线| 欧美日韩一区二区欧美激情| 国产精品小仙女| 久久电影国产免费久久电影| 亚洲成人av在线电影| 蜜臀av性久久久久蜜臀aⅴ四虎 | av激情成人网| 欧美精品久久一区| 国产欧美1区2区3区| 久久精品亚洲精品国产欧美kt∨| 91精品国产综合久久久久 | 久久先锋影音av| 国产精品久久久久一区二区三区| 久久亚洲综合av| 国产精品国产成人国产三级|