Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Не рабоает Close


Автор: MItornaDOS 20.3.2008, 09:02
Кто знает: по каким причинам процедура Close не работает?

Автор: Exai1e 20.3.2008, 09:04
MItornaDOS, всмысле не работает ? че в событие onclose не заходит ? О.о "этаважи проста не можить бить", поподробнее пожалуйста smile
зы. Че у тя в OnCloseQuery написанно ?

Автор: THandle 20.3.2008, 09:04
MItornaDOS, как, где вызываешь? 

Автор: Poseidon 20.3.2008, 11:01
Цитата(MItornaDOS @  20.3.2008,  09:02 Найти цитируемый пост)
Кто знает: по каким причинам процедура Close не работает?
 Её блокируют smile

Автор: mmvds 20.3.2008, 12:02
У меня был случай, когда close не работал из-за того что пытался из дочерней формы закрыть главную, а вообще лучше код покажи.

Автор: MItornaDOS 20.3.2008, 17:26
эмм.. я зв процедуре исполняю некие действия, и потом мне бывает нужно выйти из этой формы
что-то типо 
Код

procedure TFormPl.BitBtn1Click(Sender: TObject);
begin
  If Red Then
    Begin
      ...
      Close;     //<<< не работает
    End;
  ...        // << у мну так построено, что здесь нельзя быть, если сработал преждний иф, и поэтому выбивает ошибка.
  Close;
end;

 smile  smile  smile  smile  smile 

Автор: Poseidon 20.3.2008, 17:31
А если указать конкретно FormPl.Close ? А если Application.Terminate ?

Добавлено через 1 минуту и 2 секунды
Все-таки поведение не стандартно. Мог бы ты прикрепить проектик, в котором у тебя это не работает?

Автор: MItornaDOS 20.3.2008, 18:50
у мну проектик на 100 метров с лишним...smile

Автор: Albinos_x 20.3.2008, 19:53
хм...тебе нужно выйти из процедуры или закрыть форму?
если закроешь форму, процедура не остановится... а Close может выполниться только по окончанию работы процедуры... т.к. сообщение на закрытие форма не примет в это время...
и вообще в приведённом коде не вижу причин расставлять столько клосов...
попробуй конечно после клосов экситы расставлять, но алгоритм работы кода изменится...
Код
  If Red Then
    Begin
      ...
      Close;    
     Exit;
    End;
  ...        
  Close;

Автор: MItornaDOS 20.3.2008, 21:18
нет, мне подойдёт думаю...
ща...
подошло, спасиб...

Автор: Albinos_x 20.3.2008, 21:40
не за что

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)