关于是哪个maskedit控件出现的异常(100分)

  • 主题发起人 longshine
  • 开始时间
L

longshine

Unregistered / Unconfirmed
GUEST, unregistred user!
我在一个form上放置了很多maskedit控件,若输入不符合规范,则进行异常处理。所有的
异常都是通过替代Application.OnException事件的方法处理的,可是这样对不同的控件
给出的出错信息都是相同的。而我想对应不同的maskedit的控件给出不同的出错信息。
请问怎么判断到底是哪个控件出现了异常呢?
 
在TCustomMaskEdit控件下继承一个新的类,重载它的ValidateError方法,自己写提示或处理!
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask;

type
TMyMaskEdit=Class(TCustomMaskEdit)
protected
procedure ValidateError; Override;
end;
TForm1 = class(TForm)
MaskEdit1: TMaskEdit;
procedure FormCreate(Sender: TObject);
private
MaskEdit2: TMyMaskEdit;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

{ TMyMaskEdit }

procedure TMyMaskEdit.ValidateError;
begin
MessageBeep(0);
ShowMessage('My self error message!');
//或者你干脆把错误提示字符串写成一个属性,在此调用显示这个属性,这样就可以自定义每个控件的不同提示.
Abort;//最好有这句,可以中止操作比如Exit.
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
MaskEdit2:=TMyMaskEdit.Create(Self);
MaskEdit2.Parent:=Self;
MaskEdit2.EditMask:=MaskEdit1.EditMask;
end;

end.
 
接受答案了.
 
顶部