git-svn-id: https://192.168.0.254/svn/Componentes.Terceros.DevExpressVCL@8 05c56307-c608-d34a-929d-697000501d7a
238 lines
8.2 KiB
ObjectPascal
238 lines
8.2 KiB
ObjectPascal
unit EditorsMaskDemoMain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, Classes, Graphics, Controls, Forms,
|
|
Dialogs, cxControls, cxLookupGrid, cxLookupDBGrid, cxGridCustomTableView,
|
|
cxGridTableView, cxGridDBTableView, cxGridLevel, cxGridCustomView, cxGrid,
|
|
cxGridCardView, cxGridDBCardView, cxMaskEdit, StdCtrls, ExtCtrls,
|
|
cxContainer, cxEdit, cxTextEdit, cxDropDownEdit, cxDBEdit, cxStyles,
|
|
Menus, ActnList, ImgList, ComCtrls, cxLookAndFeels,
|
|
cxButtonEdit, DBCtrls, EditorsMaskDemoData,
|
|
cxCustomData, cxGraphics, cxFilter, cxData, DB, cxDBData, cxClasses,
|
|
cxEditMaskEditor, cxNavigator, cxDBNavigator, cxDataStorage;
|
|
|
|
type
|
|
TEditorsMaskDemoMainForm = class(TForm)
|
|
mmMain: TMainMenu;
|
|
miAbout: TMenuItem;
|
|
miFile: TMenuItem;
|
|
miOptions: TMenuItem;
|
|
miExit: TMenuItem;
|
|
sbMain: TStatusBar;
|
|
lbDescrip: TLabel;
|
|
Panel1: TPanel;
|
|
Panel3: TPanel;
|
|
cxGrid: TcxGrid;
|
|
cxGridDBTableView: TcxGridDBTableView;
|
|
cxGridDBTableViewNAME: TcxGridDBColumn;
|
|
cxGridLevel: TcxGridLevel;
|
|
miShowMaskButtons: TMenuItem;
|
|
miDefaultMaskSettings: TMenuItem;
|
|
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;
|
|
LookAndFeelController: TcxLookAndFeelController;
|
|
procedure miAboutClick(Sender: TObject);
|
|
procedure miExitClick(Sender: TObject);
|
|
procedure edtPostalCodePropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
procedure cxDBButtonEdit1PropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
procedure cxDBButtonEdit2PropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
procedure cxDBButtonEdit3PropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
procedure cxDBButtonEdit4PropertiesButtonClick(Sender: TObject;
|
|
AButtonIndex: Integer);
|
|
procedure miShowMaskButtonsClick(Sender: TObject);
|
|
procedure miDefaultMaskSettingsClick(Sender: TObject);
|
|
private
|
|
procedure ChangeLabel(ALabel: TLabel; AProperties: TcxCustomMaskEditProperties);
|
|
function GetMaskKindLabel(AMaskKind: TcxEditMaskKind): string;
|
|
procedure ShowEditMaskDialog(AProperties: TcxCustomEditProperties);
|
|
end;
|
|
|
|
var
|
|
EditorsMaskDemoMainForm: TEditorsMaskDemoMainForm;
|
|
|
|
implementation
|
|
|
|
uses
|
|
AboutDemoForm;
|
|
|
|
{$R *.dfm}
|
|
|
|
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+)*';
|
|
|
|
type
|
|
TcxCustomMaskEditPropertiesAccess = class(TcxCustomMaskEditProperties);
|
|
|
|
procedure TEditorsMaskDemoMainForm.miAboutClick(Sender: TObject);
|
|
begin
|
|
ShowAboutDemoForm;
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.miExitClick(Sender: TObject);
|
|
begin
|
|
Close;
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.ChangeLabel(ALabel: TLabel; AProperties: TcxCustomMaskEditProperties);
|
|
var
|
|
AText: string;
|
|
begin
|
|
if TcxCustomMaskEditPropertiesAccess(AProperties).EmptyMask(AProperties.EditMask) then
|
|
AText := 'No mask'
|
|
else
|
|
AText := GetMaskKindLabel(AProperties.MaskKind);
|
|
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.edtPostalCodePropertiesButtonClick(
|
|
Sender: TObject; AButtonIndex: Integer);
|
|
begin
|
|
ShowEditMaskDialog((Sender as TcxDBButtonEdit).Properties);
|
|
ChangeLabel(lbInfoPostalCode, (Sender as TcxDBButtonEdit).Properties as TcxCustomMaskEditProperties);
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.cxDBButtonEdit1PropertiesButtonClick(
|
|
Sender: TObject; AButtonIndex: Integer);
|
|
begin
|
|
ShowEditMaskDialog((Sender as TcxDBButtonEdit).Properties);
|
|
ChangeLabel(lbInfoPhone, (Sender as TcxDBButtonEdit).Properties as TcxCustomMaskEditProperties);
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.cxDBButtonEdit2PropertiesButtonClick(
|
|
Sender: TObject; AButtonIndex: Integer);
|
|
begin
|
|
ShowEditMaskDialog((Sender as TcxDBButtonEdit).Properties);
|
|
ChangeLabel(lbInfoFax, (Sender as TcxDBButtonEdit).Properties as TcxCustomMaskEditProperties);
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.cxDBButtonEdit3PropertiesButtonClick(
|
|
Sender: TObject; AButtonIndex: Integer);
|
|
begin
|
|
ShowEditMaskDialog((Sender as TcxDBButtonEdit).Properties);
|
|
ChangeLabel(lbInfoHomePage, (Sender as TcxDBButtonEdit).Properties as TcxCustomMaskEditProperties);
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.cxDBButtonEdit4PropertiesButtonClick(
|
|
Sender: TObject; AButtonIndex: Integer);
|
|
begin
|
|
ShowEditMaskDialog((Sender as TcxDBButtonEdit).Properties);
|
|
ChangeLabel(lbInfoEmail, (Sender as TcxDBButtonEdit).Properties as TcxCustomMaskEditProperties);
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.miShowMaskButtonsClick(Sender: TObject);
|
|
var
|
|
AButtonVisible: Boolean;
|
|
begin
|
|
with Sender as TMenuItem do
|
|
begin
|
|
Checked := not Checked;
|
|
AButtonVisible := Checked;
|
|
end;
|
|
edtPostalCode.Properties.Buttons.Items[0].Visible := AButtonVisible;
|
|
edtPhone.Properties.Buttons.Items[0].Visible := AButtonVisible;
|
|
edtFax.Properties.Buttons.Items[0].Visible := AButtonVisible;
|
|
edtHomePage.Properties.Buttons.Items[0].Visible := AButtonVisible;
|
|
edtEmail.Properties.Buttons.Items[0].Visible := AButtonVisible;
|
|
end;
|
|
|
|
procedure TEditorsMaskDemoMainForm.miDefaultMaskSettingsClick(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;
|
|
|
|
end.
|
|
|