實戰中有時也會遇到,比方說像 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 的錯誤攔截
有認真看 |
沒有留言:
張貼留言