Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Возвращаемое значение ShowModal   Найти похожие ветки 

 
Чайник ©   (2010-04-05 15:08) [0]

Функция создает форму и вызывает ее 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. Я Чайник! Я Чайник! Я Чайник! Я Чайник!


 
Игорь Шевченко ©   (2010-04-05 15:12) [1]


> Перкд закрытием формы FNewPass.ModalResult содержит именно
> те значения, которые фозвращают вызываемые функции


а как ты закрываешь форму ? :)


 
icWasya ©   (2010-04-05 15:13) [2]

procedure TCustomForm.Close;
var
 CloseAction: TCloseAction;
begin
 if fsModal in FFormState then
   ModalResult := mrCancel //<<--!!!!!!!!!!!!!!!!!!!!!1
 else
   ...
end;


 
Чайник ©   (2010-04-05 15:16) [3]


> Игорь Шевченко ©   (05.04.10 15:12) [1]
> а как ты закрываешь форму ? :)


else
    FNewPass.ModalResult := mrCancel;
 end;
 Close;  <<<<<<<<
end;


 
Slym ©   (2010-04-05 15:17) [4]

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;


 
Anatoly Podgoretsky ©   (2010-04-05 16:03) [5]

Убери Close оно убивает ранее установленые значения, меняит их на Cancel


 
Чайник ©   (2010-04-05 16:17) [6]


> Slym ©   (05.04.10 15:17) [4]


> Anatoly Podgoretsky ©   (05.04.10 16:03) [5]


Спасибо!


 
Правильный$Вася   (2010-04-05 16:59) [7]

присваивание модалрезалта само по себе закрывает форму


 
Плохиш ©   (2010-04-05 22:52) [8]


>   1: FNewPass.ModalResult := AddNewPassVessPress;

дерьмокод.


 
Кибальчиш   (2010-04-06 14:17) [9]


> Плохиш ©   (05.04.10 22:52) [8]
> дерьмокод.

дерьмопост.


 
Anatoly Podgoretsky ©   (2010-04-06 14:25) [10]

Плохиш указал причину, а ты что сказать то хотел?



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.081 c
2-1269587670
Свободный художник
2010-03-26 10:14
2010.08.27
Захват окна


15-1265372241
Alien1769
2010-02-05 15:17
2010.08.27
Задачка на логику


15-1272262499
мимопроходил
2010-04-26 10:14
2010.08.27
Emacs


2-1267110427
dkhristich
2010-02-25 18:07
2010.08.27
Как корректно прекратить поток?


15-1272573005
Юрий
2010-04-30 00:30
2010.08.27
С днем рождения ! 30 апреля 2010 пятница





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский