Autor Téma: Delphi 7 výběr tiskárny  (Přečteno 238 krát)

Offline Kony

  • Hrdina
  • ****
  • Příspěvků: 341
  • Karma: 1
    • Verze Delphi: Delphi 7
Delphi 7 výběr tiskárny
« kdy: 08-12-2022, 07:39:52 »
Ahoj, chtěl bych se zeptat na jednu otázku. Lze v Delphi 7 v kodu vybrat tiskárnu ??
Mám u PC připojené 3 tiskárny a každou tiskárnu potřebuji v jiné části kódu. Lze vybrat automaticky tiskárnu aniž by to chtělo nějaké potvrzení ?

Offline vandrovnik

  • Guru
  • *****
  • Příspěvků: 1455
  • Karma: 52
    • Verze Delphi: 10.3
Re:Delphi 7 výběr tiskárny
« Odpověď #1 kdy: 08-12-2022, 09:26:56 »
Pro tisk na různé termotransferové tiskárny používám přímo CreateDCW (nebo v Delphi 7 asi spíš CreateDCA):
https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-createdca

Vrácenou hodnotu přiřadím do Canvas.Handle.

A pak se taky hodí https://learn.microsoft.com/en-us/windows/win32/api/wingdi/nf-wingdi-startdoca
« Poslední změna: 08-12-2022, 09:30:40 od vandrovnik »

Offline KarelHorky

  • Hrdina
  • ****
  • Příspěvků: 285
  • Karma: 10
    • Verze Delphi: XE6, Delphi 10.2 Tokyo
Re:Delphi 7 výběr tiskárny
« Odpověď #2 kdy: 08-12-2022, 09:32:18 »
Existuje jednotka Printer a ta má property Printers, která obsahuje všechny tiskárny v systému. Konkrétní tiskárnu si vybíráš pomocí property PrinterIndex.
Kód: Delphi [Vybrat]
  1.   if Printer.Printers.Count > 0 then
  2.     Printer.PrinterIndex := -1; { nastavi vychozi tiskarnu, pokud je aspon jedna }
A pak už záleží na tom, jak tiskneš. Já používám FastReport, takže zvolenou tiskárnu nastavím takto:
Kód: Delphi [Vybrat]
  1.       dm.frRp.PrintOptions.Printer := Printer.Printers[Printer.PrinterIndex];
Win10 Prof 64b, Firebird 2.5

Offline Kony

  • Hrdina
  • ****
  • Příspěvků: 341
  • Karma: 1
    • Verze Delphi: Delphi 7
Re:Delphi 7 výběr tiskárny
« Odpověď #3 kdy: 08-12-2022, 10:00:14 »
tohle zni velice zajimave.. musim na to mrknout a najít si nejaky example...