amaskpad.pas
来自「delphi编程控件」· PAS 代码 · 共 115 行
PAS
115 行
unit amaskpad;
(*
COPYRIGHT (c) RSD Software 1997 - 98
All Rights Reserved.
*)
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask;
type
TFACLMaskEditEditor = class(TForm)
Label1: TLabel;
EMaskName: TEdit;
LInputMask: TLabel;
EInput: TEdit;
LBlanks: TLabel;
EBlanks: TEdit;
CBLiteral: TCheckBox;
GroupBox1: TGroupBox;
LTextInput: TLabel;
MaskEdit: TMaskEdit;
BOk: TButton;
BCancel: TButton;
BHelp: TButton;
procedure EMaskNameChange(Sender: TObject);
procedure CBLiteralClick(Sender: TObject);
procedure EBlanksChange(Sender: TObject);
procedure EInputChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
function EditACLMaskEditStringEdit(var AName, AValue, AMask : String) : Boolean;
implementation
{$R *.DFM}
function EditACLMaskEditStringEdit(var AName, AValue, AMask : String) : Boolean;
var
AForm: TFACLMaskEditEditor;
begin
AForm := TFACLMaskEditEditor.Create(Nil);
with AForm do begin
EMaskName.Text := AName;
EInput.Text := AMask;
MaskEdit.Text := AValue;
EMaskNameChange(Nil);
CBLiteral.Checked := MaskGetMaskSave(AMask);
EBlanks.Text := MaskGetMaskBlank(AMask);
ShowModal;
if(ModalResult = mrOk) then begin
AName := EMaskName.Text;
AMask := EInput.Text;
MaskEdit.EditMask := '';
AValue := MaskEdit.Text;
Result := True;
end else Result := False;
end;
AForm.Free;
end;
procedure TFACLMaskEditEditor.EMaskNameChange(Sender: TObject);
begin
BOk.Enabled := EMaskName.Text <> '';
end;
procedure TFACLMaskEditEditor.CBLiteralClick(Sender: TObject);
Var
St, St1 : String;
i : Integer;
begin
if(EInput.Text <> '') then begin
if(EBlanks.Text = '') then
EBlanks.Text := MaskGetMaskBlank(EInput.Text);
if(CBLiteral.Checked) then
St := MaskFieldSeparator + '1'
else St := MaskFieldSeparator + '0';
St := St + MaskFieldSeparator + EBlanks.Text;
if MaskGetMaskSave(EInput.Text) then
St1 := MaskFieldSeparator + '1'
else St1 := MaskFieldSeparator + '0';
St1 := St1 + MaskFieldSeparator + MaskGetMaskBlank(EInput.Text);
i := Pos(St1, EInput.Text);
if(i > 0) then
EInput.Text := Copy(EInput.Text, 1, i - 1) + St
else EInput.Text := EInput.Text + St;
end;
end;
procedure TFACLMaskEditEditor.EBlanksChange(Sender: TObject);
begin
if(EBlanks.Text = '') then exit;
if(MaskGetMaskBlank(EInput.Text) = '')
And (EInput.Text <> '') then begin
if(EInput.Text[Length(EInput.Text)] = MaskFieldSeparator) then
EInput.Text := EInput.Text + MaskFieldSeparator;
EInput.Text := EInput.Text + EBlanks.Text;
end else CBLiteralClick(Sender);
end;
procedure TFACLMaskEditEditor.EInputChange(Sender: TObject);
begin
MaskEdit.EditMask := EInput.Text;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?