我在公司的项目中使用了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;

08-05 07:28