Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

ModalResult [D7, Win95/98, Win2k, WinXP]


deltav1 ©   (2006-05-22 14:05:00) 

Что нужно сделать, чтобы при закрытии модальной формы при нажатии на кнопку Ok выполнялась процедура из главной программы, а при нажатии Cancel не выполнялось ничего.


StriderMan   (2006-05-22 17:32:00) [1]


> Ага и по ветки с mrCancel писать код, который будет ничего
> не выполнять как автору и надо :-P

Да можно и не писать mrCancel, это я так... общий случай


> Может не будем отходить от вопроса? И чем [1] не угодило?


да уже давно отошли. закрывать пора тему. в [1] исчерпывающий ответ. Все


Плохиш   (2006-05-22 17:23:00) [2]


> StriderMan ©   (22.05.06 17:19) [12]

Ага и по ветки с mrCancel писать код, который будет ничего не выполнятькак автору и надо :-P

Может не будем отходить от вопроса? И чем [1] не угодило?


StriderMan   (2006-05-22 17:19:00) [3]


> Плохиш ©   (22.05.06 17:15) [10]
>
> > StriderMan ©   (22.05.06 16:34) [8]
> >
> > > Т.е. ввод лишних переменных укорачивает код? Неплохо.
>
> >
> > каких переменных?
>
> res

Согласен

надо писать


case Form.ShowModal of
mrOk:...
mrCancel:...
...
end;


StriderMan   (2006-05-22 17:16:00) [4]


> Сергей М.

Полностью с Вами согласен.
Я как раз о том и говорю, надо пользоваться именами констант а не их значениями.


> Мало ли что там творится у других разработчиков

Типичная ситуация - добавили в перечисление еще одно значение, причем не в конец. Тем кто пользовался значениями типа 1, 2, 3 ... - придется все переписывать


Плохиш   (2006-05-22 17:15:00) [5]


> StriderMan ©   (22.05.06 16:34) [8]
>
> > Т.е. ввод лишних переменных укорачивает код? Неплохо.
>
> каких переменных?

res


Сергей М.   (2006-05-22 16:41:00) [6]


> а потом вдруг в новой версии DELPHI значения констант изменятся?
>  


А симв.идентификаторы имен констант останутся прежними. На то они и символьные идентификаторы.


> вероятная для констант других разработчиков


Мало ли что там творится у других разработчиков !

mrOk он как был mrOk, так им и останется. А уж чему он будет равен в каждом конкр.случае - не наше дело.


StriderMan   (2006-05-22 16:34:00) [7]


> Т.е. ввод лишних переменных укорачивает код? Неплохо.

каких переменных?
 mrOK и mrCancel это константы

но сам посуди, какой проще код читать:


if Res = 1 then
...
if Res = 155 then
...
else
...

или

case Res of
mrOK: ...
mrCancel...
end;


а потом вдруг в новой версии DELPHI значения констант изменятся? (это конечно невероятная ситуация для DELPHI но вероятная для констант других разработчиков)


Плохиш   (2006-05-22 14:59:00) [8]


> Steplerr ©   (22.05.06 14:25) [5]
> А так код короче получается

Т.е. ввод лишнихпеременных укорачивает код? Неплохо.


Сергей М.   (2006-05-22 14:28:00) [9]


> Steplerr ©   (22.05.06 14:25) [5]


Ай молодца !

Сдаюсь, контраргументов у меня при этом не имеется.

Продолжай париться.


Steplerr   (2006-05-22 14:25:00) [10]


> Константы mrOk, mrCancel (и иже с ними) Борландом для Пушкина
> писаны ?


А так код короче получается;-)


Сергей М.   (2006-05-22 14:20:00) [11]


> if res=1


Константы mrOk, mrCancel (и иже с ними) Борландом для Пушкина писаны ?


Steplerr   (2006-05-22 14:17:00) [12]

Проставь ModalResult для кнопок на Form2 (mrOk,mrCancel) и заводи форму так:

procedure TForm1.Button1Click(Sender: TObject);
var res:integer;
begin
res:=Form2.ShowModal;
if res=1 then
begin
 //твой код
end;
end;


Steplerr   (2006-05-22 14:17:00) [13]

Проставь ModalResult для кнопок на Form2 (mrOk,mrCancel) и заводи форму так:

procedure TForm1.Button1Click(Sender: TObject);
var res:integer;
begin
res:=Form2.ShowModal;
if res=1 then
begin
 //твой код
end;
end;


Плохиш   (2006-05-22 14:10:00) [14]


 if SuperPuperForm.ShowModal = mrOk then RunSuperPuperHauptFormProcedure;

Интерсно для кого создали конференцию "Начинающим"?


Наверх

Титульная страница Поиск, карта сайта Написать письмо