Главная страница
    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.006 c
1-85104
I__am
2002-08-14 18:22
2002.08.26
Вопрос по созданию каталогов и Дельфей


1-85061
kserg@ukr.net
2002-08-14 13:57
2002.08.26
ошибка QReport-a - что означает?


1-85005
devol
2002-08-16 10:35
2002.08.26
Проблема с горячими клавишами меню


3-84874
BS
2002-07-30 10:09
2002.08.26
Как отобразить Ole - поле из таблицы Access на форме?


3-84879
SemFLY
2002-08-06 00:47
2002.08.26
Почему содержимое DBGrid не сохраняется в базу ???





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский