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

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

procedure Form.Button2Click(sender:Tobject);
begin
Close;
end;
...
Рейтинг: 0 / 0
25.07.2003, 08:00
    #32217627
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageDlg
Юзай MessageBox.
...
Рейтинг: 0 / 0
25.07.2003, 08:01
    #32217628
Alexander Lysenko
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageDlg
Да конечно можно, создай файл 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
25.07.2003, 08:07
    #32217632
eNose
Участник
[не активирован]
[не одобрен]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MessageDlg
Извращенцы

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

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


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