Creo que con esta implementación gracias a la ayuda de todos ustedes la función cumple con mis especificidades.
Ahí se las dejo.
Código Delphi
[-]Function CIEsValido(CI : String) : Boolean;
var
dia, mes, anio : Word;
begin
Result:=True;
if Length(CI)<>11 then
begin
Application.MessageBox('No. de Carnet de Identidad incompleto.' + #13 + 'Rectifique por favor.','SAF', MB_ICONERROR);
Result := False;
Exit;
end;
anio := StrToInt(Copy(CI,0,2));
mes := StrToInt(Copy(CI,3,2));
dia := StrToInt(Copy(CI,5,2));
if (mes > 12) or (mes < 1) then
begin
Application.MessageBox('Error en el mes del Carnet de Identidad.' + #13 + 'Rectifique por favor.','SAF', MB_ICONERROR);
Result := False;
Exit;
end;
if not IsValidDate(anio, mes, dia) then
begin
Application.MessageBox('Error en la cantidad de dias.' + #13 + 'Rectifique por favor.','SAF', MB_ICONERROR);
Result := False;
Exit;
end;
De todos modos si alguien cree que se le pudiera agregar algo mas ...
Muchas gracias
Salu2,
Ledian.