Конференция "WinAPI" » Немецкие буквы в MessageBox
 
  • AndreyRus © (12.03.08 16:02) [0]
    Всем привет!

    Кто нибудь знает как выводить немецкий текст в MessageBox на Русской версии Windows?
  • DVM © (12.03.08 16:04) [1]
    MessageBoxW
  • Плохиш © (12.03.08 16:16) [2]

    > Кто нибудь знает как выводить немецкий текст в MessageBox
    > на Русской версии Windows?

    Да
  • Andrey_rus (12.03.08 16:37) [3]

    > MessageBoxW

    Выводимый текст не в UNICODE!
  • Andrey_rus (12.03.08 16:38) [4]
    Delphi - 7
  • Andrey_rus (12.03.08 16:39) [5]

    > Delphi - 7

    Хотя, причем здесь Delphi! :)
  • Eraser © (12.03.08 16:44) [6]
    Delphi 2008 ))
  • DVM © (12.03.08 16:46) [7]

    > Выводимый текст не в UNICODE!

    Кто мешает в переобразовать в Unicode? Это единственный способ нормально это сделать.
  • Andrey_rus (12.03.08 16:46) [8]
    Eraser, Плохиш - пожалуйста, не пишите, если не по теме.
  • Eraser © (12.03.08 16:49) [9]
    все по теме )
  • Andrey_rus (12.03.08 16:58) [10]

    > Кто мешает в переобразовать в Unicode?

    До собственно никто :)
    Просто хочется отделаться "малой кровью".
    Нашел в Интернете:

    program Project1;

    uses
     Forms, Windows,
     Unit1 in 'Unit1.pas' {Form1};

    {$R *.res}

    begin
     SetThreadLocale(1049); // Russain
     Application.Initialize;
     Application.CreateForm(TForm1, Form1);
     Application.Run;
    end.



    Сейчас попробую проверю...
  • Andrey_rus (12.03.08 17:05) [11]
    Попробовал - SetThreadLocale(1031); для немецкого языка.
    Не помогает, умляуты выводятся русскими буквами. :(
  • Плохиш © (12.03.08 17:38) [12]

    > Andrey_rus   (12.03.08 16:58) [10]
    >
    > > Кто мешает в переобразовать в Unicode?
    >
    > До собственно никто :)
    > Просто хочется отделаться "малой кровью".


    > Andrey_rus   (12.03.08 17:05) [11]
    > Попробовал - SetThreadLocale(1031); для немецкого языка.
    >
    > Не помогает, умляуты выводятся русскими буквами.

    Вот скажи мне и как это ты запихал в короткую строку символы, которых нет в текущей локали?
  • Andrey_rus (12.03.08 17:42) [13]

    > Вот скажи мне и как это ты запихал в короткую строку символы,
    >  которых нет в текущей локали?

    Это не проблема.
  • Плохиш © (12.03.08 17:44) [14]

    > Andrey_rus   (12.03.08 17:42) [13]
    >
    > > Вот скажи мне и как это ты запихал в короткую строку символы,
    >
    > >  которых нет в текущей локали?
    >
    > Это не проблема.

    Ну, ну.
  • palva © (12.03.08 19:06) [15]
    В любом случае нужно устанавливать в систему поддержку немецкого, чтобы были доступны соответствующие системные шрифты. Иначе умляуты пропадают.
  • Плохиш © (12.03.08 22:30) [16]

    > palva ©   (12.03.08 19:06) [15]

    В короткие строки русские буквы с умляутами по любому не влазят.
  • Плохиш © (12.03.08 22:31) [17]

    > В короткие строки

    В ansi-строки, имелось в виду :-)
  • Игорь Шевченко © (12.03.08 23:36) [18]
    Вполне себе выводится:

    procedure TForm1.Button1Click(Sender: TObject);
    const
     S: array[0..11] of WideChar = (#$54,#$FC,#$72,#$65,#$6E,#32,
       #$F6,#$66, #$66,#$65,#$6E,#0);
    begin
     MessageBoxW(HWND_DESKTOP, S, nil, MB_OK);
    end;

  • Плохиш © (13.03.08 00:09) [19]

    > Игорь Шевченко ©   (12.03.08 23:36) [18]

    А без Wide? ;-) Как аФФтар желает..
  • Игорь Шевченко © (13.03.08 00:18) [20]
    Плохиш ©   (13.03.08 00:09) [19]

    Можно и без Wide - только фигня получится.
 
Конференция "WinAPI" » Немецкие буквы в MessageBox
Есть новые Нет новых   [134431   +15][b:0][p:0.001]