editorsmaskdemomain.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 238 行
PAS
238 行
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.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?