Форум: "Основная";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
ВнизTMsgDlgButtons Найти похожие ветки
← →
JohnJ (2004-08-26 20:48) [0]Мне надо сделать чтобы в MessageDlg кнопки были по выбору пользователя. Для этого я сделал следующее:
var mbBut:TMsgDlgButtons;
procedure a(tmbYes,tmbNo,tmbYesToAll,tmbNoToAll:boolean);
begin
mbBut=[mbYes,mbNo,mbYesToAll];
{???} if mbNoToAll then mbBut:=[mbBut,mbNoToAll]; {???}
MessageDlg("Вот ваши кнопки:",mtWarning,mbBut,0);
end;
Строчка с {???} вызывает ошибку (Ordinal type required). Как сделать правильно? Подскажите пожалуйста.
← →
Palladin © (2004-08-26 20:54) [1]Include(mbBut,mbNoToAll)
← →
JohnJ (2004-08-26 21:18) [2]Порывшись в help-ах я обнаружил что TMsgDlgButtons - это обычное множество. Следовательно правильной будет операция
mbBut:=mbBut+[mbNoToAll]
никто не знает что быстрее? прямое сложение множеств или через include?
← →
QuasiLamo © (2004-08-26 21:21) [3]могу прислать юнит (сам писал ^) ) ран тайм создает диалоги с произвольными кнопками
← →
GuAV © (2004-08-26 21:37) [4]
> if mbNoToAll then
:)
if tmbNoToAll then
А ваще имхо проще сразу set передавать...
> прямое сложение множеств или через include?
← →
QuasiLamo © (2004-08-26 21:39) [5]
> могу прислать юнит (сам писал ^) ) ран тайм создает
> диалоги с произвольными кнопками
и возвращает номер нажатой кнопки
← →
GuAV © (2004-08-26 21:41) [6]
> > могу прислать юнит (сам писал ^) ) ран тайм создает
> > диалоги с произвольными кнопками
>
> и возвращает номер нажатой кнопки
Dialogs.pas ? ;-)
зы: а я Application.MessageBox предпочитаю.
← →
QuasiLamo © (2004-08-26 21:46) [7]неа. надписи на кнопках могут быть произвольными
← →
GuAV © (2004-08-26 21:49) [8]
> надписи на кнопках могут быть произвольными
Dialogs.pas + ITE.
← →
QuasiLamo © (2004-08-26 21:50) [9]:) а что есть ITE?
← →
GuAV © (2004-08-26 21:52) [10]Integrated Translation Environment
попробуй File->New->Other->Resource DLL Wizard
← →
QuasiLamo © (2004-08-26 21:54) [11]Это каждый раз когда надо вывести другие надписи, надо ресуры переделывать? а если надпись на кнопке окажется слишом длинной(или с переносом строки), кнопка растянется?
← →
GuAV © (2004-08-26 21:57) [12]
> Это каждый раз когда надо вывести другие надписи, надо ресуры
> переделывать?
Нет создаётся Dll для каждого языка .enu .rus, и т.д.
> а если надпись на кнопке окажется слишом длинной(или с переносом
> строки), кнопка растянется?
Можно менять не только текст а все св-ва форм.
View->Project Manager.
PS: File->New->Other->Resource DLL Wizard и Eng и Rus выбрал?
← →
GuAV © (2004-08-26 21:58) [13]Более того выбрана нужная будет автоматически.
← →
GuAV © (2004-08-26 21:58) [14]Более того выбрана нужная будет автоматически.
← →
JohnJ (2004-08-26 22:00) [15]Нет спасибо не надо юнит... всё я сделал и сам. Кроме одного: скажи пожалуйста, как делать свои надписи на кнопках?
> if tmbNoToAll then
> А ваще имхо проще сразу set передавать...
t у меня указывает что это тип boolean (c детства так привык) :)
а вот как это сразу через set, чё-то не врубился... подскажи плиз поподробней
← →
JohnJ (2004-08-26 22:01) [16]Я вообще-то тоже Application.MessageBox... но так как давно не программировал... забыл как она пишется! :) Чё первое нашёл то и использовал. Спасибо что напомнил но теперь уже переправлять вломы...
← →
QuasiLamo © (2004-08-26 22:04) [17]
> GuAV © (26.08.04 21:57) [12]
> > Это каждый раз когда надо вывести другие надписи,
>надо ресуры
>> переделывать?
>
> Нет создаётся Dll для каждого языка .enu .rus, и т.д.
я не про это. Если например только ран тайм станет известно, что на кнопках будет написано? к примеру, если они берутся из базы данных или вычисляются по ходу выполнения?
← →
GuAV © (2004-08-26 22:19) [18]procedure TForm1.Button1Click(Sender: TObject);
var I: Integer;
begin
with CreateMessageDialog("Hey",mtInformation, [mbYes, mbNo]) do
try
TButton(FindChildControl("Yes")).Caption:="угу";
TButton(FindChildControl("No")).Caption:="нифига";
I:=ShowModal;
finally
Free;
end;
end;
← →
GuAV © (2004-08-26 22:21) [19]
> а вот как это сразу через set, чё-то не врубился... подскажи
> плиз поподробней
procedure a(mbBut: TMsgDlgBtn);
begin
MessageDlg("Вот ваши кнопки:",mtWarning,mbBut,0);
end;
← →
QuasiLamo © (2004-08-26 22:33) [20]
> GuAV © (26.08.04 22:19) [18]
Спасибо за примерчик, будем знать.
А вот текст оно все-таки не переносит. и не растягивается... :)
← →
GuAV © (2004-08-26 22:38) [21]
> оно все-таки не переносит. и не растягивается... :)
Оно - кто? ITE? Pастягивает.
Примерчик? Не переносит. Кнопки не переносятся в винде ваще. Растяни сам своими руками ;)
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.035 c