Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» MessageDlg - есть ли возможность руссифицировать?

Автор: Bonivur
Дата сообщения: 11.08.2004 01:10
Вообщем, интересует сабж. Не предлагать MessageBox - в данном случае он не подходит. Конкретно интересует как сделать captions кнопок на русском в MessageDlg и заголовок тоже хотелось бы сделать на русском а не "Confirmation" Заранее сэнкс..
Автор: ShIvADeSt
Дата сообщения: 11.08.2004 02:37

Цитата:
Не предлагать MessageBox - в данном случае он не подходит. Конкретно интересует как сделать captions кнопок на русском в MessageDlg и заголовок тоже хотелось бы сделать на русском а не "Confirmation" Заранее сэнкс..

Почему не подходит? Самый правильный вариант это MessageBox. Чем он тебе не нравится. Крайний случай, это если он в самом деле тебе не подходит, это получаешь хэндл данного MessageDlg через FindWindow потом делаешь ему SetWindowText а потом чтобы поменять названия кнопок делаешь в этом хэндле FindWindowEx с названиями кнопок, получаешь хэндл каждой кнопки и опять SetWindowText. Если хочешь иметь гемор, используй второй способ.
Автор: mihas83
Дата сообщения: 11.08.2004 07:31
Солидарен с ShIvADeSt.
Ну а если все таки в самом деле тебе не подходит, так в продолжении второго варианта после получения хэндла диалога есть возможности:
GetDlgItem(IDC_PUNCH)->SetWindowText(_T("...''));
или SetDlgItemText(...);

Автор: krast
Дата сообщения: 11.08.2004 07:51
Как вариант: самому изменить необходимые надписи в модуле Consts. В нем прописаны константы для диалоговых окон. Сохрани его где-нить с тем же именем. Путь к нему укажи в Tools -> Environment Options -> Library -> Browsing Path
Автор: Delphist
Дата сообщения: 11.08.2004 07:55
Есть готовое давнишнее решение
Идем на http://polesoft.narod.ru/
Качаем набор руссификации для runtime'a.
Закидываем его в пути, компилим и все по-русски.
Сам пользую и другим советую.
Автор: apatit
Дата сообщения: 11.08.2004 08:40
Привет!

Если речь идет о Delphi, то брать файлы русификации строковых констант Delphi от Polaris. Можно заменить напрочь дельфовые, а можно в каталог приложения положить - будет только в Вашем приложении.
Автор: Bonivur
Дата сообщения: 11.08.2004 10:18
Спасибо. Воспользуюсь русификацией от Polaris.
Автор: MrZeRo
Дата сообщения: 11.08.2004 12:26
ShIvADeSt
MessageBox лучше не использовать, ИМХО. Не случайно был написан модуль Dialogs...
Bonivur
Самое простое - взять этот модуль (Dialogs) в исходниках, скопировать с другим именем (например, DialogsRus) и поменять используемые им ресурсы на русские, а потом подключать, когда надо.
Автор: vserd
Дата сообщения: 11.08.2004 14:10
MrZeRo

Цитата:
MessageBox лучше не использовать, ИМХО. Не случайно был написан модуль Dialogs...

После внимательного изучения как и что реализовано в этом модуле, я пришел к выводу что человек, который написал этот модуль либо не знал о существовании API функции,
либо не понял тех задание.

В Делфи очень много классов-оберток над API функционалом (зачастую с хорошим и удобным расширением), в данном случае это самостоятельная реализация, гораздо более слабая по возможностям чем API.
Для примера как можно установить кнопкой по умолчанию не первую кнопку? Ответ никак, а в API это просто добавление константы.
Автор: MrZeRo
Дата сообщения: 11.08.2004 16:40
vserd
Не в этом дело. У меня был отрицательный опыт использования MessageBox при использовании модальных форм Delphi. Если форма показывается при помощи ShowModal, потом в этой форме вызывается MessageBox, а потом пользователь щелкает мышью на форму, то окно, выводимое при помощи MessageBox, теряло фокус!
Я так понял, что модуль Dialogs и был написан для того, чтобы обойти этот глюк.
(хотя сейчас попробовал в Delphi7+Upd1 - не смог воспроизвести эту ошибку! хотя точно помню, что когда-то было ...)
Автор: ShIvADeSt
Дата сообщения: 12.08.2004 01:02

Цитата:
Не в этом дело. У меня был отрицательный опыт использования MessageBox при использовании модальных форм Delphi. Если форма показывается при помощи ShowModal, потом в этой форме вызывается MessageBox, а потом пользователь щелкает мышью на форму, то окно, выводимое при помощи MessageBox, теряло фокус!

Понимаешь, вообще то если выведен MessageBox, то щелкнуть мышью на форму не получится, если правильно выводить MessageBox. Просто в последнее время я многие вещи, которые можно сделать на АПИ и есть время делаю на АПИ, и поверь что модуль Диалоги был написан для ленивых, тем более что есть возможность вызвать MessageBox сл. образом
Application.MessageBox('qqq','qqqqqqqqqq',0);
только что проверил, создал две формы одну показал через ШоуМодал, а потом в ней показал MessageBox и нкак нельзя было щелкнуть саму форму пока наверху диалог. Дельфи 5 для интересующихся.

Страницы: 1

Предыдущая тема: Вопросы по Delphi


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.