C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Кнопки в CreateMessageDialog, Как переименовать кнопки
Scoli
Отправлено: 20.03.2007, 13:07


Ученик-кочегар

Группа: Участник
Сообщений: 2



Здраствуйте! Помогите пожалуйста.
Проблема следующая:
CreateMessageDialog позволяет создать диалоговое окно. Параметр Buttons определяет, какие кнопки будут присутствовать в окне, но у этих кнопок надписи на англ. языке. Как их переименовать?
Guest
Отправлено: 20.03.2007, 17:32


Не зарегистрирован







если вопрос не в произвольном переименовании, то язык подписей кнопок зависит от Windows, на русской — будет по-русски.
xTrim
Отправлено: 20.03.2007, 18:57


Машинист паровоза

Группа: Участник
Сообщений: 208



Ответ неверный. Названия кнопок жестко прописаны в dialogs.pas. Поменять их можно как-то так:
CODE

TForm* dlg = CreateMessageDialog("ляляля",mtConfirmation,System::Set<TMsgDlgBtn, mbYes, mbHelp>() << mbYes <<mbNo);
for(int i=0;i!=dlg->ComponentCount;i++)
{
TButton* b = dynamic_cast<TButton*>(dlg->Components[i]);
if(!b) continue;
if(b->Caption=="&Yes") b->Caption="Да";
if(b->Caption=="&No") b->Caption="Нет";
}
Ramzay
Отправлено: 20.03.2007, 19:15


Дежурный стрелочник

Группа: Участник
Сообщений: 31



CODE
TForm* CurForm = CreateMessageDialog("Можно ли верить женщине?",mtWarning, mbYesNoCancel);
CurForm->Width=400;
((TButton*)CurForm->Components[2])->Caption="Можно";
((TButton*)CurForm->Components[3])->Caption="Нельзя";
((TButton*)CurForm->Components[4])->Caption="Верить можно, но все равно обманет";
((TButton*)CurForm->Components[4])->Width=200;
CurForm->ShowModal();


ps Пока писал сообщение, меня уже опередили. Ну в общем принцип тот же.

Отредактировано Ramzay — 20.03.2007, 19:19

Вернуться в Вопросы программирования в C++Builder