Форум: "Основная";
Текущий архив: 2004.05.23;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.035 c