Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.012 c
7-26814
Юра
2003-04-02 03:16
2003.06.09
Сканер штрих-кода


14-26716
Aziz
2003-05-15 17:13
2003.06.09
Проблема с объектами


14-26711
WarLord
2003-05-21 09:48
2003.06.09
Code Explorer


1-26487
lightix
2003-05-29 15:06
2003.06.09
Передача данных в Excel из C++ Builder


3-26390
Man
2003-05-21 14:14
2003.06.09
небазовые поля в датасете




   Наверх