Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.06.09;
Скачать: CL | DM;

Вниз

Странная ситуация при showmodal   Найти похожие ветки 

 
novill ©   (2003-05-29 09:25) [0]

Матера, помогите! Не могу понять, что происходит.
Главная форма приложения вызывает другую форму(bsDialog), при этом главная должна блокироваться, - вызываю по showmodal, вторая форма вызывает третью форму (предварительный просмотр QuickReport). После закрытия третьей формы вторую невозможно закрыть никак.
Как это обойти?


 
Skier ©   (2003-05-29 09:30) [1]

Код.


 
Goffman ©   (2003-05-29 09:37) [2]

Может третья форма у тебя просто прячется (Visible=False). Тогда действиетельно каюк. А иначе согласен со Skier


 
novill ©   (2003-05-29 09:59) [3]

Mainunit

procedure TMainForm.N1_1Click(Sender: TObject);
begin
Form16003.Show;
end;


Unit16003

procedure TForm16003.BitBtnPrintClick(Sender: TObject);
begin
List16003.QuickRep1.Preview;
end;



procedure TList16003.QuickRep1Preview(Sender: TObject);
begin
FormPreview.QRPreview1.QRPrinter:=TQRPrinter(sender);
FormPreview.Show;
end;



 
Skier ©   (2003-05-29 10:04) [4]

А это присваивание FormPreview.QRPreview1.QRPrinter:=TQRPrinter(sender); точно корректно ?


 
novill ©   (2003-05-29 10:06) [5]

При такой ситуации все отрабатывает нормально, но главная форма не блокируется.
А если поставить
в Mainunit

procedure TMainForm.N1_1Click(Sender: TObject);
begin
Form16003.ShowModal;
end;


Вторая форма не закрывается.


 
Skier ©   (2003-05-29 10:09) [6]

>novill © (29.05.03 10:06)
Что значит "не закрывается" ?
Чего же ты хочешь от этой добиться если она модальная ?


 
Юрий Зотов ©   (2003-05-29 10:10) [7]

Посмотрите в справке событие OnClose и какое значение по умолчанию имеет параметр Action.


 
novill ©   (2003-05-29 10:14) [8]

Я хочу чтобы нормально отрабатывала такая процедура

procedure TForm16003.BitBtnExitClick(Sender: TObject);
begin
Form16003.Close;
end;


 
Skier ©   (2003-05-29 10:16) [9]

>novill © (29.05.03 10:14)

> Я хочу чтобы нормально отрабатывала такая процедура

Зачем ? В OnClose или OnCloseQuery
у тебя есть какой-то "хитрый" код ?


 
novill ©   (2003-05-29 10:33) [10]


> Skier © (29.05.03 10:04)
> А это присваивание FormPreview.QRPreview1.QRPrinter:=TQRPrinter(sender);
> точно корректно ?

Я не знаю другого способа привязать Preview к отчету Qpeport.


> Юрий Зотов © (29.05.03 10:10)
> Посмотрите в справке событие OnClose и какое значение по
> умолчанию имеет параметр Action.

Дело в что программа при описанной ситуации вообще не попадает в процедуру TForm16003.BitBtnExitClick(Sender: TObject) и close не
отрабатывает.


Skier © (29.05.03 10:16)
> В OnClose или OnCloseQuery
> у тебя есть какой-то "хитрый" код ?

В том то и дело что там вообще нет кода. Просто по кнопке зарыть окно.


 
Юрий Зотов ©   (2003-05-29 10:47) [11]

> Дело в что программа при описанной ситуации вообще не попадает
> в процедуру TForm16003.BitBtnExitClick(Sender: TObject) и
> close не отрабатывает.

Не попадает в обработчик клика по кнопке? Значит, он не прицеплен к событию OnClick, других вариантов нет.

А вместо Form16003.Close напишите ModalResult := что_нужно.


 
pasha_golub ©   (2003-05-29 12:00) [12]

ModalResult надо устанавливать, Close низзя



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

Текущий архив: 2003.06.09;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
14-26680
Дмитрий К.К.
2003-05-25 11:21
2003.06.09
Именинники 25 мая


1-26421
deedlit
2003-05-27 14:12
2003.06.09
Как мне развернуть ComboBox?


3-26389
Маша
2003-05-21 10:59
2003.06.09
Не обновляется поле в базе


1-26522
Jaxtor
2003-05-27 16:17
2003.06.09
Динамический TComboBox


14-26748
Ihor Osov'yak
2003-05-22 01:17
2003.06.09
Прокси, учет трафика - что посоветуете..