Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-1093171832
Никола
2004-08-22 14:50
2004.09.12
BBSы Москвы


3-1092561530
сергей1
2004-08-15 13:18
2004.09.12
dbGrid


14-1093339536
WondeRu
2004-08-24 13:25
2004.09.12
Зачем клаве Scroll Lock?


3-1092839711
Uran
2004-08-18 18:35
2004.09.12
Проблеммы с кодировкой в файле DB


4-1091311946
BaG
2004-08-01 02:12
2004.09.12
Автоматическое включение компьютера





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский