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

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

?? qm_rconsole.pas

?? 計(jì)算機(jī)系畢業(yè)設(shè)計(jì)
?? PAS
?? 第 1 頁 / 共 4 頁
字號(hào):
      QRLabels[i].Caption := GetData(i);
    QMQuickRep.QRPrinter.Progress := (Longint(FCurrentIndex) * 100) div FDataRowCount;
  end else
    QMQuickRep.QRPrinter.Progress := 100;
  Inc(FCurrentIndex);
end;

procedure TQMDataReport.SetGrid(const Value: TQMCustomGrid);
begin
  FGrid.Assign(Value);
end;

function TQMDataReport.GridType: TQMGridType;
begin
  Result := gtGrid;
end;

procedure TQMDataReport.DrawQMGrid(HasDataSet: Boolean);
var
  R_TBMargin, R_DetailHeight, R_FooterHeight: Integer;
  R_Titles: array of TStringList;
  R_RepWidth, R_TitleRowCount, R_TitleTextHg: Integer;
  R_TitleRowHeights: array of Integer;
  R_LineWd, R_LRLineWd, R_TitleHeight, R_LftMargin: Integer;
  R_ScaleWL: Real;
  R_LineColor: TColor;
  B_Titles: Boolean;
  LineLft,LineTp,LineHg,LineWd: Integer;
  Vline,Hline,tList: TStringList;
  i,j,k,p,iTmp: Integer;
  tmpStr,s: string;
  PenStyle: Char;

  QRLabel: TQRLabel;
  QRExpr: TQRExpr;
  QRShape: TQRShape;
  QRHBand,QRBBand: TQRBand;

  Columns: TQMColumns;
  
  function DeCaption: Integer;
  var
    ps,i,iCount: Integer;
    InTxt: string;
  begin
    Result := 1;
    for i := 0 to Columns.Count - 1 do
    begin
    InTxt := R_Titles[i][0];
      R_Titles[i].Clear;
      iCount := 0;
      Repeat
        ps := Pos('|', InTxt);
      if ps<1 then ps := Length(InTxt) + 1;
        R_Titles[i].Add(Copy(InTxt,1,ps - 1));
        Delete(InTxt,1,ps);
        Inc(iCount);
        if iCount > Result then Result := iCount;
      Until Length(InTxt)<1;
    end;
  end;

  procedure GetTitleInfo;
  var
    k,p,tmpVal: Integer;
    tmpStr: String;
  begin
    for k := 0 to Columns.Count - 1 do
    begin
      for p := 0 to R_Titles[k].Count - 1 do
      begin
        if Grid.TitleWordWrap then
        begin
          tmpVal := (Columns[k].Width - 3) div ((abs(Columns[k].Title.Font.Height) + 1) div 2);
          if tmpVal < 2 then tmpVal := 2;
          tmpStr := R_Titles[k][p];
          QM_TrunCharA(tmpStr,tmpVal);
        end else
        begin
          tmpStr := R_Titles[k][p];
          QM_TrunCharB(tmpStr, '/');
        end;  
        if RightStr(tmpStr,1) = #13 then tmpStr := Copy(tmpStr, 1, Length(tmpStr) - 1);
        R_Titles[k][p] := tmpStr;
      end;
    end;
  end;

  function TextRow(Txt:String): Integer;
  var
    l: Integer;
  begin
    Result := 1;
    for l := 1 to Length(Txt) do
      if Txt[l]=#13 then Inc(Result);
  end;

  procedure P_DrawTitleLine;
  var
    j:integer;
  begin
    LineTp := 0;
    if rgRowLines in Grid.Options then
    for j := 0 to R_TitleRowCount do
    begin
      LineLft := 0;
      k := 1;
      While (k <= Columns.Count) do
      begin
        PenStyle := HLine[j][k];
        if (PenStyle <> '0') then
        begin
          QRShape := TQRShape.Create(QROwner);
          QRShape.Parent := QRHBand;
          with QRShape do
          begin
            if PenStyle='2' then Height := 2 else Height := 1;
            Brush.Color := R_LineColor;
            pen.Color := R_LineColor;
            Left := LineLft + R_LftMargin;
            Top := LineTp;
            LineWd := 0;
            While (k <= Columns.Count) and (Hline[j][k] = PenStyle)  do
            begin
              LineWd := LineWd + Columns[k - 1].Width;
              LineLft := LineLft + Columns[k - 1].Width;
              inc(k);
            end;
            Width := LineWd + 1;
            if NeedName then
              Name := QM_UniqueName(QROwner, 'QRShape');
          end;
        end
        else
        begin
          LineLft := LineLft + Columns[k - 1].Width;
          inc(k);
        end;
      end;
      LineTp := LineTp + R_TitleRowHeights[j];
    end;

    LineLft := 0;
    if rgColLines in Grid.Options then
    for j := 1 to Columns.Count do
    begin
      k := 0;
      LineTp := 0;

      if (j > 1) or (R_LRLineWd > 0) then
      While k<R_TitleRowCount do
      begin
        PenStyle := Vline[k][j];
        if (PenStyle <> '0') or (k=R_TitleRowCount - 1) then
        begin
          QRShape := TQRShape.Create(QROwner);
          QRShape.Parent := QRHBand;
          with QRShape do
          begin
            if PenStyle='2' then Width := 2 else Width := 1;
            Brush.Color := R_LineColor;
            pen.Color := R_LineColor;
            Top := LineTp;
            Left := LineLft + R_LftMargin;
            LineHg := 0;
            While (k<R_TitleRowCount) and (Vline[k][j]=PenStyle) do
            begin
              LineHg := LineHg + R_TitleRowHeights[k];
              LineTp := LineTp + R_TitleRowHeights[k];
              inc(k);
            end;
            Height := LineHg + 1;
            if NeedName then
              Name := QM_UniqueName(QROwner, 'QRShape');
          end;
        end
        else
        begin
          LineTp := LineTp + R_TitleRowHeights[k];
          inc(k);
        end;
      end;
      LineLft := LineLft + Columns[j-1].Width;
    end;

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

  procedure P_DrawBodyLine;
  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_DetailHeight + 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_DetailHeight + 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
    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 := R_DetailHeight - 1;
        Width := R_RepWidth + 1;
        if NeedName then
          Name := QM_UniqueName(QROwner, 'QRShape');
      end;
    end;
  end;

  procedure P_DrawTitle;
  var
    i,j,k: Integer;
  begin
    GetTitleInfo();
    for i := 0 to Columns.Count - 1 do
      for j := 1 to R_TitleRowCount - R_Titles[i].Count do
        R_Titles[i].Add('');
    tList := TStringList.Create;
    for i := 0 to Columns.Count - 1 do
    begin
      j := 1;
      while j < R_TitleRowCount - 1 do
      begin
        if not (((i=0) and (R_Titles[i][j-1]=R_Titles[i+1][j-1])) or
          ((i = Columns.Count - 1) and (R_Titles[i][j-1] = R_Titles[i-1][j-1])) or
          (((i > 0) and (i < Columns.Count - 1)) and ((R_Titles[i][j-1] = R_Titles[i+1][j-1]) or (R_Titles[i][j-1]=R_Titles[i-1][j-1]))))
          then
        begin
          if R_Titles[i][R_TitleRowCount - 1] <> '' then Break;
          tList.Clear;
          for k := R_TitleRowCount - 1 downto j do
            if R_Titles[i][k] <> '' then
            begin
              tList.Add(R_Titles[i][k]);
              R_Titles[i][k] := '';
            end;
          for k := 0 to tList.Count - 1 do
            R_Titles[i][R_TitleRowCount - 1 - k] := tList[k];
          R_Titles[i][j] := '';
          Break;
        end;
        Inc(j);
      end;
    end;
    tList.Free;

    SetLength(R_TitleRowHeights, R_TitleRowCount);
    for i := 0 to R_TitleRowCount - 1 do
      R_TitleRowHeights[i] := R_TitleTextHg + R_TBMargin;
    for i := 0 to Columns.Count - 1 do
    begin
      j := 0;
      while j<R_TitleRowCount do
      begin
        p := 1;
        while (j + p<R_TitleRowCount) and (R_Titles[i][j + p]='') do Inc(p);
        iTmp := (TextRow(R_Titles[i][j])*R_TitleTextHg + R_TBMargin) div p;
        for k := j to j + p - 1 do
          if iTmp > R_TitleRowHeights[k] then R_TitleRowHeights[k] := iTmp;
        j := j + p;
      end;
    end;
    R_TitleHeight := 0;
    for i := 0 to R_TitleRowCount - 1 do
      Inc(R_TitleHeight,R_TitleRowHeights[i]);

    QMQuickRep.Bands.HasColumnHeader := False;
    QRHBand := QM_FindBand(rbColumnHeader, BGColor);
    if not B_Titles then
    begin
      QRHBand.Height := R_TitleHeight;
      Exit;
    end;

    Vline := TStringList.Create;
    for i := 0 to R_TitleRowCount - 1 do
    begin
      s := IntToStr(R_LineWd);
      for j := 0 to Columns.Count - 2 do
      begin
        tmpStr := R_Titles[j + 1][i];
        if ((tmpStr=R_Titles[j][i]) and (tmpStr <> '')) then
          s := s + '0'
        else s := s + '1';
      end;
      s := s + IntToStr(R_LineWd);
      Vline.Add(s);
    end;
    Hline := TStringList.Create;
    s := '';
    tmpStr := IntToStr(R_LineWd);
    for i := 1 to Columns.Count do s := s + tmpStr;
    Hline.Add(s);
    for i := 1 to R_TitleRowCount - 1 do
    begin
      s := '';
      for j := 0 to Columns.Count - 1 do
      begin
        tmpStr := R_Titles[j][i];
        if (tmpStr='') then s := s + '0'
        else s := s + '1';
      end;
      Hline.Add(s);
    end;
    s := '';
    if rgBoldHeaderLine in Grid.Options then tmpStr := '2' else tmpStr := '1';
    for i := 1 to Columns.Count do s := s + tmpStr;
    Hline.Add(s);

    if rgBoldHeaderLine in Grid.Options then
      QRHBand.Height := R_TitleHeight + 2
    else
      QRHBand.Height := R_TitleHeight + 1;
    lineLft := 2;
    for j := 1 to Columns.Count do
    begin
      if Columns[j-1].Width < 6 then
      begin
        LineLft := LineLft + Columns[j-1].Width;
        continue;
      end;
      k := 0;
      LineTp := 1;
      While k < R_TitleRowCount do
      begin
        PenStyle := Vline[k][j];
        if ((PenStyle <> '0') or (k=R_TitleRowCount - 1))
          and (R_Titles[j-1][k] <> '') then
        begin
          LineWd := Columns[j-1].Width;
          if k<R_TitleRowCount - 1 then
          begin
            p := j + 1;
            while (p <= Columns.Count) and (Vline[k][p] = '0') do
            begin
              LineWd := LineWd + Columns[p-1].Width;
              inc(p);
            end;
          end;
          LineHg := R_TitleRowHeights[k];
          p := k + 1;
          while (k<R_TitleRowCount) and (Hline[p][j]='0') do

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一级精品久久| 久久九九99视频| 欧美体内she精视频| 99精品欧美一区二区三区小说 | 国产精品亚洲第一| 国产一区二区三区久久久| 精品一区二区三区影院在线午夜 | 99久久er热在这里只有精品66| 99久久精品免费| 午夜视频一区二区| 国产精品乱码一区二区三区软件| 成人精品免费网站| av一区二区三区四区| 91麻豆成人久久精品二区三区| 色综合视频在线观看| 91久久精品国产91性色tv| 欧美三级电影网站| 91精品久久久久久蜜臀| 精品国产网站在线观看| 国产日韩精品一区二区三区| 国产精品久久久久aaaa樱花| 亚洲日本va在线观看| 亚洲国产欧美一区二区三区丁香婷| 亚洲成人av免费| 蜜臂av日日欢夜夜爽一区| 国产高清久久久| 色婷婷综合久久久| 欧美一区午夜精品| 久久久噜噜噜久噜久久综合| 国产精品久久福利| 婷婷激情综合网| 国产在线国偷精品产拍免费yy| 成人午夜精品在线| 亚洲午夜久久久久久久久电影网| 日本大胆欧美人术艺术动态| 韩国女主播成人在线| 成人h动漫精品一区二区| 91丝袜美女网| 在线观看91av| 国产精品免费免费| 日本不卡一区二区三区高清视频| 国产精品123区| 欧美性猛交xxxxxx富婆| 欧美精品一区二区三区高清aⅴ | 成人深夜福利app| 91传媒视频在线播放| 精品播放一区二区| 亚洲欧美另类小说视频| 九色综合狠狠综合久久| 9色porny自拍视频一区二区| 欧美一区二区三区精品| 自拍偷拍亚洲欧美日韩| 日本美女视频一区二区| 99精品久久只有精品| 日韩视频免费观看高清在线视频| 国产精品丝袜久久久久久app| 亚洲大型综合色站| 国产91精品一区二区| 制服丝袜一区二区三区| 日韩美女视频19| 黑人巨大精品欧美黑白配亚洲| 色综合色狠狠综合色| 久久综合九色综合97婷婷女人| 樱花影视一区二区| 国产91精品一区二区麻豆亚洲| 宅男在线国产精品| 亚洲男人天堂av| 国产乱理伦片在线观看夜一区| 91精品午夜视频| 亚洲精品大片www| 成人激情电影免费在线观看| 日韩欧美国产一区二区在线播放| 亚洲综合色婷婷| 成人美女视频在线观看| 久久婷婷国产综合国色天香| 日产精品久久久久久久性色| 色播五月激情综合网| 国产精品区一区二区三| 国产精品一区免费视频| 欧美一区午夜视频在线观看| 亚洲综合区在线| 91在线看国产| 国产精品情趣视频| 国产成人午夜电影网| 精品蜜桃在线看| 日本不卡一区二区三区| 欧美三级欧美一级| 亚洲国产美女搞黄色| 成人国产精品免费观看动漫| 久久久久亚洲蜜桃| 国产一区二区三区蝌蚪| 欧美精品一区二区在线观看| 免费久久99精品国产| 欧美剧情电影在线观看完整版免费励志电影 | 欧美疯狂性受xxxxx喷水图片| 亚洲欧美自拍偷拍| 99精品久久免费看蜜臀剧情介绍| 国产免费观看久久| 国产自产视频一区二区三区| 日韩欧美一区二区免费| 日av在线不卡| 日韩一区和二区| 蜜桃91丨九色丨蝌蚪91桃色| 日韩欧美专区在线| 久久精品国产澳门| 精品国产三级电影在线观看| 国产自产高清不卡| 久久久久久一级片| 成人免费观看av| 国产精品第四页| 色av一区二区| 亚洲成人黄色小说| 日韩无一区二区| 精品一二线国产| 亚洲国产成人私人影院tom| 成人午夜av在线| 综合久久久久久久| 欧美色综合网站| 免费在线观看成人| 久久美女艺术照精彩视频福利播放| 国产一区福利在线| 中文字幕不卡在线| 色综合天天在线| 亚欧色一区w666天堂| 精品久久久三级丝袜| 成人激情av网| 亚洲高清免费一级二级三级| 91精品国产全国免费观看| 激情小说亚洲一区| 国产精品丝袜一区| 欧美日韩中文另类| 国产乱人伦精品一区二区在线观看| 欧美激情资源网| 在线观看一区不卡| 理论电影国产精品| 综合色天天鬼久久鬼色| 欧美日韩国产另类一区| 精品一区二区三区欧美| 国产精品色在线| 欧美精品777| 粉嫩aⅴ一区二区三区四区 | 久久国产精品99久久久久久老狼| 久久精品无码一区二区三区| 91麻豆国产精品久久| 另类欧美日韩国产在线| 亚洲欧洲色图综合| 日韩视频国产视频| 成人a免费在线看| 日韩精品亚洲一区二区三区免费| 欧美激情在线一区二区三区| 欧美视频中文一区二区三区在线观看| 久久疯狂做爰流白浆xx| 综合激情网...| 日韩欧美一区二区久久婷婷| 97精品久久久午夜一区二区三区 | 毛片av一区二区| 亚洲丝袜精品丝袜在线| 欧美大片日本大片免费观看| 99精品视频在线免费观看| 久久成人久久鬼色| 亚洲免费观看在线视频| 精品国产乱码久久久久久免费| 色噜噜狠狠成人中文综合| 久久国产夜色精品鲁鲁99| 亚洲精品欧美在线| 国产性做久久久久久| 69堂成人精品免费视频| 色婷婷综合久色| 国产成人综合自拍| 日韩激情一区二区| 亚洲黄色小视频| 久久久.com| 欧美成人精品二区三区99精品| 精品视频123区在线观看| 91在线观看地址| 国产伦精一区二区三区| 日韩福利电影在线| 亚洲影视在线播放| 综合激情网...| 国产欧美精品日韩区二区麻豆天美| 欧美一区二区福利在线| 欧美日韩午夜精品| 91香蕉视频mp4| 成人丝袜高跟foot| 国内精品在线播放| 蜜桃av噜噜一区| 日日欢夜夜爽一区| 亚洲一二三专区| 亚洲一区二区三区视频在线| 亚洲欧美综合色| 中文字幕一区二区三区精华液 | 午夜不卡av免费| 一区二区成人在线视频| 亚洲欧美一区二区在线观看| 久久精品在线免费观看| 久久综合视频网| 日韩女优av电影| 日韩免费看的电影| 日韩久久免费av| 日韩你懂的在线观看|