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

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.041 c
1-1093722417
Сергей.
2004-08-28 23:46
2004.09.12
Узнать имя активного компонента


1-1093931197
Андрей Л.
2004-08-31 09:46
2004.09.12
Как программно разместить форму на панели инструментов.


4-1091280137
Sulimxar
2004-07-31 17:22
2004.09.12
Приоритеты


6-1088960306
VID
2004-07-04 20:58
2004.09.12
Как заставить ServerSocket слушать порт N на желаемом хосте.


3-1092738537
surkis
2004-08-17 14:28
2004.09.12
Службы и БД