我在公司的项目中使用了delphi。
我正在使用infopower的控件,并且有一个DBedit,其中已设置了PictureMask。在插入错误的类型值的情况下,在退出控件时,我想捕获异常以更改异常消息。
我的问题是我不了解何时进行图片遮罩验证。我尝试将Try / Except块放在OnExit事件上,但它没有被缓存,并使用默认消息触发。
我已经在控件的原始代码中看到,异常是在私有的CMExit过程内部出现的,我无法覆盖它,也不知道是哪个事件触发了它。
我在问如何在我的代码中捕获该消息。
最佳答案
您可以将插入器类添加到窗体中,并在消息CM_EXIT中处理异常。
type
TwwDBEdit= class (wwdbedit.TwwDBEdit)
procedure CMExit(var Message: TCMExit); message CM_EXIT;
end;
TForm1 = class(TForm)
wwDBEdit1: TwwDBEdit;
//..... other declarations here
implementation
{$R *.dfm}
{ wwDBEdit1 }
procedure TwwDBEdit.CMExit(var Message: TCMExit);
begin
try
inherited; // call the inherited handler within try
except
Showmessage('Your Code'); // and handle it in except
end;
end;