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

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

?? qrprev.pas

?? delphi7報表打印控件源碼 可以設計報表
?? PAS
?? 第 1 頁 / 共 2 頁
字號:
        // have to reset the thumbs with this call
        QRPreviewPageAvailable(self, 1);
        thumbGrid.Row := 0;
        PrintSetup.Enabled := False;
        Print.Enabled := true;
      end
      else
        ShowMessage(SqrFileNotExist);
  finally
    free;
  end;
end;

procedure TQRStandardPreview.QRPreviewPageAvailable(Sender: TObject; PageNum: Integer);
begin
  UpdateInfo;
  ThumbGrid.RowCount := QRPrinter.PageCount;
  ThumbGrid.Invalidate;
  if qrprinter.status = mpFinished then
  begin
    PrintSetup.Enabled := true;
    Print.Enabled := true;
  end;
end;

procedure TQRStandardPreview.QRPreviewProgressUpdate(Sender: TObject; Progress: Integer);
var
  AProgress: integer;
begin
  if Progress >= LastProgress + 5 then
  begin
    StatusBar.Panels[0].Text := IntToStr(Progress) + '%';
    LastProgress := Progress;
  end;
  if (Progress = 0) or (Progress = 100) then StatusBar.Panels[0].Text := '';
end;

procedure TQRStandardPreview.FormCreate(Sender: TObject);
begin
  HorzScrollbar.Tracking := true;
  VertScrollbar.Tracking := true;
  TResizeGrid(ThumbGrid).OnResize := ResizeThumb;
   //if QRPrinter.PageCount<2 then Tabs.Width := 0;
end;

procedure TQRStandardPreview.QRPreviewHyperlink(Sender: TObject;
  EventType: TQRHyperlinkEventType; Link: string; var Handled: Boolean);
begin
  Statusbar.Panels[2].Text := Link;
end;

procedure TQRStandardPreview.OutlineViewChange(Sender: TObject; Node: TTreeNode);
var
  NewPage: integer;
  ARect: TRect;
begin
  QRPrinter.PageList.QROutline.FindPosition(Node, ARect, NewPage);
  if NewPage > 0 then
  begin
    QRPreview.PageNumber := NewPage;
    UpdateInfo;
  end;
end;

procedure TQRStandardPreview.ResizeThumb(Sender: TObject);
begin
  ThumbFontHeight := ThumbGrid.Canvas.TextHeight('P');
  ThumbGrid.DefaultColWidth := ThumbGrid.Width - 4;
  if FReportOrientation = poPortrait then
  begin
    ThumbDrawWidth := Round((ThumbGrid.DefaultColWidth - 20));
    ThumbDrawHeight := Round((ThumbDrawWidth / QRPrinter.PaperWidth) * QRPrinter.PaperLength - ThumbFontHeight);
  end
  else
  begin
    ThumbDrawWidth := Round((ThumbGrid.DefaultColWidth - 20));
    ThumbDrawHeight := Round((ThumbDrawWidth / QRPrinter.PaperLength) * QRPrinter.PaperWidth - ThumbFontHeight);
  end;

  ThumbGrid.DefaultRowHeight := ThumbDrawHeight;
  ThumbLeftMargin := Round((ThumbGrid.DefaultColWidth - ThumbDrawWidth) / 2);
  ThumbTopMargin := Round((ThumbGrid.DefaultRowHeight - ThumbDrawHeight) / 2);
end;

procedure TQRStandardPreview.ThumbGridDrawCell(Sender: TObject; ACol, ARow: Integer; ARect: TRect; State: TGridDrawState);
var
  APage: TMetafile;
begin
  APage := QRPrinter.GetPage(ARow + 1);
  if APage <> nil then
    PaintPageToCanvas(APage, ThumbGrid.Canvas, Rect(ARect.Left + ThumbLeftMargin, ARect.Top + 10,
      ARect.Right - 30, ARect.Bottom - 10), true);
  ThumbGrid.Canvas.Brush.Color := clBtnFace;
  ThumbGrid.Canvas.Textout(ARect.Left, ARect.Top, IntToStr(ARow + 1));
  APage.Free;
end;

procedure TQRStandardPreview.ThumbGridSelectCell(Sender: TObject; ACol, ARow: Integer; var CanSelect: Boolean);
begin
  if ThumbUpdating then exit;
  QRPreview.PageNumber := ARow + 1;
  UpdateInfo;
end;

function TQRStandardPreview.GetTextSearch(var MatchCase: boolean; var AText: string): boolean;
var
  SrchDlg: TSearchDlg;
begin
  AText := '';
  Result := false;
  SrchDlg := TSearchDlg.Create(self);
  srchDlg.ShowModal;
  if srchDlg.cancel then
  begin
    SrchDlg.Free;
    exit;
  end;
  Result := true;
  srchDlg.GetText(AText);
  MatchCase := srchDlg.GetCase;
  SrchDlg.Free;
end;

procedure TQRStandardPreview.FindButtonClick(Sender: TObject);
var
  FindStr: string;
  MatchCase: boolean;
  I: integer;
  APage: TMetafile;
  Dummy: TList;
begin
  if GetTextSearch(MatchCase, FindStr) then
  begin
    SearchResultBox.Enabled := true;
    SearchTextLabel.Caption := FindStr;
    SearchResultBox.Items.Clear;
    for I := 1 to QRPrinter.PageCount do
    begin
      APage := QRPrinter.GetPage(I);
      try
        if StrInMetafile(FindStr, APage, MatchCase) then
          SearchResultBox.Items.Add('第 ' + IntToStr(I) + ' 頁');
      finally
        APage.Free;
      end;
    end;
    if SearchResultBox.Items.Count = 0 then
    begin
      SearchResultBox.Items.Add('沒有匹配的文本');
      SearchResultBox.Enabled := false;
    end;
  end;
end;

procedure TQRStandardPreview.GotoPageButtonClick(Sender: TObject);
var
  Pnum, K: integer;
  PNStr: string;
  CaptionStr: string;
begin
  CaptionStr := format(SqrGotoPage, [QRPrinter.PageCount]);
  PNStr := format('%d', [QRPreview.PageNumber]);
  InputQuery(CaptionStr, '跳到頁 >>', PNStr);
  val(PNStr, Pnum, K);
  if (Pnum < 1) or (Pnum > QRPrinter.PageCount) then
    Pnum := 1;
  SelectPage(Pnum);
end;

procedure TQRStandardPreview.JPG1Click(Sender: TObject);
var
  aImage: TImage;
  APage: TMetafile;
  aJpeg: Tjpegimage;
begin
  with TSaveDialog.Create(Application) do
  try
    Filter := 'BMP位圖|*.bmp|JPG圖片|*.jpg|單色位圖|*.bmp|16色位圖|*.bmp|256色位圖|*.bmp';
    DefaultExt := '.bmp';
    if Execute then
    begin
      ZoomTo100Click(Sender);
      try
        APage := QRPrinter.GetPage(QRPreview.PageNumber);
        if apage <> nil then
        try
          aImage := TImage.Create(nil);
          if FReportOrientation = poPortrait then
          begin
            aImage.Height := Round(QRPreview.QRPrinter.PaperLength * 0.3795);
            aImage.Width := Round(QRPreview.QRPrinter.PaperWidth * 0.3795);
          end
          else
          begin
            aImage.Width := Round(QRPreview.QRPrinter.PaperLength * 0.3795)-4;
            aImage.Height := Round(QRPreview.QRPrinter.PaperWidth * 0.3795)-4;
          end;
          PaintPageToCanvas(APage, aImage.Canvas, Rect(-1, -1,
            aImage.Width+3, aImage.Height+3), true);
          aImage.Canvas.Brush.Color := clWhite;
          aImage.Canvas.Textout(10, 10, 'BN ' + DateTimeToStr(Now()));
          case FilterIndex of
            1: begin
                DefaultExt := '.bmp';
                aImage.Picture.SaveToFile(FileName);
              end;
            2: begin
                try
                  DefaultExt := '.jpg';
                  aJpeg := Tjpegimage.Create;
                  aJpeg.Assign(aImage.Picture.Bitmap);
                  aJpeg.SaveToFile(FileName);
                finally
                  aJpeg.Free;
                end;
              end;
            3: begin //2
                aImage.Picture.Bitmap.PixelFormat := pf1bit;
                DefaultExt := '.bmp';
                aImage.Picture.SaveToFile(FileName);
              end;
            4: begin //16
                aImage.Picture.Bitmap.PixelFormat := pf4bit;
                DefaultExt := '.bmp';
                aImage.Picture.SaveToFile(FileName);
              end;
            5: begin //256
                aImage.Picture.Bitmap.PixelFormat := pf8bit;
                DefaultExt := '.bmp';
                aImage.Picture.SaveToFile(FileName);
              end;
          else
            begin
              DefaultExt := '.bmp';
              aImage.Picture.SaveToFile(FileName);
            end;
          end;
        finally
          aImage.Free;
        end;
      finally
        APage.Free;
      end;
    end;
  finally
    Free;
  end;
end;

procedure TQRStandardPreview.N1Click(Sender: TObject);
var
  FileExt: string;
  aPDFFilt: TQRPDFDocumentFilter;
  aHTMLFilter: TQRGHTMLDocumentFilter;
  aRTFFilter: TQRRTFExportFilter;
  aExcelFilter: TQRXLSFilter;
  aWMFFilter: TQRWMFExportFilter;
  aCSVFilter: TQRCommaSeparatedFilter;
  aTextFilter: TQRAsciiExportFilter;
begin
  with TSaveDialog.Create(Application) do
  try
    Title := '另存報表為pdf或htm';
    Filter := 'PDF文件|*.pdf|HTM網頁|*.htm|' +
      'RTF寫字板文件|*.rtf|EXCEL電子表格|*.xls|' +
      'WMF文件|*.wmf|CSV文件|*.csv|' +
      'TEXT文本文件|*.txt';
    DefaultExt := '.pdf';
    if Execute then
    begin
      case FilterIndex of
        1: begin //PDF文件|*.pdf   aPDFFilt: TQRPDFDocumentFilter;
            try
              DefaultExt := '.dbf';
              aPDFFilt := TQRPDFDocumentFilter.Create(FileName);
              aPDFFilt.AddFontMap('Bookman-Old-Style:SIMYOU');
              aPDFFilt.TextOnTop := true;
              aPDFFilt.Concatenating := true;
              QRPreview.QRPrinter.ExportToFilter(aPDFFilt);
              aPDFFilt.EndConcat;
            finally
              aPDFFilt.Free;
            end;
          end;
        2: begin //HTM網頁|*.htm|    aHTMLFilter: TQRHTMLDocumentFilter;;
            try
              DefaultExt := '.htm';
              aHTMLFilter := TQRGHTMLDocumentFilter.Create(FileName);
              //aHTMLFilter.TransparentTextBG := true;
              //aHTMLFilter.PictureDir := 'Pics';
              //aHTMLFilter.MultiPage := true;
              //aHTMLFilter.PageLinks := false;
              QRPreview.QRPrinter.ExportToFilter(aHTMLFilter);
            finally
              aHTMLFilter.Free;
            end;
          end;
        3: begin //RTF寫字板文件|*.rtf    aRTFFilter: TQRRTFExportFilter;
            try
              DefaultExt := '.rtf';
              aRTFFilter := TQRRTFExportFilter.Create(FileName);
              QRPreview.QRPrinter.ExportToFilter(aRTFFilter);
            finally
              aRTFFilter.Free;
            end;
          end;
        4: begin //EXCEL電子表格|*.xls|   aExcelFilter: TQRXLSFilter;
            try
              DefaultExt := '.xls';
              aExcelFilter := TQRXLSFilter.Create(FileName);
              Try
                QRPreview.QRPrinter.ExportToFilter(aExcelFilter);
              Except
              end;
            finally
              aPDFFilt.Free;
            end;
          end;
        5: begin // WMF文件|*.wmf     aWMFFilter:TQRWMFExportFilter;
            try
              DefaultExt := '.wmf';
              aWMFFilter := TQRWMFExportFilter.Create(FileName);
              QRPreview.QRPrinter.ExportToFilter(aWMFFilter);
            finally
              aWMFFilter.Free;
            end;
          end;
        6: begin //CSV文件|*.csv|    aCSVFilter: TQRCommaSeparatedFilter;
            try
              DefaultExt := '.csv';
              aCSVFilter := TQRCommaSeparatedFilter.Create(FileName);
              QRPreview.QRPrinter.ExportToFilter(aCSVFilter);
            finally
              aCSVFilter.Free;
            end;
          end;
        7: begin //TEXT文本文件|*.txt    aTextFilter: TQRTextFilter;
            try
              DefaultExt := '.txt';
              aTextFilter := TQRAsciiExportFilter.Create(FileName);
              QRPreview.QRPrinter.ExportToFilter(aTextFilter);
             finally
              aTextFilter.Free;
            end;
          end;
      end;
    end;
  finally
    Free;
  end;
end;

end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩欧美激情| 亚洲精品中文在线影院| 中文字幕亚洲精品在线观看| 亚洲成a人v欧美综合天堂| 国产精品资源在线| 91精品在线麻豆| 亚洲激情男女视频| 成人黄色小视频| 久久久影院官网| 蜜桃av噜噜一区二区三区小说| 一本一道久久a久久精品综合蜜臀| 26uuu精品一区二区| 偷拍一区二区三区四区| 色香蕉成人二区免费| 国产免费观看久久| 国产一区二区三区免费播放| 欧美福利一区二区| 精品福利av导航| 久久精品日韩一区二区三区| 一区二区三区在线免费视频| 国产一区二区三区免费| 精品日韩在线一区| 亚洲1区2区3区视频| 欧美性受极品xxxx喷水| 亚洲精品视频在线| 成人黄色电影在线| 久久精品人人爽人人爽| 狠狠色丁香婷婷综合久久片| 欧美一级免费大片| 日韩中文字幕av电影| 欧美日韩不卡视频| 一区二区三区色| 色成人在线视频| 亚洲精品免费播放| 欧美日韩免费不卡视频一区二区三区| 亚洲精品乱码久久久久久| 91天堂素人约啪| 一区二区三区四区五区视频在线观看| 不卡一区二区三区四区| 中文字幕一区二区在线观看| 欧美va亚洲va香蕉在线| 日本一区二区视频在线观看| 91在线云播放| 色天天综合色天天久久| 亚洲手机成人高清视频| 色狠狠一区二区三区香蕉| 亚洲九九爱视频| 欧美日韩免费观看一区三区| 青青草国产成人99久久| 久久亚洲二区三区| 不卡电影免费在线播放一区| 亚洲欧美色综合| 7777女厕盗摄久久久| 国内外精品视频| 国产精品成人免费在线| 欧美日韩在线三区| 精品一区二区三区久久| 国产精品欧美极品| 欧美午夜精品一区二区三区| 欧美电影免费观看高清完整版在线 | 91麻豆国产福利精品| 国产精品欧美一级免费| 欧美吞精做爰啪啪高潮| 麻豆精品国产传媒mv男同| 欧美成人官网二区| 91亚洲永久精品| 免费一级欧美片在线观看| 日本一区二区电影| 欧美精品日韩一本| 不卡欧美aaaaa| 日本三级亚洲精品| 国产精品人成在线观看免费| 欧美日韩视频在线一区二区| 久久欧美一区二区| 成人福利电影精品一区二区在线观看| 欧美精品乱码久久久久久按摩| 国产一区视频网站| 亚洲国产精品久久久久秋霞影院| 2020国产精品| 欧美亚洲综合久久| 成人av网址在线| 久久国产福利国产秒拍| 伊人色综合久久天天| 国产亚洲精品久| 91精品国产综合久久福利| caoporn国产精品| 国产剧情一区二区三区| 日韩国产欧美三级| 国产精品美女久久久久久久网站| 欧美一区二区三区精品| 日本韩国欧美在线| 成人激情电影免费在线观看| 精品系列免费在线观看| 日韩电影免费一区| 一级精品视频在线观看宜春院 | 悠悠色在线精品| 亚洲欧美一区二区不卡| 国v精品久久久网| 欧美性欧美巨大黑白大战| 麻豆精品国产传媒mv男同| 亚洲一区在线观看免费观看电影高清| 欧美mv日韩mv国产网站| 欧美精品一级二级三级| 91高清在线观看| 91原创在线视频| 国产成都精品91一区二区三| 韩国一区二区视频| 久久99精品久久久久久动态图| 天堂成人免费av电影一区| 亚洲一区二区美女| 亚洲国产乱码最新视频 | 欧美亚洲综合色| 色综合久久中文综合久久97| 99国产欧美久久久精品| av亚洲精华国产精华精| 成人av电影在线| 91在线观看美女| 91色九色蝌蚪| 91久久精品国产91性色tv| 色婷婷国产精品综合在线观看| 91视频免费观看| 色噜噜狠狠色综合中国| 欧美特级限制片免费在线观看| 在线视频综合导航| 欧美三级欧美一级| 7777精品伊人久久久大香线蕉超级流畅| 欧美午夜电影网| 欧美一级片在线观看| 欧美本精品男人aⅴ天堂| 久久综合久久久久88| 国产精品色噜噜| 亚洲小少妇裸体bbw| 日本在线不卡一区| 国产美女精品人人做人人爽| 成人福利在线看| 91福利精品视频| 欧美一级精品在线| 欧美极品另类videosde| 亚洲精品国产无套在线观| 亚洲成av人片在线观看无码| 美腿丝袜在线亚洲一区| 国产丶欧美丶日本不卡视频| 91免费精品国自产拍在线不卡| 欧美影院一区二区| 精品国产第一区二区三区观看体验| 久久精品夜色噜噜亚洲aⅴ| 亚洲天堂精品视频| 蜜桃视频在线观看一区| aa级大片欧美| 日韩一区二区在线看片| 国产精品久久久久久久久久免费看| 亚洲一级在线观看| 国产一区二区三区| 欧美天堂亚洲电影院在线播放| 欧美成人性福生活免费看| 国产精品国产三级国产| 日本伊人午夜精品| 成人h动漫精品| 欧美精品在线一区二区| 欧美国产日产图区| 美女在线一区二区| 日本黄色一区二区| 国产日韩欧美麻豆| 天天操天天干天天综合网| 成人精品国产福利| 国产ts人妖一区二区| 日韩一区二区三| 国产激情视频一区二区在线观看 | 成人综合在线观看| 欧美日韩亚洲高清一区二区| 欧美激情一区二区三区在线| 亚洲成a人v欧美综合天堂| 欧美一区二区三区免费在线看| 国产一区欧美二区| 91成人在线免费观看| 国产偷v国产偷v亚洲高清| 日韩国产高清在线| 欧洲生活片亚洲生活在线观看| 国产精品视频免费看| 国产一区二区福利| 欧美视频一区在线| a级精品国产片在线观看| 亚洲一区在线免费观看| 国产精品综合一区二区三区| 欧美日韩三级一区二区| 亚洲精品日韩一| 99久久精品国产观看| 国产精品美女一区二区| 国产成人免费在线观看不卡| 精品国产乱码久久久久久蜜臀| 偷拍一区二区三区| 欧美男生操女生| 亚洲国产成人高清精品| 欧美色图一区二区三区| 亚洲一区av在线| 91精品国产91综合久久蜜臀| 午夜精品久久久久久久99水蜜桃| 在线免费观看视频一区| 亚洲一区在线电影| 欧美日韩国产高清一区二区三区|