FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Botones personalizados en messagedlg
Hola!
Alguien sabe como se puede personalizar el caption de los botones de un messagedlg? por ejemplo, un messagedlg que alsalir tenga dos botones que ponga "hola" "adios" gracias! |
#2
|
||||
|
||||
Hola,
Hay una función en SwissDelphiCenter que puede venirte de perilla. Yo recuerdo que el compañero Román propuso una solución para este tema, y me pareció estupenda, pero, no he conseguido localizar el Hilo en cuestión. Lo mismo Román lee esto, se acuerda, y lo comenta. En todo caso la función que enlazo arriba parece cumplir perfectamente. |
#3
|
||||
|
||||
Y en lugar de hacer todo eso...
¿No sería mejor hacer un Form con los botones que quieras y llamarlo con ShowModal? En definitiva es lo que hace la rutina, pero no puedes darle un valor al caption mostrado en la barra de título. Ya puestos, construyes el Form al completo con parámetros más claros. La rutina lo creas con mbOkCancel... vale 2 botones, pero ahora le cambias el título a pelo, despues en el código tienes que verificar que devuelve mrOk que se corresponde con el primer título, o sea en el ejemplo un "1", o bien mrCancel que se corresponde con el botón "2"... ¿uf que lío de cosas no? Resulta más barato que devuelva, por ejemplo, el título del botón pulsado. Cuando el usuario pulsa en alguno de los botones personalizados, en tu Form pones ModalResult a mrOk, y en una propiedad que creas tú mismo en ese Form devuelves el título.
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#4
|
||||
|
||||
Hola,
Cita:
Cita:
Cita:
Lo primero que he hecho al ver la función ha sido decirme, David, puede mejorarse (ja, ja, ja) y lo segundo que he pensado ha sido: ¿para qué utilizar el parámetro "buttons"? ¿porqué no crear los botones mediante los "Caption" que se pasan como parámetros? He tardado un poco... casi me pongo a tratar de mejorar la función... hasta que me he dado cuenta que ese parámetro "buttons" tiene su quehacer, y que más vale dejarlo como está. Como digo, la función enlazada más arriba devuelve justo lo que se espera que devuelva un "MessageBox", esto es, qué botón pulso el usuario: "mbCancel", "mbOK", "mbYes", etc. En ningún momento hace uso de los "Caption" de los botones para determinar el resultado, porque para eso tiene los botones, cada cual son su particular "constante" asociada. En fin, Lepe, que creo, efectivamente, siempre puede hacerse uno su propio formulario para estos menesteres, pero, una cosa no quita la otra, y, personalmente, no veo nada complicada la manera de prodecer de la función de que hablamos. Si alguien me demuestra otra cosa yo encantado, ¿eh? Que aquí hemos venido para aprender. |
#5
|
|||
|
|||
Si queria usar un messagedlg era precisamente para ahorrarme crear una form, y ahorrarme codigo, nosé, pensé que seria más facil, no obstante, gracias dec, e usado el codigo del link que me has pasado y me ha ido a la perfección, aunque e tenido que incluir un poco de codigo, pero weno, me ha ido bien.
un saludo! |
#6
|
||||
|
||||
Cita:
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: 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:
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. |
#7
|
||||
|
||||
Hola,
Pues mira que me estás convenciendo... Tal vez pudiera usarse la función que enlazé más arriba para mostrar diálogos hasta cierto punto predecibles, esto es, que contengan un par de botones, en definitiva, tal como se espera del "MessageDlg". Ahora bien, ¿puede mejorarse el asunto? No lo dudo. Desde luego lo que dices parece muy razonable. |
#8
|
||||
|
||||
Como dije anteriormente, esa función es bastante limitada:
- Barra de título en inglés. - Iconos bastante justitos (son 4, quizás basten) - Habría que modificar también el Width de cada botón, para que se ajuste al texto pasado, si no, quedará truncado el texto. - Ya puestos a modificar un Dialog de ese tipo, pues incluso se le pueden añadir negritas, subrayados y colores al texto, para hacerlo más "moderno". Hay muchos Labels que lo permiten. Siempre se puede crear un Form para ese propósito y reutilizarlo en varios proyectos. Que conste que lo pensé hace tiempo, pero seamos realistas, hace falta tiempo para hacerlo y un simple MessageBox "dá el avío" . Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Botones MessageDlg en Español | Alexander | Varios | 13 | 20-09-2012 16:42:30 |
cambiar a español los botones del MessageDlg | negama | Varios | 4 | 02-02-2012 18:38:54 |
Reportes en personalizados | jesgami | Impresión | 2 | 15-11-2005 20:35:28 |
un MessageDlg con 3 botones.. | Jaco | Varios | 2 | 10-10-2003 23:05:50 |
un MessageDlg con 3 botones.. | Jaco | API de Windows | 1 | 10-10-2003 22:37:40 |
|