Главная страница
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.028 c
11-26419
Alexander
2002-09-17 16:33
2003.06.09
Вопрос по главному меню: создал пункт меню с подменю - всё Ок!


8-26618
Dunkan
2003-02-24 20:42
2003.06.09
Работа в DirectX


14-26774
goobit
2003-05-22 18:04
2003.06.09
Использование типа object


3-26364
Альф
2003-05-19 11:50
2003.06.09
Как вставить Checkbox в DBGrid ???


9-26320
Silentor
2003-01-03 20:03
2003.06.09
Где бы почитать о теории создания МПП?