⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 psdemounit.pas

📁 GREATIS Print Suite Pro for Delphi (3-7,2005,2006,2007) and C++ Builder (3-6) Set of components for
💻 PAS
字号:
(*  GREATIS PRINT SUITE DEMO                     *)
(*  Copyright (C) 2001-2007 Greatis Software     *)
(*  http://www.greatis.com/delphicb/printsuite/  *)
(*  http://www.greatis.com/bteam.html            *)

unit PSDemoUnit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  PSJob, PSPreview, StdCtrls, Buttons, ExtCtrls, PSToolbar, PSLabel, PSCombo,
  PSStatusBar, PSWindow, TypInfo, ShellAPI, ComCtrls, Db, DBTables,
  PJGrid, PJTextGrid, PJDBGrid, PJSimpleGrid, PJSimpleTextGrid, Grids,
  PJStringGrid, PJListView, Printers, PJStrings, PJMulti, PJDraft,
  PJRichEdit, PJForm, PJControl, PJImage, PJBitmap, PJScreenshot,
  PJImageList, ImgList;

type
  TfrmMain = class(TForm)
    psjAbout: TPrintJob;
    pswMain: TPreviewWindow;
    pnlPreview: TPanel;
    pstMain: TPreviewToolbar;
    Preview: TPreview;
    pssMain: TPreviewStatusBar;
    lblCategory: TLabel;
    lsbMain: TListBox;
    ntbMain: TNotebook;
    lblInfo: TLabel;
    pnlMargin: TPanel;
    psjAreas: TPrintJob;
    psjPublished: TPrintJob;
    lblAbout: TLabel;
    lblAreas: TLabel;
    lblPublished: TLabel;
    psjSimplest: TPrintJob;
    lblSimplest: TLabel;
    bvlMargin: TBevel;
    grbAreasOptions: TGroupBox;
    chbHeader: TCheckBox;
    chbFooter: TCheckBox;
    chbMargins: TCheckBox;
    grbHeader: TGroupBox;
    lblHeaderSize: TLabel;
    edtHeaderSize: TEdit;
    lblHeaderUnins: TLabel;
    cmbHeaderUnits: TComboBox;
    grbFooter: TGroupBox;
    lblFooterSize: TLabel;
    lblFooterUnits: TLabel;
    edtFooterSize: TEdit;
    cmbFooterUnits: TComboBox;
    grbMargins: TGroupBox;
    lblMarginsLeft: TLabel;
    lblMarginUnits: TLabel;
    edtMarginsLeft: TEdit;
    cmbMarginsUnits: TComboBox;
    edtMarginsRight: TEdit;
    lblMarginsRight: TLabel;
    lblMarginsTop: TLabel;
    edtMarginsTop: TEdit;
    edtMarginsBottom: TEdit;
    lblMarginsBottom: TLabel;
    lblAreaHint: TLabel;
    grbAreaLegend: TGroupBox;
    pnlHeader: TPanel;
    pnlPage: TPanel;
    pnlFooter: TPanel;
    lblPageCount: TLabel;
    edtPageCount: TEdit;
    udnPageCount: TUpDown;
    lblDBDetail: TLabel;
    tblDBDetail: TTable;
    psjDBDetail: TPrintJob;
    psjDBGrid: TDBGridPrintJob;
    tblDBGrid: TTable;
    tblDBGridFirst_Name: TStringField;
    tblDBGridLast_Name: TStringField;
    tblDBGridPhone: TStringField;
    tblDBGridFax: TStringField;
    dsrDBGrid: TDataSource;
    lblDBGrid: TLabel;
    psjSimpleGrid: TSimpleGridPrintJob;
    lblSimpleGrid: TLabel;
    psjSimpleTextGrid: TSimpleTextGridPrintJob;
    lblSimpleTextGrid: TLabel;
    lblStringGrid: TLabel;
    stgProducts: TStringGrid;
    pnlStringGridMargin: TPanel;
    btnStringGridUpdate: TButton;
    psjStringGrid: TStringGridPrintJob;
    lblStringGridColumns: TLabel;
    imlLarge: TImageList;
    imlSmall: TImageList;
    lblListView: TLabel;
    pnlListView: TPanel;
    lsvDemo: TListView;
    psjListView: TListViewPrintJob;
    lblListViewUpdate: TLabel;
    btnListViewUpdate: TButton;
    grbFooterBorders: TGroupBox;
    chbFLeft: TCheckBox;
    chbFRight: TCheckBox;
    chbFTop: TCheckBox;
    chbFBottom: TCheckBox;
    grbHeaderBorders: TGroupBox;
    chbHLeft: TCheckBox;
    chbHRight: TCheckBox;
    chbHTop: TCheckBox;
    chbHBottom: TCheckBox;
    grbPageBorders: TGroupBox;
    chbPLeft: TCheckBox;
    chbPRight: TCheckBox;
    chbPTop: TCheckBox;
    chbPBottom: TCheckBox;
    grbTableBorders: TGroupBox;
    chbTLeft: TCheckBox;
    chbTRight: TCheckBox;
    chbTTop: TCheckBox;
    chbTBottom: TCheckBox;
    lblHint: TLabel;
    lblDBHint: TLabel;
    lblRules: TLabel;
    psjRules: TPrintJob;
    psjStrings: TStringsPrintJob;
    lblStrings: TLabel;
    memStrings: TMemo;
    btnLoad: TButton;
    btnFont: TButton;
    opdStrings: TOpenDialog;
    fndStrings: TFontDialog;
    btnUpdate: TButton;
    lblStringsInstructions: TLabel;
    psjMulti: TMultiPrintJob;
    lblMulti: TLabel;
    btnEditPrintJobs: TButton;
    lblMultiInfo: TLabel;
    psjDraft: TDraftPrintJob;
    lblDraft: TLabel;
    cmbDraft: TComboBox;
    lblDraftPrintJob: TLabel;
    chbDraftSeparators: TCheckBox;
    lblDraftScale: TLabel;
    edtDraftScale: TEdit;
    udnDraftScale: TUpDown;
    chbWordWrap: TCheckBox;
    psjRichEdit: TRichEditPrintJob;
    opdRichEdit: TOpenDialog;
    lblRichEdit: TLabel;
    lblRichEditInstructions: TLabel;
    btnLoadRTF: TButton;
    btnRTFUpdate: TButton;
    redRichText: TRichEdit;
    psjPreviewProperties: TPrintJob;
    lblPreviewTitle: TLabel;
    cldPreview: TColorDialog;
    chbListViewSelectedOnly: TCheckBox;
    psjScreenshot: TScreenshotPrintJob;
    psjImage: TImagePrintJob;
    psjControl: TControlPrintJob;
    psjForm: TFormPrintJob;
    rgrBitmapPrintJob: TRadioGroup;
    btnBitmapUpdate: TButton;
    lblBitmapPrintJob: TLabel;
    lblBitmapPrintJobHint: TLabel;
    rgrHorAlign: TRadioGroup;
    rgrVerAlign: TRadioGroup;
    rgrBitmapStretchMode: TRadioGroup;
    pnlGreatisSoftware: TPanel;
    imgGreatisSoftware: TImage;
    lblPreviewColor: TLabel;
    lblPreviewShadowColor: TLabel;
    pnlPreviewColor: TPanel;
    btnPreviewColor: TButton;
    pnlPreviewShadowColor: TPanel;
    btnPreviewShadowColor: TButton;
    chbPreviewScrollTracking: TCheckBox;
    chbPreviewDragScroll: TCheckBox;
    lblPreviewShadowSize: TLabel;
    edtPreviewShadowSize: TEdit;
    lblCopyright: TLabel;
    lblWeb: TLabel;
    pnlName: TPanel;
    imgIcon: TImage;
    psjImageList: TImageListPrintJob;
    Label1: TLabel;
    procedure lblLinkClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure lsbMainClick(Sender: TObject);
    procedure pstMainUserButtonClick(Sender: TObject);
    procedure psjInitDraw(Sender: TObject; TheCanvas: TCanvas;
      Target: TDrawTarget);
    procedure psjAboutDraw(Sender: TObject; TheCanvas: TCanvas;
      PageIndex: Integer; Rect: TRect; Area: TDrawArea;
      Target: TDrawTarget);
    procedure btnPreviewColorClick(Sender: TObject);
    procedure evePreviewChange(Sender: TObject);
    procedure psjAreasDraw(Sender: TObject; TheCanvas: TCanvas;
      PageIndex: Integer; Rect: TRect; Area: TDrawArea;
      Target: TDrawTarget);
    procedure edtKeyPress(Sender: TObject; var Key: Char);
    procedure eveAreaChanged(Sender: TObject);
    procedure psjPublishedDraw(Sender: TObject; TheCanvas: TCanvas;
      PageIndex: Integer; Rect: TRect; Area: TDrawArea;
      Target: TDrawTarget);
    procedure psjSimplestDraw(Sender: TObject; TheCanvas: TCanvas;
      PageIndex: Integer; Rect: TRect; Area: TDrawArea;
      Target: TDrawTarget);
    procedure udnPageCountClick(Sender: TObject; Button: TUDBtnType);
    procedure psjRulesDraw(Sender: TObject; TheCanvas: TCanvas;
      PageIndex: Integer; Rect: TRect; Area: TDrawArea;
      Target: TDrawTarget);
    procedure psjDBDetailInitDraw(Sender: TObject; TheCanvas: TCanvas;
      Target: TDrawTarget);
    procedure psjDBDetailDraw(Sender: TObject; TheCanvas: TCanvas;
      PageIndex: Integer; Rect: TRect; Area: TDrawArea;
      Target: TDrawTarget);
    procedure psjSimpleTextGridColWidth(Sender: TObject;
      TheCanvas: TCanvas; ACol: Integer; var ColWidth: Integer);
    procedure psjSimpleTextGridCellText(Sender: TObject; APageIndex, ACol,
      ARow: Integer; var Text: String);
    procedure chbBorderClick(Sender: TObject);
    procedure psjSimpleGridColWidth(Sender: TObject;
      TheCanvas: TCanvas; ACol: Integer; var ColWidth: Integer);
    procedure psjSimpleGridInitDraw(Sender: TObject;
      TheCanvas: TCanvas; Target: TDrawTarget);
    procedure psjSimpleGridDrawCell(Sender: TObject;
      TheCanvas: TCanvas; Rect: TRect; PageIndex, ACol, ARow: Integer;
      Target: TDrawTarget);
    procedure btnStringGridUpdateClick(Sender: TObject);
    procedure lsvDemoEditing(Sender: TObject; Item: TListItem;
      var AllowEdit: Boolean);
    procedure btnListViewUpdateClick(Sender: TObject);
    procedure chbListViewSelectedOnlyClick(Sender: TObject);
    procedure btnLoadClick(Sender: TObject);
    procedure btnFontClick(Sender: TObject);
    procedure btnUpdateClick(Sender: TObject);
    procedure chbWordWrapClick(Sender: TObject);
    procedure btnLoadRTFClick(Sender: TObject);
    procedure btnRTFUpdateClick(Sender: TObject);
    procedure btnEditPrintJobsClick(Sender: TObject);
    procedure btnBitmapUpdateClick(Sender: TObject);
    procedure rgrBitmapPrintJobClick(Sender: TObject);
    procedure rgrHorAlignClick(Sender: TObject);
    procedure rgrVerAlignClick(Sender: TObject);
    procedure rgrBitmapStretchModeClick(Sender: TObject);
    procedure cmbDraftChange(Sender: TObject);
    procedure chbDraftSeparatorsClick(Sender: TObject);
    procedure udnDraftScaleClick(Sender: TObject; Button: TUDBtnType);
  private
    { Private declarations }
    procedure ApplicationHint(Sender: TObject);
    procedure SetPreviewProperties;
  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

{$R *.DFM}

procedure TfrmMain.ApplicationHint(Sender: TObject);
begin
  pssMain.UserText:=GetShortHint(Application.Hint);
end;

procedure TfrmMain.lblLinkClick(Sender: TObject);
begin
  ShellExecute(
    Handle,
    'open',
    PChar((Sender as TLabel).Caption),
    nil,
    nil,
    SW_SHOWDEFAULT);
end;

procedure TfrmMain.FormCreate(Sender: TObject);
var
  i: Integer;
begin
  Application.OnHint:=ApplicationHint;
  imgIcon.Picture.Icon.Assign(Application.Icon);
  if psjAbout.PrinterOK then Printer.Orientation:=poPortrait;
  lsbMain.ItemIndex:=0;
  lsbMain.OnClick(lsbMain);
  cmbHeaderUnits.ItemIndex:=2;
  cmbFooterUnits.ItemIndex:=2;
  cmbMarginsUnits.ItemIndex:=2;
  psjDBDetail.PageCount:=tblDBDetail.RecordCount;
  with stgProducts do
  begin
    Cols[0].Text:=
      'Product'#13#10+
      'Print Suite'#13#10+
      'Form Designer'#13#10+
      'Object Inspector'#13#10+
      'WinDowse';
    Cols[1].Text:=
      'Description'#13#10+
      'Components for print with preview'#13#10+
      'Runtime Form Designer'#13#10+
      'Inspector Components Suite'#13#10+
      'Advanced Windows analyser';
  end;
  with cmbDraft,Items,Self do
  begin
    for i:=0 to Pred(ComponentCount) do
      if (Components[i] is TCustomPrintJob) and
        not (Components[i] is TCustomMultiPrintJob) and
        (Components[i]<>psjMulti) and (Components[i]<>psjDraft) then
        cmbDraft.Items.AddObject(Components[i].Name+' - '+TCustomPrintJob(Components[i]).Title,Components[i]);
    if Count>0 then
    begin
      ItemIndex:=0;
      DropDownCount:=Count;
    end;
  end;
  redRichText.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+'PrintSuite.rtf');
  psjRichEdit.Update;
  psjListView.Update;
end;

procedure TfrmMain.lsbMainClick(Sender: TObject);
var
  i: Integer;
  OldOrientation: TPageOrientation;
begin
  with ntbMain do
    ActivePage:=Pages[lsbMain.ItemIndex];
  with Preview do
  begin
    OldOrientation:=PrintJob.Orientation;
    case lsbMain.ItemIndex of
      0: PrintJob:=psjAbout;
      1: PrintJob:=psjPreviewProperties;
      2: PrintJob:=psjAreas;
      3: PrintJob:=psjPublished;
      4: PrintJob:=psjSimplest;
      5: PrintJob:=psjRules;
      6: PrintJob:=psjDBDetail;
      7: PrintJob:=psjDBGrid;
      8: PrintJob:=psjSimpleTextGrid;
      9: PrintJob:=psjSimpleGrid;
      10: PrintJob:=psjStringGrid;
      11: PrintJob:=psjListView;
      12: PrintJob:=psjStrings;
      13: PrintJob:=psjRichEdit;
      14:
      begin
        rgrBitmapPrintJob.ItemIndex:=0;
        PrintJob:=psjScreenshot;
      end;
      15: PrintJob:=psjImageList;
      16:
      begin
        with psjMulti do
          for i:=0 to Pred(PrintJobCount) do
            PrintJobs[i].Update;
        PrintJob:=psjMulti;
      end;
      17: PrintJob:=psjDraft;
    end;
    if PrintJob.Orientation<>OldOrientation then Update;
    pstMain.UserButtonEnabled:=lsbMain.ItemIndex<>16;
    if not pstMain.UserButtonEnabled then pswMain.Close;
    pswMain.PrintJob:=PrintJob;
  end;
end;

procedure TfrmMain.pstMainUserButtonClick(Sender: TObject);
begin
  pswMain.Show;
end;

procedure TfrmMain.psjInitDraw(Sender: TObject; TheCanvas: TCanvas;
  Target: TDrawTarget);
begin
  TheCanvas.Font.Name:='Verdana';
end;

{ About Greatis Print Suite }

procedure TfrmMain.psjAboutDraw(Sender: TObject; TheCanvas: TCanvas;
  PageIndex: Integer; Rect: TRect; Area: TDrawArea;
  Target: TDrawTarget);
var
  Text: string;
begin
  with TheCanvas,Font,Rect do
    if Area=daPage then
    begin
      Rectangle(Left,Top,Right,Bottom);
      if PageIndex=1 then
      begin
        Size:=20;
        Style:=[fsBold];
        Text:='Greatis Print Suite';
        TextOut(
          Left+(Right-Left-TextWidth(Text)) div 2,
          Top+TextHeight(Text),
          Text);
        Size:=16;
        Style:=[];
        Text:='Meets all of your printing needs.';
        TextOut(
          Left+(Right-Left-TextWidth(Text)) div 2,
          Bottom-3*TextHeight(Text),
          Text);
        Text:='Print more, better, and easier!';
        TextOut(
          Left+(Right-Left-TextWidth(Text)) div 2,
          Bottom-2*TextHeight(Text),
          Text);
      end
      else
      begin
        Size:=16;
        Style:=[];
        Text:='http://www.greatis.com/printsuite.htm';
        TextOut(
          Left+(Right-Left-TextWidth(Text)) div 2,
          Top+TextHeight(Text),
          Text);
        Text:='Copyright 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -