Drukowanie tabeli StringGrid

dział ogólny

Re: Drukowanie tabeli StringGrid

Nowy postprzez Cyfrowy Baron » wtorek, 5 października 2010, 09:37

Przyjrzałem się metodom tych obiektów i niestety nie da się tego zmienić. To zresztą nie rozwiązywałoby do końca Twojego problemu, gdyż użytkownik po wywołaniu okna dialogowego i tak mógłby to zmienić.
W preferencjach drukarki możesz ustawić domyślne drukowanie w poziomie (z poziomu systemu nie programu), wtedy każdorazowe wywołanie okna dialogowego spowoduje ustawienie domyślnego drukowania w poziomie. Jeżeli do wywołania użyjesz obiektu typu TPrintDialog to z poziomu tego okna dialogowego użytkownik nie będzie mógł zmienić orientacji drukowania o ile nie wejdzie we właściwości wybranej drukarki.

Zastanawiam się dlaczego używasz wogóle okna dialogowego właściwości drukowania? Skoro masz tylko jedna drukarkę to nie może chodzić o wybór drukarki. Orientację strony ustawiasz na sztywno w programie, więc nie może chodzić o zmianę orientacji drukowania. Pozostaje więc tylko wybranie liczby kopii, ale to można rozwiązać za pomocą jakiegoś własnego okienka z określaniem liczby kopii, potem w pętli wystarczy wywołać funkcję drukującą określoną liczbę razy.




Zamiast dostępnych komponentów TPrintDialog i TPrinterSetupDialog możesz jeszcze wypróbować funkcję wywołującą okno dialogowe PrintDlg:

KOD cpp:     UKRYJ  
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 PRINTDLG pd;

 ZeroMemory(&pd, sizeof(pd));
 pd.lStructSize = sizeof(pd);
 pd.hwndOwner = this->Handle;
 pd.hDevMode = NULL;
 pd.hDevNames = NULL;
 pd.Flags = PD_USEDEVMODECOPIESANDCOLLATE | PD_RETURNDC;
 pd.nCopies = 1;
 pd.nFromPage = 1;
 pd.nToPage = 1;
 pd.nMinPage = 1;
 pd.nMaxPage = 1;

 if(PrintDlg(&pd) == TRUE)
 {
   // tutaj wstaw funkcję drukującą
   DeleteDC(pd.hDC);
 }
}
Avatar użytkownika
Cyfrowy Baron
Administrator
Administrator
 
Posty: 4731
Dołączył(a): niedziela, 13 lipca 2008, 15:17
Podziękował : 12
Otrzymał podziękowań: 445
System operacyjny: Windows 7 x64 SP1
Kompilator: Embarcadero RAD Studio XE2
C++ Builder XE2 Update 4
SKYPE: cyfbar
Gadu Gadu: 0
    Windows XPFirefox

Poprzednia strona

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Google [Bot] i 10 gości

cron