powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / MessageDlg
17 сообщений из 17, страница 1 из 1
MessageDlg
    #32217623
RDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно ли сделать, чтобы на кнопках панелей вывода сообщений, например, было не "Yes", а "Да" ?
...
Рейтинг: 0 / 0
MessageDlg
    #32217626
Cnupum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно

создаешь формочку
button1.caption:='Да';
button2.caption:='Нет';

procedure Form.Button2Click(sender:Tobject);
begin
Close;
end;
...
Рейтинг: 0 / 0
MessageDlg
    #32217627
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Юзай MessageBox.
...
Рейтинг: 0 / 0
MessageDlg
    #32217628
Alexander Lysenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да конечно можно, создай файл RusDlg.pas в папке Lib
такого содержания
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
unit RusDlg;

interface
implementation

uses Classes, Forms, Consts, Dialogs; //, RtpCtrls;

resourcestring
    SMsgDlgRusWarning = 'Предупреждение';
    SMsgDlgRusError = 'Ошибка';
    SMsgDlgRusInformation = 'Информация';
    SMsgDlgRusConfirm = 'Подтверждение';
    SMsgDlgRusYes = '&Да';
    SMsgDlgRusNo = 'Н&ет';
    SMsgDlgRusOK = 'OK';
    SMsgDlgRusCancel = 'Отмена';
    SMsgDlgRusHelp = '&Помощь';
    SMsgDlgRusHelpNone = 'Помощь недоступна';
    SMsgDlgRusHelpHelp = 'Помощь';
    SMsgDlgRusAbort = '&Прервать';
    SMsgDlgRusRetry = 'По&вторить';
    SMsgDlgRusIgnore = '&Игнорировать';
    SMsgDlgRusAll = '&Все';
    SMsgDlgRusNoToAll = 'H&ет для Всех';
    SMsgDlgRusYesToAll = 'Д&а для Всех';

const
    Captions: array[TMsgDlgType] of Pointer = (@SMsgDlgRusWarning, 
    @SMsgDlgRusError,
    @SMsgDlgRusInformation, @SMsgDlgRusConfirm, nil);

    ButtonCaptions: array[TMsgDlgBtn] of Pointer = (
    @SMsgDlgRusYes, @SMsgDlgRusNo, @SMsgDlgRusOK, @SMsgDlgRusCancel, 
    @SMsgDlgRusAbort,
    @SMsgDlgRusRetry, @SMsgDlgRusIgnore, @SMsgDlgRusAll, @SMsgDlgRusNoToAll, 
    @SMsgDlgRusYesToAll,
    @SMsgDlgRusHelp);

procedure _ChangeCaptions(List: PPointerList;Last: Pointer);
var  i, Max: Integer;
       IsFind: Boolean;
begin
    Max := (Integer(Last)-Integer(List)) div SizeOf(Pointer);
    IsFind := False;
    for i :=  0  to Max -  2  do
    if (List[i] = @SMsgDlgWarning) and (List[i+ 2 ] = @SMsgDlgInformation) then 
      begin
       IsFind := True;
       break;
      end;
    if IsFind then Move(Captions, List[i], SizeOf(Captions));
    IsFind := False;
    for i := i to Max -  2  do
      if (List[i] = @SMsgDlgYes) and (List[i+ 2 ] = @SMsgDlgOK) then 
        begin
          IsFind := True;
          break;
        end;
    if IsFind then Move(ButtonCaptions, List[i], SizeOf(ButtonCaptions));
end;

initialization
_ChangeCaptions(@DebugHook, @Application);
end.


Сохрани , и теперь в программе в uses напиши RusDlg, и все! у тебя все MessageDlg буду на русском!
Удачи!
...
Рейтинг: 0 / 0
MessageDlg
    #32217632
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
Извращенцы

Слабо виндовый вызвать?
А если завтра немецкий понадобится???
...
Рейтинг: 0 / 0
MessageDlg
    #32217635
Alexander Lysenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
eNose сам извращенец МОй способ самый реальный :)) Если хочешь на русскмо просто прописываешь RusDlg в Uses и все а если не хочешь то не прописывай ради бога! Тем более человеку не надо на немецком ему надо на русском Вот..... :))
...
Рейтинг: 0 / 0
MessageDlg
    #32217637
Фотография eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
[не одобрен]
А не лучше ли взвалить это на винду?
Какая локализация - такие и сообщения.
...
Рейтинг: 0 / 0
MessageDlg
    #32217638
Alexander Lysenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А не лучше ли взвалить это на винду?
Какая локализация - такие и сообщения.

Согласен можно и так :))
...
Рейтинг: 0 / 0
MessageDlg
    #32217676
Фотография arni
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использование MessageBox, по-моему, в 90% случаев более элегантный и гибкий вариант (исключение, если нужны кнопки YesForAll и NoForAll), чем MessageDlg и дает чудовищную экономию на размере EXE, т.к. не подключает Dialogs-модуль.
...
Рейтинг: 0 / 0
MessageDlg
    #32217721
RDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал все предложенные способы (разумеется кроме создания формы), всё работает, всем спасибо. Вот тока с MessageBox, чё-то не совсем разобрался - подскажите - надо три кнопки - Да, Нет, Отмена и при этом вид MB_ICONINFORMATION. Ещё раз всем спасибо..
...
Рейтинг: 0 / 0
MessageDlg
    #32217725
Speaker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Windows.MessageBox( Application.Handle, PChar(Text), PChar(Application.Title), MB_YESNOCANCEL or MB_ICONINFORMATION );
...
Рейтинг: 0 / 0
MessageDlg
    #32217800
RDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я наверно всех уже задолбал :), но опять проблемка, нужно показывать:
Application.MessageBox(ComboBox.Text + ' - некорректное значение', 'Предупреждение', MB_ICONWARNING);
Но текст должен быть PChar, а ComboBox.Text - Strting, чё делать, как быть?
...
Рейтинг: 0 / 0
MessageDlg
    #32217804
Speaker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну строчкой выше же написано...
PChar(Text) -> PChar(ComboBox.Text)
...
Рейтинг: 0 / 0
MessageDlg
    #32217810
Speaker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати Application.MessageBox по моему как раз будет не по-русски,
в отличие от Windows.MessageBox
...
Рейтинг: 0 / 0
MessageDlg
    #32217853
RDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да нет, Application.MessageBox тоже по русски, а вот Application.MessageBox(PChar(ComboBox13.Text)+ ' - некорректное значение', 'Предупреждение',MB_ICONWARNING); - не канает, пишет несовместимые типы String и PChar.
...
Рейтинг: 0 / 0
MessageDlg
    #32217862
Speaker
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PChar(ComboBox13.Text+ ' - некорректное значение')
...
Рейтинг: 0 / 0
MessageDlg
    #32217870
RDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, уже понял, это я протупил.Спасиб.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / MessageDlg
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]