Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!
Zadejte Vaši e-mailovou adresu:
Kamarád fotí rád?
Přihlas ho k odběru fotomagazínu!
Zadejte e-mailovou adresu kamaráda:
Delphi
Tisk v Delphi 3. - standardní dialogy
tisk
7. března 2002, 00.00 | Tentokrát se zaměříme na komponenty TPrintDialog a TPrinterSetupDialog, zapouzdřující standardní tiskové dialogy Windows.
V dnešním dílu seriálu se podíváme na dva standardní dialogy - TPrintDialog a TPrinterSetupDialog - které nám Delphi nabízejí pro větší pohodlí při programování části programu nastavující parametry tisku. Netřeba snad dodávat, že je to v konečném důsledku pohodlnější i pro uživatele, který je na tyto standardní dialogy zvyklý z ostatních aplikací ve Windows. Obě komponenty zapouzdřující zmiňované dialogy najdete v záložce Dialogs spolu s ostatními komponentami příslušejícími zbylým standardním dialogům Windows.
TPrintDialogTento dialog budete v aplikaci nejčastěji zobrazovat přímo před samotným tiskem, aby uživatel nastavil jeho základní parametry.
Po zobrazení dialogu slouží metoda Execute. Její princip je stejný jako u všech ostatních standardních dialogů - zobrazí dialog, nechá uživatele si s ním "pohrát", a pak vrátí True, pokud uživatel dialog ukončil kliknutím na tlačítko Ok (či stiskem Enteru), jinak (pokud uživatel dialog stornoval) vrátí False.
Parametry, které uživatel nastaví, se odrazí v hodnotách vlastností komponenty. Zde je můžeme načíst případně změnit, což se projeví tím, že budou nastaveny jako defaultní hodnoty v dialogu při nejbližším zavolání Execute. Typicky ale podle jejich hodnot bude postupovat část programu, zajišťující samotný tisk.
Nyní se podívejme na seznam nejdůležitějších vlastností:
- Options: set of (poPrintToFile, poPageNums, poSelection, poWarning, poHelp, poDisablePrintToFile)
- Tato vlastnost je poměrně významná, podrobněji
totiž specifikuje vzhled a možnosti dialogu. Většinou
ji budete nastavovat přímo v Object Inspectoru, někdy
i přímo za běhu programu. Je to množina několika
konstant. Popišme si, co se stane, když dané konstanty
budou v množině obsaženy (tedy bude u nich v Object
Inspectoru nastaveno True).
- poDisablePintToFile - zašedí volbu tisku do souboru (funguje jen je-li nastaveno poPrintToFile)
- poHelp - zobrazí tlačítko Nápověda
- poPageNums - umožní uživateli zadat rozsah stránek, které chce vytisknout
- poPrintToFile - zobrazí volbu tisku do souboru
- poSelection - povolí uživateli zadat jako rozsah tisku aktuální výběr (hodí se hlavně u textových editorů)
- poWarning - zobrazí chybové
hlášení, pokud se uživatel bude pokoušet
tisknout na nenainstalované tiskárně
(Přiznám se, že význam této volby nechápu,
protože neznám způsob, jak zvolit k tisku
nenainstalovanou tiskárnu. Pokud je v tomto
ohledu někdo moudřejší, rád se nechám v
diskuzi poučit.)
- Copies: Integer
- Počet kopií, které si uživatel přeje vytisknout.
- Collate: Boolean
- Určuje, způsob řazení více kopií za sebe.
Například dvě kopie třístránkového dokumentu by se
při Collate = False měly vytisknout v pořadí
1 1 2 2 3 3, kdežto při Collate = True v
pořadí 1 2 3 1 2 3.
- PrintRange: (prAllPages, prSelection, prPageNums)
- Co se bude tisknout - všechny stránky, aktuální
výběr textu nebo rozsah stránek.
- MinPage, MaxPage: Integer
- Nejnižší a nejvyšší číslo stránky, které může
uživatel zadat při volbě rozsahu stránek pro tisk.
Tyto dvě vlastnosti budete nejspíš většinou v
programu nastavovat před zobrazením dialogu na
základě velikosti tisknutých dat.
- FromPage, ToPage: Integer
- Rozsah stránek, které uživatel zvolil jako určené k
tisku.
- PrintToFile: Boolean
- Zda tisknout do souboru.
Druhý standardní dialog narozdíl od prvního neoplývá takřka žádnými vlastnostmi. Také je nepotřebuje - všechny změny v něm se projeví přímo v globálním objektu Printer. Obvykle se dá nastavit tiskárna, na které se bude tisknout, typ a zdroj papíru a orientace tisku, ale podrobnosti se mohou u různých tiskáren lišit. Tlačítkem Vlastnosti může uživatel vyvolat podrobnější nastavení vlastností tiskárny, které je pro každou tiskárnu specifické (má ho na starosti její ovladač), takže ho tu nebudu popisovat.
PříštěDnešní díl byl poněkud "oddechový" a do seriálu byl zařazen spíš pro úplnost. Příště se podíváme na problematiku z trochu jiného soudku - délkové jednotky a ladění tisku.
Obsah seriálu (více o seriálu):
- Tisk v Delphi 1. - obyčejný text
- Tisk v Delphi 2. - grafika
- Tisk v Delphi 3. - standardní dialogy
- Tisk v Delphi 4. - převod délkových jednotek a ladění tisku
- Tisk v Delphi 5. - změna výchozí tiskárny
- Tisk v Delphi 6. - trocha API
- Tisk v Delphi 7. - položky struktury TDeviceMode
- Tisk v Delphi 8. - náhled
Diskuse k článku
-
25. listopadu 2012
-
30. srpna 2002
-
10. října 2002
-
4. listopadu 2002
-
12. září 2002
-
25. listopadu 2012
-
28. července 1998
-
31. července 1998
-
28. srpna 1998
-
6. prosince 2000
-
27. prosince 2007
-
4. května 2007