git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@7 05c56307-c608-d34a-929d-697000501d7a
220 lines
7.8 KiB
ObjectPascal
220 lines
7.8 KiB
ObjectPascal
unit EditorsMaskDemoMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, Classes, Graphics, Controls, Forms,
|
|
Dialogs, cxGraphics, cxCustomData, cxStyles, cxMaskEdit,
|
|
cxLookAndFeels, ActnList, ImgList, Menus, cxButtonEdit, cxDBEdit,
|
|
cxNavigator, cxDBNavigator, cxContainer, cxEdit, cxTextEdit,
|
|
cxInplaceContainer, cxControls, ExtCtrls, ComCtrls,
|
|
StdCtrls, DemoBasicMain, cxVGrid, cxDBVGrid;
|
|
|
|
type
|
|
TEditorsMaskDemoMainForm = class(TDemoBasicMainForm)
|
|
Panel1: TPanel;
|
|
Panel3: TPanel;
|
|
Panel2: TPanel;
|
|
lbFirstName: TLabel;
|
|
lbMiddleName: TLabel;
|
|
lbLastName: TLabel;
|
|
lbCountry: TLabel;
|
|
lbPostalCode: TLabel;
|
|
lbCity: TLabel;
|
|
lbAddress: TLabel;
|
|
lbPhone: TLabel;
|
|
lbFax: TLabel;
|
|
lbEmail: TLabel;
|
|
lbHomePage: TLabel;
|
|
lbInfoPhone: TLabel;
|
|
lbInfoFax: TLabel;
|
|
lbInfoHomePage: TLabel;
|
|
lbInfoEmail: TLabel;
|
|
lbInfoPostalCode: TLabel;
|
|
lbInfoFirstName: TLabel;
|
|
lbInfoMiddleName: TLabel;
|
|
lbInfoLastName: TLabel;
|
|
lbInfoCountry: TLabel;
|
|
lbInfoCity: TLabel;
|
|
lbInfoAddress: TLabel;
|
|
Panel5: TPanel;
|
|
edtFirstName: TcxDBTextEdit;
|
|
edtMiddleName: TcxDBTextEdit;
|
|
edtLastName: TcxDBTextEdit;
|
|
edtCountry: TcxDBTextEdit;
|
|
edtCity: TcxDBTextEdit;
|
|
edtAddress: TcxDBTextEdit;
|
|
DBNavigator1: TcxDBNavigator;
|
|
edtPostalCode: TcxDBButtonEdit;
|
|
edtPhone: TcxDBButtonEdit;
|
|
edtFax: TcxDBButtonEdit;
|
|
edtHomePage: TcxDBButtonEdit;
|
|
edtEmail: TcxDBButtonEdit;
|
|
vgDepartments: TcxDBVerticalGrid;
|
|
cxDBVerticalGrid1NAME: TcxDBEditorRow;
|
|
cxDBVerticalGrid1CategoryRow1: TcxCategoryRow;
|
|
miDefaultMaskSettings: TMenuItem;
|
|
N1: TMenuItem;
|
|
miShowMaskButtons: TMenuItem;
|
|
procedure edtEmailPropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
procedure edtFaxPropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
procedure edtHomePagePropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
procedure edtPhonePropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
procedure edtPostalCodePropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
procedure miDefaultMaskExecute(Sender: TObject);
|
|
procedure miShowEditMaskButtonsExecute(Sender: TObject);
|
|
procedure vgDepartmentsLeftVisibleRecordIndexChanged(
|
|
Sender: TObject);
|
|
private
|
|
procedure ChangeLabel(ALabel: TLabel; AProperties: TcxCustomMaskEditProperties);
|
|
function GetMaskKindLabel(AMaskKind: TcxEditMaskKind): string;
|
|
procedure ShowEditMaskDialog(AProperties: TcxCustomEditProperties);
|
|
end;
|
|
|
|
var
|
|
EditorsMaskDemoMainForm: TEditorsMaskDemoMainForm;
|
|
|
|
implementation
|
|
|
|
uses
|
|
cxEditMaskEditor, EditorsMaskDemoData;
|
|
|
|
{$R *.dfm}
|
|
type
|
|
TcxCustomMaskEditPropertiesAccessor = class(TcxCustomMaskEditProperties);
|
|
|
|
const
|
|
cxDefaultPostalCodeMaskKind: TcxEditMaskKind = emkRegExprEx;
|
|
cxDefaultPhoneMaskKind: TcxEditMaskKind = emkStandard;
|
|
cxDefaultFaxMaskKind: TcxEditMaskKind = emkRegExprEx;
|
|
cxDefaultHomePageMaskKind: TcxEditMaskKind = emkRegExprEx;
|
|
cxDefaultEmailMaskKind: TcxEditMaskKind = emkRegExpr;
|
|
cxDefaultPostalCodeEditMask: string = '\d\d\d\d\d? | \w\w\w'' ''\w\w\w';
|
|
cxDefaultPhoneEditMask: string = '!\(999\) 000-0000;1;_';
|
|
cxDefaultFaxEditMask: string = '(\(\d\d\d\)'' '')?\d\d\d-\d\d\d\d';
|
|
cxDefaultHomePageEditMask: string = 'http\:\/\/(\w+(\.\w+)*@)?\w+\.\w+(\.\w+)*(/(\w+(/\w+)*/?)?)?';
|
|
cxDefaultEmailEditMask: string = '\w+@\w+\.\w+(\.\w+)*';
|
|
|
|
procedure TEditorsMaskDemoMainForm.edtEmailPropertiesButtonClick(
|
|
Sender: TObject; AButtonIndex: Integer);
|
|
begin
|
|
ShowEditMaskDialog((Sender as TcxDBButtonEdit).Properties);
|
|
ChangeLabel(lbInfoEmail, (Sender as TcxDBButtonEdit).Properties as TcxCustomMaskEditProperties);
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.edtFaxPropertiesButtonClick(
|
|
Sender: TObject; AButtonIndex: Integer);
|
|
begin
|
|
ShowEditMaskDialog((Sender as TcxDBButtonEdit).Properties);
|
|
ChangeLabel(lbInfoFax, (Sender as TcxDBButtonEdit).Properties as TcxCustomMaskEditProperties);
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.edtHomePagePropertiesButtonClick(
|
|
Sender: TObject; AButtonIndex: Integer);
|
|
begin
|
|
ShowEditMaskDialog((Sender as TcxDBButtonEdit).Properties);
|
|
ChangeLabel(lbInfoHomePage, (Sender as TcxDBButtonEdit).Properties as TcxCustomMaskEditProperties);
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.edtPhonePropertiesButtonClick(
|
|
Sender: TObject; AButtonIndex: Integer);
|
|
begin
|
|
ShowEditMaskDialog((Sender as TcxDBButtonEdit).Properties);
|
|
ChangeLabel(lbInfoPhone, (Sender as TcxDBButtonEdit).Properties as TcxCustomMaskEditProperties);
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.edtPostalCodePropertiesButtonClick(
|
|
Sender: TObject; AButtonIndex: Integer);
|
|
begin
|
|
ShowEditMaskDialog((Sender as TcxDBButtonEdit).Properties);
|
|
ChangeLabel(lbInfoPostalCode, (Sender as TcxDBButtonEdit).Properties as TcxCustomMaskEditProperties);
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.miDefaultMaskExecute(Sender: TObject);
|
|
begin
|
|
edtPostalCode.Properties.MaskKind := cxDefaultPostalCodeMaskKind;
|
|
edtPostalCode.Properties.EditMask := cxDefaultPostalCodeEditMask;
|
|
ChangeLabel(lbInfoPostalCode, edtPostalCode.Properties);
|
|
edtPhone.Properties.MaskKind := cxDefaultPhoneMaskKind;
|
|
edtPhone.Properties.EditMask := cxDefaultPhoneEditMask;
|
|
ChangeLabel(lbInfoPhone, edtPhone.Properties);
|
|
edtFax.Properties.MaskKind := cxDefaultFaxMaskKind;
|
|
edtFax.Properties.EditMask := cxDefaultFaxEditMask;
|
|
ChangeLabel(lbInfoFax, edtFax.Properties);
|
|
edtHomePage.Properties.MaskKind := cxDefaultHomePageMaskKind;
|
|
edtHomePage.Properties.EditMask := cxDefaultHomePageEditMask;
|
|
ChangeLabel(lbInfoHomePage, edtHomePage.Properties);
|
|
edtEmail.Properties.MaskKind := cxDefaultEmailMaskKind;
|
|
edtEmail.Properties.EditMask := cxDefaultEmailEditMask;
|
|
ChangeLabel(lbInfoEmail, edtEmail.Properties);
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.miShowEditMaskButtonsExecute(
|
|
Sender: TObject);
|
|
begin
|
|
TMenuItem(Sender).Checked := not TMenuItem(Sender).Checked;
|
|
edtPostalCode.Properties.Buttons.Items[0].Visible := TMenuItem(Sender).Checked;
|
|
edtPhone.Properties.Buttons.Items[0].Visible := TMenuItem(Sender).Checked;
|
|
edtFax.Properties.Buttons.Items[0].Visible := TMenuItem(Sender).Checked;
|
|
edtHomePage.Properties.Buttons.Items[0].Visible := TMenuItem(Sender).Checked;
|
|
edtEmail.Properties.Buttons.Items[0].Visible := TMenuItem(Sender).Checked;
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.ChangeLabel(ALabel: TLabel; AProperties: TcxCustomMaskEditProperties);
|
|
var
|
|
AText: string;
|
|
begin
|
|
with TcxCustomMaskEditPropertiesAccessor(AProperties) do
|
|
begin
|
|
if EmptyMask(EditMask) then
|
|
AText := 'No mask'
|
|
else
|
|
AText := GetMaskKindLabel(MaskKind);
|
|
end;
|
|
ALabel.Caption := AText;
|
|
end;
|
|
|
|
function TEditorsMaskDemoMainForm.GetMaskKindLabel(AMaskKind: TcxEditMaskKind): string;
|
|
begin
|
|
case AMaskKind of
|
|
emkStandard:
|
|
Result := 'Delphi Standard Mask';
|
|
emkRegExpr:
|
|
Result := 'Regular Expression';
|
|
emkRegExprEx:
|
|
Result := 'Regular Expression with Auto Complete Function';
|
|
else
|
|
Result := 'Unknown';
|
|
end;
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.ShowEditMaskDialog(AProperties: TcxCustomEditProperties);
|
|
var
|
|
ADialog: TcxEditMaskEditorDlg;
|
|
begin
|
|
if AProperties.InheritsFrom(TcxCustomMaskEditProperties) then
|
|
begin
|
|
ADialog := TcxEditMaskEditorDlg.Create(nil);
|
|
try
|
|
ADialog.MaskEditProperties := AProperties as TcxCustomMaskEditProperties;
|
|
ADialog.ShowModal;
|
|
finally
|
|
ADialog.Free;
|
|
end;
|
|
end;
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.vgDepartmentsLeftVisibleRecordIndexChanged(
|
|
Sender: TObject);
|
|
begin
|
|
vgDepartments.DataController.FocusedRecordIndex := vgDepartments.LeftVisibleRecord;
|
|
end;
|
|
|
|
end.
|
|
|