Cita:
Empezado por Dec
¿De dónde sacas que la función compruebe lo que tiene que retornar basándose en el título de ningún botón? ¡Por eso es casi perfecta! ¡Porque devuelve justo lo que se espera que devuelva un "MessageDlg"!
|
No he pretendido decir eso.
Imagina que le paso 3 captions para los buttons:
- "Crear Nueva Factura"
- "Insertar en la Factura Actual"
- "Cancelar Proceso"
¿Qué botones asocio con cada una de esos títulos? ¿eh?, ¿eh?, ¿eh?
Prefiero que la rutina devuelva el texto, o una constante u otra cosa que aclare el código fuente; para no recordar que mrIgnore se corresponde con "Insertar en la Factura Actual".
Imagina que en mi programa creo 3 constantes:
Código Delphi
[-]const CREAR = "Crear Factura";
const INSERTAR = "Insertar en Factura Actual";
const CANCELAR = "Cancelar Proceso";
A tu rutina le paso las 3 constantes, y la función me devuelve el Caption de los botones. Fijate qué código tan fácil de leer:
Código Delphi
[-]
var respuesta :string;
begin
respuesta = MessageDlgPropio(¿Qué desea hacer con los productos seleccionados?, [CREAR, INSERTAR, CANCELAR]);
if respuesta = CREAR then
else if respuesta = INSERTAR then
else if respuesta = CANCELAR
En programas pequeños no importa, pero cuando se trata de depurar o corregir un programa de 300.000 lineas de código, te aseguro que si importa esos pequeños detalles que te alejan de tu tarea principal (depurar o corregir), haciendo que pierdas tiempo viendo si el valor devuelto se corresponde con la lógica del programa.
Por supuesto es mi opinión, ni buena, ni mala, es una opinión más; de eso se trata al responder un hilo, compartir ideas y experiencias.
Saludos