PDA

Ver la Versión Completa : Texto según el idioma del sistema


roman
01-04-2004, 01:33:40
Hola,

Cuando usamos Application.MessageBox el texto de los botones aparece según el idioma en que esté configurado el sistema.

¿Es posible obtener este texto directamente para poder colocarlo directamente en mis propios botones?

// Gracias

DarkByte
17-05-2004, 21:48:57
Me parece que rulaba por ahí un componente que te permitía personalizar los mensajes al máximo, ¿TMessageBox?.

delphi.com.ar
17-05-2004, 23:47:53
Simpre pensé que si esa información estuviera disponible, no existirían esas constantes en Delphi. Por el lado de la información local no hay nada de eso, , seguramente este texto pertenece a los recursos de algúno de los módulos del sistema, entonces podrías obtener el Handle de alguno de estos módulos hModule y enumerar sus recursos, yo he probado este vago código sin éxito:

procedure TForm1.Button1Click(Sender: TObject);
var
hMod: HMODULE;
pText: PChar;
i,
iLen: Integer;
begin
hMod := GetModuleHandle(PChar(Edit1.Text));
if hMod = 0 Then
Memo1.Clear
else
begin
pText := StrAlloc(MAX_PATH);
try
for i := 0 to 65535 do
begin
iLen := LoadString(hMod, i, pText, MAX_PATH);
if iLen > 0 Then
Memo1.Lines.Add(IntToStr(i) + '> ' + String(pText));
end;
finally
StrDispose(pText);
end;
end;
end;
Solo encotré un Aceptar en el recurso 4161 de las common controls, obviamente ese no es el que buscas.
Es solo una idea que pude llegar a servirte.

Saludos!

roman
18-05-2004, 01:56:01
Hola delphi.com.ar,

Este hilo de hace casi dos meses lo tenía olvidado (de momento) hasta que DarkByte lo revivió. En efecto, lo que buscaba era algún módulo, dll, que tuviese dichos recursos. Deben existir, quiero creer, o ¿de dónde saca Windows la información?.

Cuando pregunté esto la idea que tenía era la de crearme mi propio MessageBox, "más bonito", pero que fuera similar al de Windows que se adapta al lenguaje del usuario y no como el de Delphi que sólo pone los textos en inglés.

Quizá buscándole como dices se pueda encontrar algo. Voy a repensarle al asunto.

// Gracias