📄 psdemounit.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 + -