Ver Mensaje Individual
  #6  
Antiguo 06-06-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
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
  // blah blah
else if respuesta = INSERTAR then
  // blah blah
else if respuesta = CANCELAR
  // blah blah

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
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 06-06-2006 a las 21:47:22.
Responder Con Cita