별로 뽀족한 방법은 아니지만..
콤포넌트의 소스를 고치셔서 다시 등록하는 방법을 알려드립니다..
(제가 주로 쓰는 방법이라서리..)
하지만 저도 요즘 너무 시간에 쫓기는 지라..
길만 가르켜 드립니다..
델파이 및의 source\VCL\Mask.pas라는 화일을 열어 보시면..
아래와 같은 곳이 있습니다..
이곳이 문제인데..
이곳 때문에 OnExit 이벤트이전에 에러 메시지가 뜹니다..
이곳을 수정하셔서 사용하세요..
From 류..
---------
procedure TCustomMaskEdit.ValidateError;
var
Str: string;
begin
MessageBeep(0);
Str := EditMask;
Str := Format(SMaskEditErr, [Str]);
// 이부분을 고치시던가
raise EDBEditError.Create(Str);
end;
또는
procedure TCustomMaskEdit.CMExit(var Message: TCMExit);
begin
if IsMasked and not (csDesigning in ComponentState) then
begin
ValidateEdit;
CheckCursor;
end;
inherited; // 이것을 맨위로 올리시던가..
end;
|