![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Возвращаемое значение ShowModal
Чайник © (2010-04-05 15:08:00)Функция создает форму и вызывает ее ShowModal:
function AddNewPassport : TModalResult;
begin
Result := mrCancel;
FNewPass := TFNewPass.Create(Application);
try
Result := FNewPass.ShowModal;
finally
FNewPass.Free;
end;
end;
На самой форме расположен TListBox, в зависимости от выбранной строки вызываются различные функции, возвращающие TModalResult:
procedure TFNewPass.btnOKClick(Sender: TObject);
begin
case lstKindPass.ItemIndex of
1: FNewPass.ModalResult := AddNewPassVessPress;
2: FNewPass.ModalResult := AddNewPassPipeline;
...
else
FNewPass.ModalResult := mrCancel;
end;
Close;
end;
Перкд закрытием формы FNewPass.ModalResult содержит именно те значения, которые фозвращают вызываемые функции. Но в строке
Result := FNewPass.ShowModal;
в результат пишется исключительно mrCancel !
Что я делаю не так???
P.S. Я Чайник! Я Чайник! Я Чайник! Я Чайник!
Anatoly Podgoretsky (2010-04-06 14:25:00) [1]Плохиш указал причину, а ты что сказать то хотел?
Кибальчиш (2010-04-06 14:17:00) [2]
> Плохиш © (05.04.10 22:52) [8]
> дерьмокод.
дерьмопост.
Плохиш (2010-04-05 22:52:00) [3]
> 1: FNewPass.ModalResult := AddNewPassVessPress;
дерьмокод.
Правильный$Вася (2010-04-05 16:59:00) [4]присваивание модалрезалта само по себе закрывает форму
Чайник (2010-04-05 16:17:00) [5]
> Slym © (05.04.10 15:17) [4]
> Anatoly Podgoretsky © (05.04.10 16:03) [5]
Спасибо!
Anatoly Podgoretsky (2010-04-05 16:03:00) [6]Убери Close оно убивает ранее установленые значения, меняит их на Cancel
Slym (2010-04-05 15:17:00) [7]icWasya © (05.04.10 15:13) [2]
Чайник © (05.04.10 15:08)
procedure TFNewPass.btnOKClick(Sender: TObject);
begin
case lstKindPass.ItemIndex of
1: FNewPass.ModalResult := AddNewPassVessPress;
2: FNewPass.ModalResult := AddNewPassPipeline;
...
else
FNewPass.ModalResult := mrCancel;
end;
//Close;
end;
Чайник (2010-04-05 15:16:00) [8]
> Игорь Шевченко © (05.04.10 15:12) [1]
> а как ты закрываешь форму ? :)
else
FNewPass.ModalResult := mrCancel;
end;
Close; <<<<<<<<
end;
icWasya (2010-04-05 15:13:00) [9]
procedure TCustomForm.Close;
var
CloseAction: TCloseAction;
begin
if fsModal in FFormState then
ModalResult := mrCancel //<<--!!!!!!!!!!!!!!!!!!!!!1
else
...
end;
Игорь Шевченко (2010-04-05 15:12:00) [10]
> Перкд закрытием формы FNewPass.ModalResult содержит именно
> те значения, которые фозвращают вызываемые функции
а как ты закрываешь форму ? :)