Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Поменять надписи на кнопках MessageDlg? [D7, WinXP]


Trifle ©   (2005-10-17 15:41:00) 

Вообщем то сабж. Только не надо тыкать меня носом в Consts.pas. Мне это надо только в одном месте в одном проекте. Вообщем надо в runtimе поменять. Неужели придётся свой диалог рисовать?


Amoeba   (2005-10-18 11:43:00) [1]

Все модули со всеми переведенными константами давно уже лежат на http://polesoft.da.ru


Ega23   (2005-10-18 11:36:00) [2]

А чем MessageBox из winAPI не устраивает???


Суслик   (2005-10-18 11:32:00) [3]

я просто спер код messagedlg из dialogs.pas, перевел, добавил еще своей функциональности и счастливо пользуюсь.


antoxa2005   (2005-10-18 10:27:00) [4]

Есть такой файл в Dephi точно не помню, но что-то вроде Constants... меняешь там значения например Yes на ДА или Cancel на Отмена и т.д. и твоя Delphi при компеляции все устроит, и будут у тебя MessageDLG полностью на русском языке. Я сам пользуюсь уже давно... Если не найдешь файл то пиши на e-mail подробно отвечу.


Leonid Troyanovsky   (2005-10-18 08:40:00) [5]


> Игорь Шевченко ©   (17.10.05 18:39) [10]

> Я проверял - не работает :)


Значит, нас снова надули.
http://support.microsoft.com/default.aspx?scid=kb;en-us;152670

--
Regards, LVT.


Игорь Шевченко   (2005-10-17 18:39:00) [6]

Leonid Troyanovsky ©   (17.10.05 18:09) [9]

Я проверял - не работает :)


Leonid Troyanovsky   (2005-10-17 18:09:00) [7]


> Игорь Шевченко ©   (17.10.05 17:28) [6]

> > Если про локализацию, то, скажем, MessageBoxEx.

> Оно, я извиняюсь, никогда не работало - MessageBoxEx с указанием
> последнего параметра. Да и причина проста - в Win32k.sys


Никогда это - NT3.5-4.
В локализованной w2k, д.б., по-крайней мере, два - включая LANG_NEUTRAL.
Однако, проверять оное мня ломает.

--
Regards, LVT.


REA   (2005-10-17 17:41:00) [8]

Названия кнопок оттуда же:
 ButtonNames: array[TMsgDlgBtn] of string = (
   'Yes', 'No', 'OK', 'Cancel', 'Abort', 'Retry', 'Ignore', 'All', 'NoToAll',
   'YesToAll', 'Help');


REA   (2005-10-17 17:39:00) [9]

А на что надо поменять?

MessageDlg использует TMessageForm, которая создается в
function CreateMessageDialog(const Msg: string; DlgType: TMsgDlgType;
 Buttons: TMsgDlgButtons): TForm;

можно использовать эту функцию, найти кнопки и заменить текст.
См. исходники.


Игорь Шевченко   (2005-10-17 17:28:00) [10]

Leonid Troyanovsky ©   (17.10.05 16:22) [4]


> Если про локализацию, то, скажем, MessageBoxEx.


Оно, я извиняюсь, никогда не работало - MessageBoxEx с указанием последнего параметра. Да и причина проста - в Win32k.sys ресурсы на одном языке всегда были.


Германн   (2005-10-17 16:27:00) [11]

Ну если уж так далеко зашло дело, то File->New... Dialogs.
И пиши на кнопках всё, что хошь.


Leonid Troyanovsky   (2005-10-17 16:22:00) [12]


> Trifle   (17.10.05 16:06) [3]
> Речь идёт о MessageBox? Но всё равно мне нужно поменять
> надписи на кнопках, в MessageBox такой возможности я не
> нашёл :(


Зависит от. Если про локализацию, то, скажем, MessageBoxEx.
Если произвольно, то перед MessageDlg сделать, например,
главной форме PostMessage WM_USER,  в обработчике которого:
FindWindow(Ex) & WM_SETTEXT.

--
Regards, LVT.


Trifle   (2005-10-17 16:06:00) [13]

Речь идёт о MessageBox? Но всё равно мне нужно поменять надписи на кнопках, в MessageBox такой возможности я не нашёл :(


Trifle   (2005-10-17 15:57:00) [14]


> Не использовать MessageDlg, а использовать системные аналоги.

можно с этого места поподробней плиз или урл какой?


REA   (2005-10-17 15:48:00) [15]

варианты:
1) Не использовать MessageDlg, а использовать системные аналоги.
2) Сделать библиотеку ресурсов .rus


Наверх

Титульная страница Поиск, карта сайта Написать письмо