Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Cuadros de mensaje personalizados (https://www.clubdelphi.com/foros/showthread.php?t=62873)

radenf 19-01-2009 15:18:47

Cuadros de mensaje personalizados
 
Un saludo a todos y felicitaciones por su gran trabajo.

Ante diferentes eventos Windows muestra un cuadro de mensaje, por ejemplo "contraseña no válida" o "registro no encontrado".
Quisera crear mis propios cuadros de mensaje personalizados ante diferentes eventos habituales en la ejecución de una aplicación, que sustituyan los que windows muestra por defecto, básicamente para que mantengan las características del skin que he utilizado en la aplicación.
Agradezco si alguien puede señalarme el código o alguna manera para activar estos pequeños forms en vez de los de Windows.

Salu2 y muchas gracias

dec 22-02-2009 10:49:29

Hola,

Si eres tú quien lanza los mensajes que dices, o sea, si haces uso de funciones como "MessageDlg()" o similares... el asunto puede no resultar sencillo. Salvo que, si eres tú quien lanza los mensajes en cuestión, podrías prepararte un formulario para estos casos, de modo que mostrases dicho formulario, y dentro de este el mensaje correspondiente. De esta forma el formulario sería tal como tú quieres, pues lo diseñarías tú mismo. Pero, me da en la nariz que no estoy acertando con la solución...

radenf 22-02-2009 13:13:06

Gracias por tu respuesta dec, pero no es esa la solución a mi pregunta. Los cuadros de mensaje que yo lanzo funcionan sin problema. Mi inquietud es como modificar los mensajes que lanza Windows ante diferentes situaciones, por ejemplo al querer borrar un registro de la base de datos, el programa en forma automática pregunta en un cuadro de mensaje ¿Desea eliminar el registro?

Saludos y muchas gracias

dec 22-02-2009 14:13:46

Hola,

Me lo temía. ;) Pero, es que tiene que haber alguna forma de que no sea Windows (?) quien muestre el mensaje de turno cuando un usuario de TU APLICACIÓN quiera eliminar un registro de la base de datos. ¿No deberías tú poder controlar qué hacer o dejar de hacer en estas situaciones? Por lo tanto hay algo que se me escapa, porque, no entiendo cómo es Windows quien lanza esos mensajes, o si es algún componente de terceros, en todo caso, porqué no puedes tú lanzar (o no lanzar) en estos casos tu propio cuadro de diálogo... :rolleyes:

escafandra 22-02-2009 15:46:31

Quizás esto pueda ayudar. Como muestra, personalización de MessageBox.

Saludos.

radenf 22-02-2009 21:00:19

Al parecer el tema es complejo.
Revisaré lo que me sugiere escafandra y les cuento.
Muchas gracias por sus aportes.

Un gran saludo

roman 22-02-2009 22:05:29

Yo opino como dec. Si bien puede ser útil e interesante lo que propone escafandra, no deja de ser extraño querer modificar mensajes que en principio están bajo tu control y que, por tanto, puedes modificar sin recurrir a "hackings".

Un mensaje como "Registro no encontrado" no es un mensaje estándar de Windows, es sólo un mensaje que tu aplicación o algún componente de tu aplicación presenta usando una API como MessageBox.

Muchos de estos mensajes son el resultado de una excepción, misma que puedes interceptar y relanzarla usando tu propio mensaje personalizado.

// Saludos

escafandra 23-02-2009 00:09:23

Cita:

Empezado por roman (Mensaje 339004)
Yo opino como dec. Si bien puede ser útil e interesante lo que propone escafandra, no deja de ser extraño querer modificar mensajes que en principio están bajo tu control y que, por tanto, puedes modificar sin recurrir a "hackings".

Si yo también estoy de acuerdo con la solución mas sencilla, es decir, hacer nuestro propio Form notificador, como propuso dec. Solo quise dar otro punto de vista que me parece técnicamente interesante. :rolleyes:

Saludos.

radenf 23-02-2009 01:39:58

Muchas gracias por sus aportes.
Es muy probable como señala roman que sean mensajes generados por el motor de la base de datos y no por Windows como yo creía. Desafortunadamente mi escaso dominio de Delphi no me da para hacer mi propio form notificador. Me pueden indicar, por favor, dónde puedo hallar información al respecto ya que intenté lo propuesto por escafandra y me da errores, probablemente porque lo estoy haciendo mal.

Saludos y gracias de nuevo

Lord Delfos 26-02-2009 21:49:27

Eh... No es por promocionarme a mí mismo...:) Pero en la sección de trucos subí un código para esto.

Truco 577.

radenf 27-02-2009 00:43:21

Muchas gracias por tu aporte Lord Delfos.
En todo caso ya logré solucionar el problema, puesto que investigando más a fondo descubrí que el programa que uso para los skins (BusinessSkinForm) posee la opción de incorporar cuadros de mensaje personalizados a distintos componentes, tales como dbgrids, dbnavigator y otros.

Saludos y muchas gracias.


La franja horaria es GMT +2. Ahora son las 14:51:18.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi