![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TMsgDlgButtons [D6, Win2k]
JohnJ © (2004-08-26 20:48:00)Мне надо сделать чтобы в 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). Как сделать правильно? Подскажите пожалуйста.
GuAV (2004-08-26 22:38:00) [1]
> оно все-таки не переносит. и не растягивается... :)
Оно - кто? ITE? Pастягивает.
Примерчик? Не переносит. Кнопки не переносятся в винде ваще. Растяни сам своими руками ;)
QuasiLamo (2004-08-26 22:33:00) [2]
> GuAV © (26.08.04 22:19) [18]
Спасибо за примерчик, будем знать.
А вот текст оно все-таки не переносит. и не растягивается... :)
GuAV (2004-08-26 22:21:00) [3]
> а вот как это сразу через set, чё-то не врубился... подскажи
> плиз поподробней
procedure a(mbBut: TMsgDlgBtn);
begin
MessageDlg('Вот ваши кнопки:',mtWarning,mbBut,0);
end;
GuAV (2004-08-26 22:19:00) [4]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;
QuasiLamo (2004-08-26 22:04:00) [5]
> GuAV © (26.08.04 21:57) [12]
> > Это каждый раз когда надо вывести другие надписи,
>надо ресуры
>> переделывать?
>
> Нет создаётся Dll для каждого языка .enu .rus, и т.д.
я не про это. Если например только ран тайм станет известно, что на кнопках будет написано? к примеру, если они берутся из базы данных или вычисляются по ходу выполнения?
JohnJ (2004-08-26 22:01:00) [6]Я вообще-то тоже Application.MessageBox... но так как давно не программировал... забыл как она пишется! :) Чё первое нашёл то и использовал. Спасибо что напомнил но теперь уже переправлять вломы...
JohnJ (2004-08-26 22:00:00) [7]Нет спасибо не надо юнит... всё я сделал и сам. Кроме одного: скажи пожалуйста, как делать свои надписи на кнопках?
> if tmbNoToAll then
> А ваще имхо проще сразу set передавать...
t у меня указывает что это тип boolean (c детства так привык) :)
а вот как это сразу через set, чё-то не врубился... подскажи плиз поподробней
GuAV (2004-08-26 21:58:00) [8]Более того выбрана нужная будет автоматически.
GuAV (2004-08-26 21:58:00) [9]Более того выбрана нужная будет автоматически.
GuAV (2004-08-26 21:57:00) [10]
> Это каждый раз когда надо вывести другие надписи, надо ресуры
> переделывать?
Нет создаётся Dll для каждого языка .enu .rus, и т.д.
> а если надпись на кнопке окажется слишом длинной(или с переносом
> строки), кнопка растянется?
Можно менять не только текст а все св-ва форм.
View->Project Manager.
PS: File->New->Other->Resource DLL Wizard и Eng и Rus выбрал?
QuasiLamo (2004-08-26 21:54:00) [11]Это каждый раз когда надо вывести другие надписи, надо ресуры переделывать? а если надпись на кнопке окажется слишом длинной(или с переносом строки), кнопка растянется?
GuAV (2004-08-26 21:52:00) [12]Integrated Translation Environment
попробуй File->New->Other->Resource DLL Wizard
QuasiLamo (2004-08-26 21:50:00) [13]:) а что есть ITE?
GuAV (2004-08-26 21:49:00) [14]
> надписи на кнопках могут быть произвольными
Dialogs.pas + ITE.
QuasiLamo (2004-08-26 21:46:00) [15]неа. надписи на кнопках могут быть произвольными
GuAV (2004-08-26 21:41:00) [16]
> > могу прислать юнит (сам писал ^) ) ран тайм создает
> > диалоги с произвольными кнопками
>
> и возвращает номер нажатой кнопки
Dialogs.pas ? ;-)
зы: а я Application.MessageBox предпочитаю.
QuasiLamo (2004-08-26 21:39:00) [17]
> могу прислать юнит (сам писал ^) ) ран тайм создает
> диалоги с произвольными кнопками
и возвращает номер нажатой кнопки
GuAV (2004-08-26 21:37:00) [18]
> if mbNoToAll then
:)
if tmbNoToAll then
А ваще имхо проще сразу set передавать...
> прямое сложение множеств или через include?
QuasiLamo (2004-08-26 21:21:00) [19]могу прислать юнит (сам писал ^) ) ран тайм создает диалоги с произвольными кнопками
JohnJ (2004-08-26 21:18:00) [20]Порывшись в help-ах я обнаружил что TMsgDlgButtons - это обычное множество. Следовательно правильной будет операция
mbBut:=mbBut+[mbNoToAll]
никто не знает что быстрее? прямое сложение множеств или через include?