Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];

Вниз

MessageBox   Найти похожие ветки 

 
GreatQuaker   (2002-08-14 05:25) [0]

Как в стандартном диалоговом окне MessageBox написания на кнопках Yes и No сделать соответственно на русском?
Заранее благодарен за внимание и помощь!


 
Ученик   (2002-08-14 08:46) [1]


var
hHook : THandle = 0;

procedure ChangeButtonCaption(Dialog : HWnd; ControlID : Integer;
const Caption : string);
begin
SetWindowText(GetDlgItem(Dialog, ControlID), PChar(Caption))
end;

function ChangeCaptions(nCode : Integer;
wParam : WPARAM;
lParam : LPARAM) : LRESULT; stdcall;
begin
Result := 0;
if nCode = HCBT_ACTIVATE then begin
ChangeButtonCaption(wParam, IDYES, "Да");
ChangeButtonCaption(wParam, IDNO, "Нет");
ChangeButtonCaption(wParam, IDCANCEL, "Отмена");
UnhookWindowsHookEx(hHook)
end
end;

function MessageBoxRus(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer;
begin
hHook := SetWindowsHookEx(WH_CBT, @ChangeCaptions, hInstance, GetCurrentThreadID);
Result := MessageBox(hWnd, lpText, lpCaption, uType);
end;

Пример вызова:
MessageBoxRus(0, "Текст", "Ошибка", MB_ICONHAND + MB_YESNOCANCEL);


 
andrey_pst   (2002-08-14 08:57) [2]

В Delpi5 так:
Меню Project/Languages/Add
и усё,добавляй Русский язык
Можешь все сообщения русифицировать


 
cdaDmitriy   (2002-08-14 09:18) [3]

>>>Ученик © Твое решение очень красивое но Я Думаю не все
поймут почему это работает

не проще ли написать / переписать

function MessageBox(const Text, Caption: PChar; Flags: Longint): Integer;

и вставить любой язык.


 
andrey_pst   (2002-08-14 09:23) [4]

>>>cdaDmitriy © Зачем писать/переписывать функции, если есть встроенные средства ? Так можно проги и на чистом WinAPI писать :)


 
Ученик   (2002-08-14 09:26) [5]

>cdaDmitriy (14.08.02 09:18)
>Я Думаю не все
>поймут почему это работает
Кто захочет разобраться, нажмет F1 :)

>не проще ли написать / переписать

>function MessageBox(const Text, Caption: PChar; Flags: >Longint): Integer;

Как быть с иконками в разных системах, например XP, и другой
уже есть MessageDlg




 
cdaDmitriy   (2002-08-14 09:40) [6]

>>> andrey_pst © && Ученик ©

Я не хочу говорить о

"Зачем писать/переписывать функции, если есть встроенные средства ? Так можно проги и на чистом WinAPI писать "

НО ВСЕ ТАКИ ДУМАЮ ЧТО С ПОМОЩЬЮ SetWindowsHook...

делать это - это примено что из пушки по воробьям

это мое мнение


А ТАК ЕЩЕ РАЗ ПОВТОРЮ

>>>Ученик © Твое решение очень красивое но не все
( а я думаю единицы) понимают SetWindowsHook...




 
Ученик   (2002-08-14 09:54) [7]

>cdaDmitriy © (14.08.02 09:40)

>НО ВСЕ ТАКИ ДУМАЮ ЧТО С ПОМОЩЬЮ SetWindowsHook...
>делать это - это примено что из пушки по воробьям
>это мое мнение

Может быть, но именно это рекомендуют в Visual Basic (правда задача чуть другая),

http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q180936&


 
MetalFan   (2002-08-14 10:18) [8]


> 2andrey_pst ©

По моему дельный совет!!!
попробывал, работает отлично!!!


 
Эдик   (2002-08-14 10:26) [9]

Можешь просто использовать Application.MessageBox("текст","заголовок",bt_flags)
кнопки будут на том языке, на каком сама ОС.
bt_flags - может быть: mb_YesNoCancel, mb_OKCancel... и так далее полный перечень в хелпе (F1)

кроме того, эта функция возвращает код нажатой кнопки (mrYes, mrOk и пр.), например:
case Application.MessageBox("Данные были изменены! Сохранить?","Внимание!",mb_YesNoCancel) of
mrYes: ....
mrNo: ...
mrCancel: Exit;
end;


 
cdaDmitriy   (2002-08-14 10:27) [10]

>> Ученик ©

поменять Caption это пол дела а если нужно менять

право <--> лево как быть да еще по желанию пользователя

т.е. прога мульти язычная с подержкой например иврита


 
Ученик   (2002-08-14 10:31) [11]

>cdaDmitriy © (14.08.02 10:27)
Разговор не в тему вопроса, удаляюсь :)))


 
SaS13   (2002-08-14 10:38) [12]

можно скопировать файл consts.pas в директроию программы и заменить необходимые текстовые ресурсы, при следующей компиляции все будет как Вы хотите.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.08.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.009 c
1-85068
Gamar
2002-08-14 15:07
2002.08.26
Компонент типа Инспектора объектов


1-85091
nester
2002-08-13 01:23
2002.08.26
Как сделать так, чтобы программа не отображалась в панели задач


14-85166
cyborg
2002-07-29 20:17
2002.08.26
Просто интересно


8-85131
Янушка
2002-04-18 14:26
2002.08.26
Как организовать простенькую анимацию в Delphi?


6-85144
pfox
2002-06-14 23:07
2002.08.26
SMTP server





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский