Las ideas son buenas, sin embargo difiero de los dos posts anteriores, de los amigos
roman y
obiwan en un punto. Siempre es cuestión de gustos, pero yo creo que si una función no tiene un valor lógico que devolver, ni debe devolver 0 (o cualquier otro valor "bandera"), ni mostrar por si sola un mensaje de error, pues eso limita a su usuario final (el programador que la llama).
Lo correcto, desde mi particular punto de vista, es elevar una excepción.
en ese caso, sustituir el ShowMessage de Romàn, por un
raise exception.create(''Error en Mes Seleccionado');
al final de cuentas, si el usuario no maneja la excepción en un bloque try/except, el mismo delphi normalmente mostrará el mensaje de error al usuario, pero la ejecución de la rutina que llamó a nombremes es mucho mas simple, pues simplemente si el mes no es válido, el resto del código despues de la llamada ya no se ejecuta, evitando chequeos (ifs) posteriores, y errores lógicos.
Hasta luego.