Inny sposoby zamykania Formy.

0

Tak uruchamiam Form13

 IF not Assigned(Form13) then Form13:=TForm13.Create(Form9);
 Form13.Show;

A tak zamykam Form13 poleceniem Close;

Na Form13 potrzebuję dwa Buttony jeden Anuluj a drugi Drukuj.
Procedura drukowania jest tak zrobiona że może drukować bezpośrednio do drukarki lub do Form13.Image1 po zmianie jednej zmiennej boolean.
Nie wiem jak zamykać Form13 aby automatycznie uruchomić procedurę drukowania jeżeli zostanie wybrany Button Drukuj natomiast jeżeli użytkownik wybierze Button Anuluj proces drukowania ma zostać pominięty.
Podgląd wydruku Form13 będzie uruchamiana z wielu innych Form. Przygotowanie parametrów do wydruku jest dokonywane w Formie która wywołuje Form13.

Jak można rozwiązać ten problem.

0

W zdarzeniu
Form13(on)Close
DrukujBtn.Click(Sender);

Nie wiem, czy o to chodzilo, bo problem zagmatwany z deczka...
A w CloseBtnClick close... Chyba :-P

0

w buttonie drukuj daj
Form13.close;

W buttonie anuluj daj
Form13.Free;

W zdarzeniu onClose Formy13 daj procedure drukowania.

A w buttonie który uruchamia Forme13 daj

Application.CreateForm(TForm13, Form13);

Powinno być OK

0

Chodziło mi o to by Form9 różnie reagowała na zamknięcie Form13.
Po wybraniu Drukuj zamyka się Form13 i uruchamia Form9.Drukowanie a po wybraniu Anuluj zamykamy Form13 i nie uruchamiamy Form9.Drukowanie. Procedura drukowanie jest w Form9 i każdej innej która uruchamia Form13

0

Nie wiem czy dobrze rozumeim ale po wybraniu:

ANULUJ - otwiera się Form9 ale nie drukuje

a po wybraniu

DRUKUJ - otwiera się form9 z drukowaniem

Jezeli tak jest to:

w Anuluj
Form13.free;
Application.CreateForm(TForm9, Form9);

w Drukuj
Form13.close;

W oncreate formy9
Procedura drukowania;

0

Stwórz sobie zminną globalną dla Form13 (bool`a) i niech przyjmie wartość 1 (true) jeżeli wybrano drukowanie, a 0 (false), jeżeli anuluj.
I w OnClose
(oczywiście w Delphi)
Jeśli wartosc = 1 to uruchom(Form9.drukowanie);
zamknij(Form13);

Chyba coś takiego, jeżeli dobrze cię zrozumiałem.

0

Prawdopodobnie źle tłumaczyłem o co mi chodzi
podaję przykład.
Form4 z komponentem Image dająca tylko i wyłącznie
podgląd przed wydrukiem nie drukuje.

var drukowac : boolean;
procedure TForm4.Button1Click(Sender: TObject);
begin
Drukowac := true;
close;
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
Drukowac := False;
close;
end;

Jak wyłapać moment zamknięcia Form4.
Jak rozróżnić pozazmienną którym klawiszem zamknełem Form4
Gdzie umieścić w formie 2 i 3 warunek

       if Drukowac then drukuj;

procedure TForm2.Button1Click(Sender: TObject);
begin
IF not Assigned(Form4) then Form4:=TForm4.Create(Form3);
Form4.Show;
end;

procedure TForm3.Button1Click(Sender: TObject);
begin
IF not Assigned(Form4) then Form4:=TForm4.Create(Form3);
Form4.Show;
end;

0

if drukowac=true then
procedura drukuj

Form4.OnClose...
{instrukcje}

Zmienna globalna

unit4.nazwazmiennej:=true;

0

ok. Ale w jakie zdarzenie mam wstawić wartunek drukowania

0

ok. Ale w jakie zdarzenie mam wstawić wartunek drukowania

Wartunek drukowania zawsze najlepiej wstawiać w zdarzeniu OnFormWartaStart.
I pamiętaj o zwolnieniu zasobów w zdarzeniu OnFormWartaEnd !!

0

Ja bym to zrobił tak: Robie forme z podglądem wydruku - 1 Image i 2 Buttony Drukuj i Anuluj. ModalResult buttona Drukuj ustawiam na mrOK, a buttona Anuluj na mrCancel. I teraz jak chce wywołać gdzieś podgląd wydruku to pisze:

FormPodgląd.Image.Picture := RysunekPodglądu;
if FormPodgląd.ShowModal = mrOK then ProceduraDrukowania; 

A jak bez podglądu to Od razu wywołuje ProceduraDrukowania.

1 użytkowników online, w tym zalogowanych: 0, gości: 1