Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   messagebox con botones en español (https://www.clubdelphi.com/foros/showthread.php?t=73125)

ingmichel 01-04-2011 22:49:10

messagebox con botones en español
 
hola a todos, mi pregunta es sencilla, como puedo hacer que cuando haga un messagebox o dialog me aparezcan las opciones "yesno" en español o sea "si - no"

he intentado con esto pero no me sale:

MessageBoxEx(0,'desea continuar con la operacion ?', 'Advertencia',MB_YESNO + MB_ICONQUESTION,LANG_SPANISH );

gracias de antemano.

oscarac 01-04-2011 22:54:05

yo tengo esta function donde tu mismo puedes crear tus botones y ponerle el texto que desees

Código Delphi [-]
function _Alert(const Msg: string; AType: TMsgDlgType; AButtons: TMsgDlgButtons; Captions: array of string): Integer;
var
unMsgDlg: TForm;
i: Integer;
dlgButton: TButton;
captionIndex: Integer;
begin
unMsgDlg := CreateMessageDialog(Msg,AType,AButtons);
captionIndex := 0;
for i := 0 to unMsgDlg.ComponentCount - 1 do
begin
  if (unMsgDlg.Components[i] is TButton) then
  begin
    dlgButton := TButton(unMsgDlg.Components[i]);
    if CaptionIndex > High(Captions) then Break;
    dlgButton.Caption := Captions[CaptionIndex];
    Inc(CaptionIndex);
  end;
end;
Result := unMsgDlg.ShowModal;
end;


y lo llamas asi

Código Delphi [-]
 
_Alert('No existen Vouchers Descuadrados',mtWarning,[mbOK, mbRetry],['Aceptar','Intentar de nuevo']);

roman 01-04-2011 23:03:46

También puedes usar Application.MessageBox, que pone los textos de los botones en el mismo idioma que tenga el S.O.

// Saludos

ingmichel 01-04-2011 23:06:59

gracias hemano
 
muchisimas gracias, acabo de probar tu funcion y funciona perfecto, gracias nuevamente, bendiciones.

oscarac 01-04-2011 23:07:53

Cita:

Empezado por ingmichel (Mensaje 395510)
muchisimas gracias, acabo de probar tu funcion y funciona perfecto, gracias nuevamente, bendiciones.


de nada
estamos para apoyarnos....

ingmichel 01-04-2011 23:08:39

gracias
 
Cita:

Empezado por roman (Mensaje 395508)
También puedes usar Application.MessageBox, que pone los textos de los botones en el mismo idioma que tenga el S.O.

// Saludos

el problema es que el sistema operativo esta en ingles, la solucion que dio oscarac es la mas conveniente en mi caso, gracias de todas maneras.

Chris 01-04-2011 23:45:56

Una solución más nativa es la que he proporcionado en mi blog, utilizando la misma API de Windows. Puedes leer sobre ella en este enlace.

Saludos,
Chris

marcopinero 27-06-2011 18:36:05

Corrección a la función _alert
 
Con tu permiso oscarac, quisiera mostrar tu función modificada por mí, pra que me funcionara:

Código Delphi [-]
function _Alert(const Msg: string; msgCaption: string; AType: TMsgDlgType;
    AButtons: TMsgDlgButtons; Captions: array of string): Integer;
var
  unMsgDlg: TForm;
  i: Integer;
  dlgButton: TButton;
  captionIndex: Integer;
begin
  captionIndex := 0;
  try
    unMsgDlg := CreateMessageDialog(Msg,AType,AButtons);
    unMsgDlg.Caption:= msgCaption;
    for i := 0 to unMsgDlg.ComponentCount - 1 do
    begin
      if (unMsgDlg.Components[i] is TBitBtn) then
      begin
        dlgButton := TButton(unMsgDlg.Components[i]);
        if CaptionIndex > High(Captions) then Break;
        dlgButton.Caption := Captions[CaptionIndex];
        Inc(CaptionIndex);
      end;
    end;
    Result := unMsgDlg.ShowModal;
  finally
    unMsgDlg.Free;
  end;
end;

La uso así:

Código Delphi [-]
if _Alert('¿Desea salir del sistema Zeus4Linux 1.0?','Responda',mtConfirmation,
    [mbYes, mbNo],['Sí','No']) = mrYes then...

oscarac 27-06-2011 18:49:25

cualquier mejora es bienvenida


La franja horaria es GMT +2. Ahora son las 05:47:46.

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