git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@55 05c56307-c608-d34a-929d-697000501d7a
319 lines
11 KiB
ObjectPascal
319 lines
11 KiB
ObjectPascal
{*******************************************************************}
|
|
{ }
|
|
{ Developer Express Visual Component Library }
|
|
{ ExpressPrinting System COMPONENT SUITE }
|
|
{ }
|
|
{ Copyright (C) 1998-2009 Developer Express Inc. }
|
|
{ ALL RIGHTS RESERVED }
|
|
{ }
|
|
{ The entire contents of this file is protected by U.S. and }
|
|
{ International Copyright Laws. Unauthorized reproduction, }
|
|
{ reverse-engineering, and distribution of all or any portion of }
|
|
{ the code contained in this file is strictly prohibited and may }
|
|
{ result in severe civil and criminal penalties and will be }
|
|
{ prosecuted to the maximum extent possible under the law. }
|
|
{ }
|
|
{ RESTRICTIONS }
|
|
{ }
|
|
{ THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES }
|
|
{ (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE }
|
|
{ SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS }
|
|
{ LICENSED TO DISTRIBUTE THE EXPRESSPRINTINGSYSTEM AND }
|
|
{ ALL ACCOMPANYING VCL CONTROLS AS PART OF AN }
|
|
{ EXECUTABLE PROGRAM ONLY. }
|
|
{ }
|
|
{ THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED }
|
|
{ FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE }
|
|
{ COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE }
|
|
{ AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT }
|
|
{ AND PERMISSION FROM DEVELOPER EXPRESS INC. }
|
|
{ }
|
|
{ CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON }
|
|
{ ADDITIONAL RESTRICTIONS. }
|
|
{ }
|
|
{*******************************************************************}
|
|
|
|
unit dxfmPNFmt;
|
|
|
|
interface
|
|
|
|
{$I cxVer.inc}
|
|
|
|
uses
|
|
Windows, SysUtils, Classes, Graphics, Controls, Forms, StdCtrls, ExtCtrls,
|
|
dxPSForm, dxPSGlbl, dxCore, Menus, cxLookAndFeelPainters, cxGraphics,
|
|
cxSpinEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit, cxButtons,
|
|
cxRadioGroup, cxControls, cxContainer, cxEdit, cxLabel, dxExtCtrls;
|
|
|
|
type
|
|
TdxfmPageNumberFormat = class(TCustomdxPSForm)
|
|
btnOK: TcxButton;
|
|
btnCancel: TcxButton;
|
|
btnHelp: TcxButton;
|
|
lblPageNumberFormat: TcxLabel;
|
|
Bevel2: TcxLabel;
|
|
cbxPageNumberingFormat: TcxComboBox;
|
|
btnDefault: TcxButton;
|
|
rbtnContinueFromPrevSection: TcxRadioButton;
|
|
rbtnStartAt: TcxRadioButton;
|
|
lblPageNumbering: TcxLabel;
|
|
bvlStartAtHolder: TBevel;
|
|
procedure cbxPageNumberingFormatChange(Sender: TObject);
|
|
procedure btnDefaultClick(Sender: TObject);
|
|
procedure lblPageNumberFormatClick(Sender: TObject);
|
|
procedure rbtnStartAtClick(Sender: TObject);
|
|
procedure rbtnContinueFromPrevSectionClick(Sender: TObject);
|
|
private
|
|
FseStartAt: TdxPSValueEdit;
|
|
FAllowContinueFromPrevSection: Boolean;
|
|
FControlsUpdating: Boolean;
|
|
FContinueFromPrevSection: Boolean;
|
|
FModified: Boolean;
|
|
FPageNumberFormats: TStrings;
|
|
FPageNumberFormat: TdxPageNumberFormat;
|
|
FStartPageIndex: Integer;
|
|
FSetPageNumberingFormatAsDefault: Boolean;
|
|
procedure CheckModified;
|
|
procedure CreateControls;
|
|
procedure Initialize;
|
|
procedure LoadStrings;
|
|
procedure SetContinueFromPrevSection(Value: Boolean);
|
|
procedure SetPageNumberFormats(Value: TStrings);
|
|
procedure StartAtChanged(Sender: TObject);
|
|
procedure StartatExit(Sender: TObject);
|
|
public
|
|
constructor Create(AOwner: TComponent); override;
|
|
destructor Destroy; override;
|
|
function Execute: Boolean;
|
|
property AllowContinueFromPrevSection: Boolean read FAllowContinueFromPrevSection write FAllowContinueFromPrevSection;
|
|
property ContinueFromPrevSection: Boolean read FContinueFromPrevSection write SetContinueFromPrevSection;
|
|
property PageNumberFormats: TStrings read FPageNumberFormats write SetPageNumberFormats;
|
|
property PageNumberFormat: TdxPageNumberFormat read FPageNumberFormat write FPageNumberFormat;
|
|
property SetPageNumberingFormatAsDefault: Boolean read FSetPageNumberingFormatAsDefault write FSetPageNumberingFormatAsDefault;
|
|
property StartPageIndex: Integer read FStartPageIndex write FStartPageIndex;
|
|
end;
|
|
|
|
PdxPageNumberFormatDlgData = ^TdxPageNumberFormatDlgData;
|
|
TdxPageNumberFormatDlgData = record
|
|
PageNumberFormats: TStrings;
|
|
PageNumberFormat: TdxPageNumberFormat;
|
|
ContinueFromPrevSection: Boolean;
|
|
StartPageIndex: Integer;
|
|
AllowContinueFromPrevSection: Boolean;
|
|
ShowAsDefaultButton: Boolean;
|
|
SetPageNumberFormatAsDefault: Boolean;
|
|
HelpContext: THelpContext;
|
|
end;
|
|
|
|
function dxShowPageNumberFormatDlg(var AFormatsDlgData: TdxPageNumberFormatDlgData): Boolean;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
uses
|
|
Registry, cxClasses, dxPSRes, dxPSUtl;
|
|
|
|
function dxShowPageNumberFormatDlg(var AFormatsDlgData: TdxPageNumberFormatDlgData): Boolean;
|
|
var
|
|
Dialog: TdxfmPageNumberFormat;
|
|
begin
|
|
Result := False;
|
|
if AFormatsDlgData.PageNumberFormats = nil then Exit;
|
|
|
|
Dialog := TdxfmPageNumberFormat.Create(nil);
|
|
try
|
|
with AFormatsDlgData do
|
|
begin
|
|
Dialog.AllowContinueFromPrevSection := AllowContinueFromPrevSection;
|
|
Dialog.FContinueFromPrevSection := ContinueFromPrevSection;
|
|
Dialog.PageNumberFormats := PageNumberFormats;
|
|
Dialog.FPageNumberFormat := PageNumberFormat;
|
|
Dialog.FStartPageIndex := StartPageIndex;
|
|
Dialog.btnDefault.Visible := ShowAsDefaultButton;
|
|
if HelpContext <> 0 then
|
|
Dialog.HelpContext := HelpContext;
|
|
end;
|
|
Result := Dialog.Execute;
|
|
if Result then
|
|
with AFormatsDlgData do
|
|
begin
|
|
PageNumberFormat := TdxPageNumberFormat(Dialog.PageNumberFormat);
|
|
ContinueFromPrevSection := Dialog.ContinueFromPrevSection;
|
|
StartPageIndex := Dialog.StartPageIndex;
|
|
SetPageNumberFormatAsDefault := Dialog.SetPageNumberingFormatAsDefault;
|
|
end;
|
|
finally
|
|
Dialog.Free;
|
|
end;
|
|
end;
|
|
|
|
{ TdxfmPageNumberFormat }
|
|
|
|
constructor TdxfmPageNumberFormat.Create(AOwner: TComponent);
|
|
begin
|
|
inherited Create(AOwner);
|
|
HelpContext := dxhcPageNumberFormatDlg;
|
|
CheckDialogFormHelpContext(Self, btnHelp, btnCancel, btnOK);
|
|
|
|
FPageNumberFormats := TStringList.Create;
|
|
CreateControls;
|
|
LoadStrings;
|
|
end;
|
|
|
|
destructor TdxfmPageNumberFormat.Destroy;
|
|
begin
|
|
FreeAndNil(FPageNumberFormats);
|
|
inherited;
|
|
end;
|
|
|
|
function TdxfmPageNumberFormat.Execute: Boolean;
|
|
begin
|
|
Initialize;
|
|
FModified := False;
|
|
Result := (ShowModal = mrOK) and FModified;
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.CheckModified;
|
|
begin
|
|
FModified := True;
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.CreateControls;
|
|
begin
|
|
FseStartAt := TdxPSValueEdit.Create(Self);
|
|
with FseStartAt do
|
|
begin
|
|
Parent := Self;
|
|
TabOrder := rbtnStartAt.TabOrder + 1;
|
|
BoundsRect := bvlStartAtHolder.BoundsRect;
|
|
Properties.MinValue := 1;
|
|
Properties.MaxValue := 10000;
|
|
Properties.OnChange := StartAtChanged;
|
|
OnExit := StartAtExit;
|
|
Value := 1;
|
|
end;
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.Initialize;
|
|
begin
|
|
FControlsUpdating := True;
|
|
try
|
|
with cbxPageNumberingFormat.Properties do
|
|
begin
|
|
Items.BeginUpdate;
|
|
try
|
|
Items.Clear;
|
|
Items := FPageNumberFormats;
|
|
cbxPageNumberingFormat.ItemIndex := Integer(PageNumberFormat);
|
|
finally
|
|
Items.EndUpdate;
|
|
end;
|
|
end;
|
|
rbtnContinueFromPrevSection.Enabled := AllowContinueFromPrevSection;
|
|
//rbtnStartAt.Enabled := AllowContinueFromPrevSection;
|
|
rbtnContinueFromPrevSection.Checked := ContinueFromPrevSection;
|
|
rbtnStartAt.Checked := not ContinueFromPrevSection;
|
|
|
|
FseStartAt.ValueType := TdxPSValueType(PageNumberFormat);
|
|
if AllowContinueFromPrevSection and ContinueFromPrevSection then
|
|
FseStartAt.Text := ''
|
|
else
|
|
FseStartAt.Value := StartPageIndex;
|
|
finally
|
|
FControlsUpdating := False;
|
|
end;
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.SetContinueFromPrevSection(Value: Boolean);
|
|
begin
|
|
if FContinueFromPrevSection <> Value then
|
|
begin
|
|
FContinueFromPrevSection := Value;
|
|
FControlsUpdating := True;
|
|
try
|
|
rbtnContinueFromPrevSection.Checked := FContinueFromPrevSection;
|
|
rbtnStartAt.Checked := not FContinueFromPrevSection;
|
|
if FContinueFromPrevSection then
|
|
FseStartAt.Text := ''
|
|
else
|
|
FseStartAt.Value := 1;
|
|
finally
|
|
FControlsUpdating := False;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.SetPageNumberFormats(Value: TStrings);
|
|
begin
|
|
FPageNumberFormats.Assign(Value);
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.LoadStrings;
|
|
begin
|
|
Caption := cxGetResourceString(@sdxPNFormatsCaption);
|
|
btnOK.Caption := cxGetResourceString(@sdxBtnOK);
|
|
btnCancel.Caption := cxGetResourceString(@sdxBtnCancel);
|
|
btnHelp.Caption := cxGetResourceString(@sdxBtnHelp);
|
|
btnDefault.Caption := cxGetResourceString(@sdxBtnDefault);
|
|
lblPageNumberFormat.Caption := cxGetResourceString(@sdxPNFormatsNumberFormat);
|
|
lblPageNumbering.Caption := cxGetResourceString(@sdxPageNumbering);
|
|
rbtnContinueFromPrevSection.Caption := cxGetResourceString(@sdxPNFormatsContinueFromPrevious);
|
|
rbtnStartAt.Caption := cxGetResourceString(@sdxPNFormatsStartAt);
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.cbxPageNumberingFormatChange(Sender: TObject);
|
|
begin
|
|
if FControlsUpdating then Exit;
|
|
FseStartAt.ValueType := TdxPSValueType(TcxComboBox(Sender).ItemIndex);
|
|
FPageNumberFormat := TdxPageNumberFormat(TcxComboBox(Sender).ItemIndex);
|
|
CheckModified;
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.StartAtChanged(Sender: TObject);
|
|
begin
|
|
if FControlsUpdating then Exit;
|
|
rbtnStartAt.Checked := True;
|
|
CheckModified;
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.StartAtExit(Sender: TObject);
|
|
begin
|
|
FStartPageIndex := TdxPSValueEdit(Sender).Value;
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.btnDefaultClick(Sender: TObject);
|
|
var
|
|
S : string;
|
|
begin
|
|
S := Format(cxGetResourceString(@sdxPNFormatsChangeDefaultFormat),
|
|
[cbxPageNumberingFormat.Properties.Items[cbxPageNumberingFormat.ItemIndex]]);
|
|
if MessageQuestion(S) then
|
|
begin
|
|
FSetPageNumberingFormatAsDefault := True;
|
|
CheckModified;
|
|
end;
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.lblPageNumberFormatClick(Sender: TObject);
|
|
begin
|
|
ActivateComboBoxControl(Self, TcxLabel(Sender).FocusControl);
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.rbtnStartAtClick(Sender: TObject);
|
|
begin
|
|
if FControlsUpdating then Exit;
|
|
ContinueFromPrevSection := False;
|
|
ActiveControl := FseStartAt;
|
|
CheckModified;
|
|
end;
|
|
|
|
procedure TdxfmPageNumberFormat.rbtnContinueFromPrevSectionClick(Sender: TObject);
|
|
begin
|
|
if FControlsUpdating then Exit;
|
|
ContinueFromPrevSection := True;
|
|
CheckModified;
|
|
end;
|
|
|
|
end.
|