實戰中有時也會遇到,比方說像 TMaskEdit 的 ValidateError 事件的覆寫
uses //...
type
// interceptor class
TMaskEdit = class(Mask.TMaskEdit)
procedure ValidateError; override;
end;
TForm1 = class(TForm)
// any code below
然後在 unit 最後面就可以寫覆載內容,例如像:
※20121114 感謝cat200188提供程式內容
procedure TMaskEdita.ValidateError;
var SMaskEditErra :String;
begin
// 為了避開系統的錯誤訊息,故不使用 inherited
//inherited;
SMaskEditErra := '這是中文測試!!';
raise EDBEditError.CreateResFmt({$IFNDEF CLR}@{$ENDIF}SMaskEditErra, [EditMask]);
end;
遇到VCL元件不足的地方利用這個方式可以很輕鬆擴展它
嗯,以上基礎課程就到這邊
參考資料
Delphi Interceptor Classes -> TButton = class(TButton)
Synchronizing Threads and GUI in Delphi application
TMaskEdit 的錯誤攔截
![]() |
| 有認真看 |
.jpg)
沒有留言:
張貼留言