在OnExit里写:
procedure TForm1.MaskEdit1Exit(Sender: TObject);
begin
  if ... then
   begin
    showmessage('error');
    MaskEdit1.SetFocus ; //重新获得焦点
   end;
end;

解决方案 »

  1.   

    笨办法:
    procedure TForm1.MaskEdit1Exit(Sender: TObject);
    var
      str1,str2,str3:string;
    begin
      str1:=copy(MaskEdit1.text,1,3); //假设每一格占三个字符
      str2:=copy(MaskEdit1.text,5,3);
      str3:=copy(MaskEdit1.text,9,3);
      if str1='   ' then
       begin
        showmessage('第一格不能为空');
        MaskEdit1.SetFocus ; //重新获得焦点
       end
      else if str2='   ' then
       begin
        showmessage('第二格不能为空');
        MaskEdit1.SetFocus ; //重新获得焦点
       end
      else if str3='   ' then
       begin
        showmessage('第三格不能为空');
        MaskEdit1.SetFocus ; //重新获得焦点
       end;
    end;