Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.23;
Скачать: CL | DM;

Вниз

MessageDlg по-русски - как?   Найти похожие ветки 

 
united   (2004-05-07 17:56) [0]

Как добиться того, чтобы надписи на кнопках и в заголовке окна, которое показывается с помощью MessageDlg все надписи были по-русски?
Нашёл в dialogs.pas вот такой вот кусок
ButtonNames: array[TMsgDlgBtn] of string = (
   "Yes", "No", "OK", "Cancel", "Abort", "Retry", "Ignore", "All", "NoToAll",
   "YesToAll", "Help");


поменял его на

 ButtonNames: array[TMsgDlgBtn] of string = (
   "Да", "Нет", "OK", "Отмена", "Прекратить", "Повторить", "Игнорировать", "Все", "Нет для всех",
   "Да для всех", "Помощь");<


не помогло :-(


 
WebErr ©   (2004-05-07 18:07) [1]

Переписать Windows.h :)
Вообще-то можно и самому любое диалоговое окно создать, для этого нужен файл .rc и немного энтузиазма при прочтении help по поводу ресурса DIALOG.
Хотя, если Вас смущает только Caption у окна MessageDlg, то можно воспользоваться API функцией MessageBox. :)


 
ASMiD ©   (2004-05-07 18:08) [2]

Попользуйся Application.MessageBox и то - если винды русские.


 
oss ©   (2004-05-07 18:10) [3]

после изменени vcl пересобрал ?


 
united   (2004-05-07 18:10) [4]

как его пересобрать?


 
Семен Сорокин ©   (2004-05-07 18:10) [5]

united   (07.05.04 17:56)  
копируешь к себе в проект файл consts.pas, изменяешь значения строковых констант, переоткрываешь проект, делаешь билд - все ОК, уже сколько лет этим пользуюсь. :))


 
WebErr ©   (2004-05-07 18:17) [6]


> Семен Сорокин ©   (07.05.04 18:10) [5]

Клёво... Сам бы не догадался лохматить чужую бабушку :)


 
united   (2004-05-07 18:21) [7]

Скопировал consts.pas в папку с проектом
потом Add file to project.
он добавился.
я там исправил всё, что надо

build all

никакого эффекта

:-(


 
united   (2004-05-07 18:22) [8]

2Семен Сорокин ©  

сорри, я напутал кое-что

огромное спасибо, всё работает.


 
Семен Сорокин ©   (2004-05-07 18:24) [9]

united   (07.05.04 18:22) [8]
кроме того есть другие подобные файлы, например sysconst.pas, в ADO вроде свой есть и в RX.


 
ASMiD ©   (2004-05-07 18:27) [10]

Это все здорово, но существует отличная от 0 вероятность получения бо-ольшого геморроя при переходе на другую версию дельфы.


 
Семен Сорокин ©   (2004-05-07 18:30) [11]

ASMiD ©   (07.05.04 18:27) [10]
Это все здорово, но существует отличная от 0 вероятность получения бо-ольшого геморроя при переходе на другую версию дельфы.

абсолютно никакого геморроя, во первых файл не обязятельно добавлять к проекту (Add file to project), а при переходе просто удалить старый и взять новый (в 5-7-ых Delphi он есть), главное помнить об этом :)))


 
ASMiD ©   (2004-05-07 18:34) [12]


>  главное помнить об этом :)))


Вот именно!
А по закону вредности через некоторое время подобные фичи забываются. Пройдено не раз.


 
Amoeba ©   (2004-05-11 14:52) [13]

Модули русификации найдешь на http://polesoft.narod.ru


 
webpauk   (2004-05-11 15:45) [14]

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.



Страницы: 1 вся ветка

Текущий архив: 2004.05.23;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.037 c
3-1082983859
Женя
2004-04-26 16:50
2004.05.23
как узнать тип и длину поля tAdoTable


1-1083875439
griban
2004-05-07 00:30
2004.05.23
StringGrid


14-1083231096
Proteste
2004-04-29 13:31
2004.05.23
Хакеры кто они?


1-1084245986
Dark Man
2004-05-11 07:26
2004.05.23
Как заставить форму пропадать по подтверждению ???


1-1083759506
1nDeX
2004-05-05 16:18
2004.05.23
TJPEGImage To String





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