Prueba este codigo, ami me funciona muy bien.
Código Delphi
[-]
procedure TForm1.MaskEdit1Exit(Sender: TObject);
Function IsTimeValid(Const ATime:String;Const AShowError:Boolean):Boolean;
Var
Hora,Minutos:string;
Code,Value,iError:integer;
Begin
Hora :=Copy(ATime,1,Pos(':',ATime)-1);
Minutos:=Copy(ATime,Pos(':',ATime)+1,Length(ATime));
iError:=0;
Val(Hora,Value,Code);
If Not ((Code=0) And (Value>=0) and (Value<=23)) Then
iError:=1;
Val(Minutos,Value,code);
If Not ((Code=0) And (Value>=0) And (Value<=59)) Then
Inc(iError,2);
If AShowError Then
Begin
Case (iError) Of
1,3: ShowMessage('Hora invalida...');
2: ShowMessage('Minutos invalidos...');
End;
End;
Result:=(iError=0)
End;
begin
If Not IsTimeValid(MaskEdit1.Text,True) Then
MaskEdit1.SetFocus;
end;
Saludos desde
Concepcion-Chile