PDA

Ver la Versión Completa : Cuadro de diálogo con "Sí a Todo"


Lord Delfos
20-05-2008, 16:05:55
Bueno, esto tiene que haber sido preguntado y contestado un millón de veces, pero la verdad es que no puedo encotrar cómo era.

¿Como hago para meter un botón "Sí a todo" en un MessageBox?

O peor aún, ¿Que con MessageDlg me salga en el idioma por defecto del windows instalado?

La traducción de los string de la VCL no es una opción porque realmente tiene que cambiar de idioma según la configuración regional.

¿Ideas? ¿Sugerencias? ¡Cualquier hueso, por más pelado que sea, es bienvenido!

Gracias gente.

BlueSteel
20-05-2008, 16:24:42
ya buscastes por MessageBox (http://www.clubdelphi.com/foros/search.php?searchid=1352839)en el foro..... te dará muchos resultados
Salu2:p:D

ContraVeneno
20-05-2008, 16:54:15
case MessageDlg('Un mensaje', mtConfirmation, [mbYes, mbNo, mbCancel, mbNoToAll, mbYesToAll], 0) of
mrYes: ;
mrNo: ;
mrCancel: ;
mrNoToAll: ;
mrYesToAll: ;
end;


eso no lo hice yo, lo hizo el GExperts (http://www.gexperts.org/), yo solo presioné Ctrl + D y me genera el mensaje automáticamente.

Lord Delfos
20-05-2008, 18:10:39
BlueSteel: Sí... Como buscar, busqué, pero no encontré lo que ando buscando. No es que me quiera quejar del sistema de búsqueda, pero...

ContraVeneno: El problema con ese enfoque es que el texto de los botones está predefinido, porque usa unas constantes definidas en la VCL. Lo que yo quiero es algo como los Sí/No/Cancelar de toda la vida, que cambian según el idioma instalado.

La cosa parece peluda, porque tampoco encontré nada en la MSDN. Las constantes que aparecen para los botones de los cuadros parecen no tener el Sí a todo y el no a todo...

En fin, gracias a ambos por contestar.

Saludongos.

BlueSteel
20-05-2008, 18:17:59
BlueSteel: Sí... Como buscar, busqué, pero no encontré lo que ando buscando. No es que me quiera quejar del sistema de búsqueda, pero...

ContraVeneno: El problema con ese enfoque es que el texto de los botones está predefinido, porque usa unas constantes definidas en la VCL. Lo que yo quiero es algo como los Sí/No/Cancelar de toda la vida, que cambian según el idioma instalado.

La cosa parece peluda, porque tampoco encontré nada en la MSDN. Las constantes que aparecen para los botones de los cuadros parecen no tener el Sí a todo y el no a todo...

En fin, gracias a ambos por contestar.

Saludongos.

Pero si Contraveneno te puso las opciones ...

case MessageDlg('Un mensaje', mtConfirmation, [mbYes, mbNo, mbCancel, mbNoToAll, mbYesToAll], 0) of
mrYes: ;
mrNo: ;
mrCancel: ;
mrNoToAll: ;
mrYesToAll: ;
end;

ContraVeneno
20-05-2008, 18:32:33
El problema con ese enfoque es que el texto de los botones está predefinido, porque usa unas constantes definidas en la VCL. Lo que yo quiero es algo como los Sí/No/Cancelar de toda la vida, que cambian según el idioma instalado.


Pues eso es lo que hace conmigo, me aparecen los botones "Si, no, cancelar, si a todo, no a todo" de toda la vida y cambian de idioma dependiendo del sistema operativo. No entiendo a que te refieres.

roman
20-05-2008, 18:48:48
Pues eso es lo que hace conmigo, me aparecen los botones "Si, no, cancelar, si a todo, no a todo" de toda la vida y cambian de idioma dependiendo del sistema operativo. No entiendo a que te refieres.

¿Qué versión de Delphi usas? Con Delphi 7, MessageDlg ponen los textos de los botones en inglés, a menos, supongo, que traduzcas los recursos.

// Saludos

Lord Delfos
21-05-2008, 17:10:01
Ah... De eso no me di cuenta, es un Delphi 5. Quizás en versiones más modernosas funcione de otra manera.

Lo que me lleva a pensar en usar una función de una unidad compilada con un Delphi que sí muestre los valores en diferentes idiomas.

¿Se podrá hacer algo así? ¿Usar una unit compilada con una versión más reciente?

Gracias a todos por contestar.

roman
21-05-2008, 17:31:59
Ah... De eso no me di cuenta, es un Delphi 5. Quizás en versiones más modernosas funcione de otra manera.

En realidad mi pregunta iba dirigida más a ContraVeneno, porque, como dije, sé de seguro que hasta Delphi 7, el comportamiento de MessageDlg es como tú lo describes, con los mensajes en inglés.

// Saludos

ContraVeneno
21-05-2008, 18:08:56
a caray... pues lo probé con Delphi 5 y me pone los textos en español... si lo pruebo en tiempo de diseño, me pone los textos en ingles, pero en ejecución los veo en español. Si lo pruebo en un XP en ingles, me los pone en ingles...

roman
21-05-2008, 18:19:49
Pues sí que me sorprendes :eek: <--- sorprendido

En todas las versiones de Delphi que he usado, el problema con MessageDlg era precisamente el del idioma, por eso en estos mismos foros se ha recomendado varias veces el uso de Application.MessageBox por sobre MessageDlg. He vuelto a hacer la prueba y nada, lo mismo.

A ver si otro compañero puede hacer alguna prueba.

// Saludos

Delphius
21-05-2008, 18:27:40
Contra, ¿Por casualidad no tenés traducidos los recursos, y no recuerdas que lo hayas hecho?:confused:

Probé en D6, y no hay forma... lo veo en inglés. Tanto fuera como dentro del IDE.

EDITO:
Probado en Windows XP Profesional 2002, SP 2.

Saludos,

ContraVeneno
21-05-2008, 18:47:03
pues que yo recuerde no he traducido nada... :confused::confused::confused: solo las constatnes del quickreport, esas sí están traducidas, pero no creo que eso tenga algo que ver...

Revisando....

MMkelas... sí, tengo los recursos de delphi 5 en español... :eek: ¿pero cuando hice eso? :confused::confused:

Delphius
21-05-2008, 18:56:59
Revisando....

MMkelas... sí, tengo los recursos de delphi 5 en español... :eek: ¿pero cuando hice eso? :confused::confused:

Hay... amigo... amigo... Es la edad... hay que empezar a darle la pastillita contra el Alz.:D:)

Entonces, ¿O traducir los recursos, y/u optamos por MessageBox?:confused:
Yo siempre he venido usando MessageBox... pero ahora me pregunto ¿Existe una alternativa, que no sea traducir recursos, ni emplear MexxageBox ni realizar nuestro propio diálogo? ¿Al menos en D7 e inferior? (Desconozco si es lo mismo en versiones superiores).

Saludos,