![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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;
Интерсно для кого создали конференцию "Начинающим"?