Mega problem (dla mnie :))

0

Czy ktoś mi może z Was powiedzieć jak zrobić taką rzecz...otóż mam wydruk w programie i możliwe jest wydrukowanie kilku stron. Chciałbym żeby PODCZAS wydruku pojawiała mi się FORMa, którą sobie sam zaprojektuję (na niej jakieś Labele i GAUGE i przycisk "Anuluj wydruk"). I teraz podczas drukowania chciałbym żeby GAUGE się "przesuwało" w zależności od wydrukowanych stron i żebym mógł oczywiście Anulować wydruk, i co NAJWAŻNIEJSZE żeby FORM zamykał się dopiero PO zakończonym drukowaniu!!! Mam już coś takiego ale okno pojawia się i komp tak szybko mi wczytuje strony że zaraz okno się zamyka. Nie wiem jak to specjalistycznie nazwać ale możliwe że nazywa się to przechwyceniem zdarzenia końca drukowania (no i samego drukowania - Anuluj Wydruk), jeśli ktoś wie jak mi pomóc to proszę o szybką odpowiedź ponieważ jest to potrzebne do pracy przejściowej!!!
Oto ten kawałek drukowania:
ustawienia drukowania i okna do wydruku
Form10.Show;
pokaz okno do druku
Form10.Gauge1.MaxValue := 10 ileStronDrukowac; co 10/1str. zmiana Gauge
ileStronDrukowac := (PrintDialog1.ToPage + 1) - PrintDialog1.FromPage;
for i := 1 to ileStronDrukowac do
begin
Form10.Label1.Caption := 'Drukuję stronę: ' + IntToStr(i) + '/' + IntToStr(ileStronDrukowac) + '... Proszę czekać...';
Form10.Gauge1.Progress := Form10.Gauge1.Progress + 10;
DrukowanieBitmapy(TablicaB[(i - 1) + PrintDialog1.FromPage]); drukowanie glowne
end;
Form10.Hide;
schowaj po skonczonym wydruku okno drukowania
*koniec drukowania

P.S. Jeszcze jakby ktoś wiedział jak zrobić, żeby rozpoznawał czy drukarka jest włączona lub nie i dawał jakiś komunikat oraz jak wyłączyć (lub odczytywać) opcje w PrinterDialog np. jeśli ktoś zaznaczył opcję "Strony - Wszystkie" albo "Strony-Od ...Do..." - jak to rozpoznać???

Pozdrawiam all--BigJas laik's programmer's :)

0

Form10.Gauge1.MaxValue := 10 ileStronDrukowac; co 10/1str. zmiana Gauge
ileStronDrukowac := (PrintDialog1.ToPage + 1) - PrintDialog1.FromPage;

zamieniłbym to miejscami!

pierwsze

ileStronDrukowac := (PrintDialog1.ToPage + 1) - PrintDialog1.FromPage;
Form10.Gauge1.MaxValue := 10 ileStronDrukowac; co 10/1str. zmiana Gauge

moze pomoze :)

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