home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 August / VPR9608A.BIN / del20try / install / data.z / MASK.INT < prev    next >
Text File  |  1996-05-08  |  4KB  |  142 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Delphi Visual Component Library                 }
  5. {                                                       }
  6. {       Copyright (c) 1995,96 Borland International     }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit Mask;
  11.  
  12. {$R-}
  13.  
  14. interface
  15.  
  16. uses Windows, SysUtils, Classes, StdCtrls, Controls, Messages,
  17.   Forms, Graphics, Menus;
  18.  
  19. const
  20.   DefaultBlank: Char = '_';
  21.   MaskFieldSeparator: Char = ';';
  22.   MaskNoSave: Char = '0';
  23.  
  24.   mDirReverse = '!';         { removes leading blanks if true, else trailing blanks}
  25.   mDirUpperCase = '>';       { all chars that follow to upper case }
  26.   mDirLowerCase = '<';       { all chars that follow to lower case }
  27.                              { '<>' means remove casing directive }
  28.   mDirLiteral = '\';         { char that immediately follows is a literal }
  29.  
  30.   mMskAlpha = 'L';           { in US = A-Z,a-z }
  31.   mMskAlphaOpt = 'l';
  32.   mMskAlphaNum = 'A';        { in US = A-Z,a-z,0-9 }
  33.   mMskAlphaNumOpt  = 'a';
  34.   mMskAscii = 'C';           { any character}
  35.   mMskAsciiOpt = 'c';
  36.   mMskNumeric = '0';         { 0-9, no plus or minus }
  37.   mMskNumericOpt = '9';
  38.   mMskNumSymOpt = '#';       { 0-9, plus and minus }
  39.  
  40.    { intl literals }
  41.   mMskTimeSeparator = ':';
  42.   mMskDateSeparator = '/';
  43.  
  44. type
  45.  
  46.   TMaskCharType = (mcNone, mcLiteral, mcIntlLiteral, mcDirective, mcMask,
  47.     mcMaskOpt, mcFieldSeparator, mcField);
  48.   TMaskDirectives = set of (mdReverseDir, mdUpperCase, mdLowerCase,
  49.     mdLiteralChar);
  50.  
  51. type
  52. { Exception class }
  53.   EDBEditError = class(Exception);
  54.  
  55.   TMaskedState = set of (msMasked, msReEnter, msDBSetText);
  56.  
  57. { TCustomMaskEdit }
  58.  
  59.   TCustomMaskEdit = class(TCustomEdit)
  60.   protected
  61.     procedure ReformatText(const NewMask: string);
  62.     procedure GetSel(var SelStart: Integer; var SelStop: Integer);
  63.     procedure SetSel(SelStart: Integer; SelStop: Integer);
  64.     procedure SetCursor(Pos: Integer);
  65.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  66.     procedure KeyUp(var Key: Word; Shift: TShiftState); override;
  67.     procedure KeyPress(var Key: Char); override;
  68.     function EditCanModify: Boolean; virtual;
  69.     procedure Reset; virtual;
  70.     function GetFirstEditChar: Integer;
  71.     function GetLastEditChar: Integer;
  72.     function GetNextEditChar(Offset: Integer): Integer;
  73.     function GetPriorEditChar(Offset: Integer): Integer;
  74.     function GetMaxChars: Integer;
  75.     procedure ValidateError;
  76.     procedure CheckCursor;
  77.     property EditMask: string;
  78.     property MaskState: TMaskedState;
  79.     property MaxLength: Integer;
  80.   public
  81.     constructor Create(AOwner: TComponent); override;
  82.     procedure ValidateEdit;
  83.     procedure Clear;
  84.     function GetTextLen: Integer;
  85.     property IsMasked: Boolean;
  86.     property EditText: string;
  87.     property Text: string;
  88.   end;
  89.  
  90. { TMaskEdit }
  91.  
  92.   TMaskEdit = class(TCustomMaskEdit)
  93.   published
  94.     property AutoSelect;
  95.     property AutoSize;
  96.     property BorderStyle;
  97.     property CharCase;
  98.     property Color;
  99.     property Ctl3D;
  100.     property DragCursor;
  101.     property DragMode;
  102.     property Enabled;
  103.     property EditMask;
  104.     property Font;
  105.     property MaxLength;
  106.     property ParentColor;
  107.     property ParentCtl3D;
  108.     property ParentFont;
  109.     property ParentShowHint;
  110.     property PasswordChar;
  111.     property PopupMenu;
  112.     property ReadOnly;
  113.     property ShowHint;
  114.     property TabOrder;
  115.     property TabStop;
  116.     property Text;
  117.     property Visible;
  118.     property OnChange;
  119.     property OnClick;
  120.     property OnDblClick;
  121.     property OnDragDrop;
  122.     property OnDragOver;
  123.     property OnEndDrag;
  124.     property OnEnter;
  125.     property OnExit;
  126.     property OnKeyDown;
  127.     property OnKeyPress;
  128.     property OnKeyUp;
  129.     property OnMouseDown;
  130.     property OnMouseMove;
  131.     property OnMouseUp;
  132.     property OnStartDrag;
  133.   end;
  134.  
  135. function FormatMaskText(const EditMask: string; const Value: string): string;
  136. function MaskGetMaskSave(const EditMask: string): Boolean;
  137. function MaskGetMaskBlank(const EditMask: string): Char;
  138. function MaskGetFldSeparator(const EditMask: string): Integer;
  139.  
  140.  
  141. implementation
  142.