home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Internet 2000 May / MICD_2000_05.iso / CBuilder5 / INSTALL / DATA1.CAB / Program_Built_Files / Include / Vcl / qrprntr.hpp < prev    next >
C/C++ Source or Header  |  2000-02-01  |  28KB  |  768 lines

  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 1999 by Borland International
  3. // All rights reserved
  4.  
  5. // (DO NOT EDIT: machine generated header) 'QRPrntr.pas' rev: 5.00
  6.  
  7. #ifndef QRPrntrHPP
  8. #define QRPrntrHPP
  9.  
  10. #pragma delphiheader begin
  11. #pragma option push -w-
  12. #pragma option push -Vx
  13. #include <Dialogs.hpp>    // Pascal unit
  14. #include <qr3const.hpp>    // Pascal unit
  15. #include <DBTables.hpp>    // Pascal unit
  16. #include <Db.hpp>    // Pascal unit
  17. #include <Forms.hpp>    // Pascal unit
  18. #include <Graphics.hpp>    // Pascal unit
  19. #include <Printers.hpp>    // Pascal unit
  20. #include <Buttons.hpp>    // Pascal unit
  21. #include <ComCtrls.hpp>    // Pascal unit
  22. #include <ExtCtrls.hpp>    // Pascal unit
  23. #include <StdCtrls.hpp>    // Pascal unit
  24. #include <Controls.hpp>    // Pascal unit
  25. #include <Classes.hpp>    // Pascal unit
  26. #include <Messages.hpp>    // Pascal unit
  27. #include <SysUtils.hpp>    // Pascal unit
  28. #include <WinSpool.hpp>    // Pascal unit
  29. #include <Windows.hpp>    // Pascal unit
  30. #include <SysInit.hpp>    // Pascal unit
  31. #include <System.hpp>    // Pascal unit
  32.  
  33. //-- user supplied -----------------------------------------------------------
  34.  
  35. namespace Qrprntr
  36. {
  37. //-- type declarations -------------------------------------------------------
  38. #pragma option push -b-
  39. enum TQRPaperSize { Default, Letter, LetterSmall, Tabloid, Ledger, Legal, Statement, Executive, A3, 
  40.     A4, A4Small, A5, B4, B5, Folio, Quarto, qr10X14, qr11X17, Note, Env9, Env10, Env11, Env12, Env14, CSheet, 
  41.     DSheet, ESheet, Custom };
  42. #pragma option pop
  43.  
  44. #pragma option push -b-
  45. enum TQRBin { First, Upper, Lower, Middle, Manual, Envelope, EnvManual, Auto, Tractor, SmallFormat, 
  46.     LargeFormat, LargeCapacity, Cassette, Last };
  47. #pragma option pop
  48.  
  49. #pragma option push -b-
  50. enum TQRBandType { rbTitle, rbPageHeader, rbDetail, rbPageFooter, rbSummary, rbGroupHeader, rbGroupFooter, 
  51.     rbSubDetail, rbColumnHeader, rbOverlay, rbChild };
  52. #pragma option pop
  53.  
  54. class DELPHICLASS EQRError;
  55. class PASCALIMPLEMENTATION EQRError : public Sysutils::Exception 
  56. {
  57.     typedef Sysutils::Exception inherited;
  58.     
  59. public:
  60.     #pragma option push -w-inl
  61.     /* Exception.Create */ inline __fastcall EQRError(const AnsiString Msg) : Sysutils::Exception(Msg) { }
  62.         
  63.     #pragma option pop
  64.     #pragma option push -w-inl
  65.     /* Exception.CreateFmt */ inline __fastcall EQRError(const AnsiString Msg, const System::TVarRec * 
  66.         Args, const int Args_Size) : Sysutils::Exception(Msg, Args, Args_Size) { }
  67.     #pragma option pop
  68.     #pragma option push -w-inl
  69.     /* Exception.CreateRes */ inline __fastcall EQRError(int Ident)/* overload */ : Sysutils::Exception(
  70.         Ident) { }
  71.     #pragma option pop
  72.     #pragma option push -w-inl
  73.     /* Exception.CreateResFmt */ inline __fastcall EQRError(int Ident, const System::TVarRec * Args, const 
  74.         int Args_Size)/* overload */ : Sysutils::Exception(Ident, Args, Args_Size) { }
  75.     #pragma option pop
  76.     #pragma option push -w-inl
  77.     /* Exception.CreateHelp */ inline __fastcall EQRError(const AnsiString Msg, int AHelpContext) : Sysutils::Exception(
  78.         Msg, AHelpContext) { }
  79.     #pragma option pop
  80.     #pragma option push -w-inl
  81.     /* Exception.CreateFmtHelp */ inline __fastcall EQRError(const AnsiString Msg, const System::TVarRec 
  82.         * Args, const int Args_Size, int AHelpContext) : Sysutils::Exception(Msg, Args, Args_Size, AHelpContext
  83.         ) { }
  84.     #pragma option pop
  85.     #pragma option push -w-inl
  86.     /* Exception.CreateResHelp */ inline __fastcall EQRError(int Ident, int AHelpContext)/* overload */
  87.          : Sysutils::Exception(Ident, AHelpContext) { }
  88.     #pragma option pop
  89.     #pragma option push -w-inl
  90.     /* Exception.CreateResFmtHelp */ inline __fastcall EQRError(System::PResStringRec ResStringRec, const 
  91.         System::TVarRec * Args, const int Args_Size, int AHelpContext)/* overload */ : Sysutils::Exception(
  92.         ResStringRec, Args, Args_Size, AHelpContext) { }
  93.     #pragma option pop
  94.     
  95. public:
  96.     #pragma option push -w-inl
  97.     /* TObject.Destroy */ inline __fastcall virtual ~EQRError(void) { }
  98.     #pragma option pop
  99.     
  100. };
  101.  
  102.  
  103. typedef Word CodeType;
  104.  
  105. typedef Byte UpIndex;
  106.  
  107. typedef Word DownIndex;
  108.  
  109. typedef DownIndex TreeDownArray[256];
  110.  
  111. typedef UpIndex TreeUpArray[513];
  112.  
  113. class DELPHICLASS TQRPrinter;
  114. class DELPHICLASS TPrinterSettings;
  115. typedef bool TPaperSizesSupported[27];
  116.  
  117. class PASCALIMPLEMENTATION TPrinterSettings : public System::TObject 
  118. {
  119.     typedef System::TObject inherited;
  120.     
  121. private:
  122.     char *FDevice;
  123.     char *FDriver;
  124.     char *FPort;
  125.     unsigned DeviceMode;
  126.     _devicemodeA *DevMode;
  127.     int FCopies;
  128.     bool FDuplex;
  129.     int FMaxExtentX;
  130.     int FMaxExtentY;
  131.     int FMinExtentX;
  132.     int FMinExtentY;
  133.     Printers::TPrinterOrientation FOrientation;
  134.     TQRBin FOutputBin;
  135.     TQRPaperSize FPaperSize;
  136.     bool FPaperSizes[27];
  137.     int FPaperWidth;
  138.     int FPaperLength;
  139.     int FPixelsPerX;
  140.     int FPixelsPerY;
  141.     int FTopOffset;
  142.     int FLeftOffset;
  143.     Printers::TPrinter* FPrinter;
  144.     AnsiString FTitle;
  145.     int __fastcall GetCopies(void);
  146.     AnsiString __fastcall GetDriver();
  147.     bool __fastcall GetDuplex(void);
  148.     int __fastcall GetMaxExtentX(void);
  149.     int __fastcall GetMaxExtentY(void);
  150.     int __fastcall GetMinExtentX(void);
  151.     int __fastcall GetMinExtentY(void);
  152.     Printers::TPrinterOrientation __fastcall GetOrientation(void);
  153.     TQRBin __fastcall GetOutputBin(void);
  154.     TQRPaperSize __fastcall GetPaperSize(void);
  155.     bool __fastcall GetPaperSizeSupported(TQRPaperSize PaperSize);
  156.     int __fastcall GetPaperWidth(void);
  157.     int __fastcall GetPaperLength(void);
  158.     int __fastcall GetPixelsPerX(void);
  159.     int __fastcall GetPixelsPerY(void);
  160.     AnsiString __fastcall GetPort();
  161.     Printers::TPrinter* __fastcall GetPrinter(void);
  162.     AnsiString __fastcall GetTitle();
  163.     int __fastcall GetTopOffset(void);
  164.     int __fastcall GetLeftOffset(void);
  165.     bool __fastcall Supported(int Setting);
  166.     void __fastcall SetField(int aField);
  167.     void __fastcall GetPrinterSettings(void);
  168.     void __fastcall SetCopies(int Value);
  169.     void __fastcall SetDuplex(bool Value);
  170.     void __fastcall SetOrientation(Printers::TPrinterOrientation Value);
  171.     void __fastcall SetOutputBin(TQRBin Value);
  172.     void __fastcall SetPaperSize(TQRPaperSize Value);
  173.     void __fastcall SetPaperLength(int Value);
  174.     void __fastcall SetPaperWidth(int Value);
  175.     void __fastcall SetPrinter(Printers::TPrinter* Value);
  176.     void __fastcall SetTitle(AnsiString Value);
  177.     
  178. public:
  179.     __fastcall TPrinterSettings(void);
  180.     __fastcall virtual ~TPrinterSettings(void);
  181.     void __fastcall ApplySettings(void);
  182.     __property AnsiString Device = {read=GetDriver};
  183.     __property AnsiString Driver = {read=GetDriver};
  184.     __property int LeftOffset = {read=GetLeftOffset, nodefault};
  185.     __property int MaxExtentX = {read=GetMaxExtentX, nodefault};
  186.     __property int MaxExtentY = {read=GetMaxExtentY, nodefault};
  187.     __property int MinExtentX = {read=GetMinExtentX, nodefault};
  188.     __property int MinExtentY = {read=GetMinExtentY, nodefault};
  189.     __property bool PaperSizeSupported[TQRPaperSize PaperSize] = {read=GetPaperSizeSupported};
  190.     __property int PixelsPerX = {read=GetPixelsPerX, nodefault};
  191.     __property int PixelsPerY = {read=GetPixelsPerY, nodefault};
  192.     __property AnsiString Port = {read=GetPort};
  193.     __property int TopOffset = {read=GetTopOffset, nodefault};
  194.     __property int Copies = {read=GetCopies, write=SetCopies, nodefault};
  195.     __property bool Duplex = {read=GetDuplex, write=SetDuplex, nodefault};
  196.     __property Printers::TPrinterOrientation Orientation = {read=GetOrientation, write=SetOrientation, 
  197.         nodefault};
  198.     __property TQRBin OutputBin = {read=GetOutputBin, write=SetOutputBin, nodefault};
  199.     __property int PaperLength = {read=GetPaperLength, write=SetPaperLength, nodefault};
  200.     __property TQRPaperSize PaperSize = {read=GetPaperSize, write=SetPaperSize, nodefault};
  201.     __property int PaperWidth = {read=GetPaperWidth, write=SetPaperWidth, nodefault};
  202.     __property Printers::TPrinter* Printer = {read=GetPrinter, write=SetPrinter};
  203.     __property AnsiString Title = {read=GetTitle, write=SetTitle};
  204. };
  205.  
  206.  
  207. class DELPHICLASS TQRStream;
  208. class PASCALIMPLEMENTATION TQRStream : public Classes::TStream 
  209. {
  210.     typedef Classes::TStream inherited;
  211.     
  212. private:
  213.     _RTL_CRITICAL_SECTION FLock;
  214.     Classes::TMemoryStream* MemoryStream;
  215.     AnsiString FFilename;
  216.     Classes::TFileStream* FileStream;
  217.     bool FInMemory;
  218.     int FMemoryLimit;
  219.     
  220. public:
  221.     __fastcall TQRStream(int MemoryLimit);
  222.     __fastcall TQRStream(AnsiString Filename);
  223.     __fastcall virtual ~TQRStream(void);
  224.     virtual int __fastcall Write(const void *Buffer, int Count);
  225.     virtual int __fastcall Seek(int Offset, Word Origin);
  226.     virtual int __fastcall Read(void *Buffer, int Count);
  227.     void __fastcall LockStream(void);
  228.     void __fastcall UnlockStream(void);
  229.     void __fastcall SaveToStream(Classes::TStream* AStream);
  230.     __property bool InMemory = {read=FInMemory, nodefault};
  231. };
  232.  
  233.  
  234. typedef void __fastcall (__closure *TQRAfterPrintEvent)(System::TObject* Sender);
  235.  
  236. typedef void __fastcall (__closure *TQRAfterPreviewEvent)(System::TObject* Sender);
  237.  
  238. #pragma option push -b-
  239. enum TQRPrinterDestination { qrdMetafile, qrdPrinter };
  240. #pragma option pop
  241.  
  242. class DELPHICLASS TQRExportFilter;
  243. typedef void __fastcall (__closure *TQRExportToFilterEvent)(TQRExportFilter* aFilter);
  244.  
  245. typedef void __fastcall (__closure *TQRPrintSetupEvent)(void);
  246.  
  247. #pragma option push -b-
  248. enum TQRPrinterStatus { mpReady, mpBusy, mpFinished };
  249. #pragma option pop
  250.  
  251. class DELPHICLASS TQRPageList;
  252. class DELPHICLASS TQRCompress;
  253. class PASCALIMPLEMENTATION TQRCompress : public System::TObject 
  254. {
  255.     typedef System::TObject inherited;
  256.     
  257. private:
  258.     Byte BitPos;
  259.     bool CompressFlag;
  260.     CodeType InByte;
  261.     DownIndex Left[256];
  262.     DownIndex Right[256];
  263.     CodeType OutByte;
  264.     Classes::TStream* Stream;
  265.     UpIndex Up[513];
  266.     Byte __fastcall GetByte(void);
  267.     void __fastcall InitializeSplay(void);
  268.     void __fastcall Splay(CodeType Plain);
  269.     
  270. public:
  271.     __fastcall TQRCompress(Classes::TStream* aStream, bool CompressData);
  272.     __fastcall virtual ~TQRCompress(void);
  273.     void __fastcall Expand(Byte &Expanded);
  274.     void __fastcall Compress(CodeType Plain);
  275. };
  276.  
  277.  
  278. class PASCALIMPLEMENTATION TQRPageList : public System::TObject 
  279. {
  280.     typedef System::TObject inherited;
  281.     
  282. private:
  283.     _RTL_CRITICAL_SECTION FLock;
  284.     TQRCompress* aCompressor;
  285.     bool FCompression;
  286.     int FPageCount;
  287.     TQRStream* FStream;
  288.     void __fastcall SeekToFirst(void);
  289.     void __fastcall SeekToLast(void);
  290.     void __fastcall SeekToPage(int PageNumber);
  291.     void __fastcall ReadFileHeader(void);
  292.     void __fastcall WriteFileHeader(void);
  293.     
  294. public:
  295.     __fastcall TQRPageList(void);
  296.     __fastcall virtual ~TQRPageList(void);
  297.     Graphics::TMetafile* __fastcall GetPage(int PageNumber);
  298.     void __fastcall AddPage(Graphics::TMetafile* aMetafile);
  299.     void __fastcall Clear(void);
  300.     void __fastcall Finish(void);
  301.     void __fastcall LoadFromFile(AnsiString Filename);
  302.     void __fastcall LockList(void);
  303.     void __fastcall SaveToFile(AnsiString Filename);
  304.     void __fastcall UnlockList(void);
  305.     __property bool Compression = {read=FCompression, write=FCompression, nodefault};
  306.     __property int PageCount = {read=FPageCount, nodefault};
  307.     __property TQRStream* Stream = {read=FStream, write=FStream};
  308. };
  309.  
  310.  
  311. class PASCALIMPLEMENTATION TQRPrinter : public Classes::TPersistent 
  312. {
  313.     typedef Classes::TPersistent inherited;
  314.     
  315. private:
  316.     Printers::TPrinter* aPrinter;
  317.     TPrinterSettings* aPrinterSettings;
  318.     TQRStream* aStream;
  319.     TQRAfterPrintEvent FAfterPrintEvent;
  320.     TQRAfterPreviewEvent FAfterPreviewEvent;
  321.     int FAvailablePages;
  322.     bool FCancelled;
  323.     Graphics::TCanvas* FCanvas;
  324.     Controls::TWinControl* FCloseControl;
  325.     TQRPrinterDestination FDestination;
  326.     int FFirstPage;
  327.     int FLastpage;
  328.     int FLeftWaste;
  329.     Controls::TWinControl* FClient;
  330.     Controls::TWinControl* FMaster;
  331.     Graphics::TMetafile* FMetafile;
  332.     TQRExportToFilterEvent FOnExportToFilterEvent;
  333.     Classes::TNotifyEvent FOnPreviewEvent;
  334.     TQRPrintSetupEvent FOnPrintSetupEvent;
  335.     Graphics::TMetafile* FPage;
  336.     int FPageCount;
  337.     int FPageNumber;
  338.     bool FPrinterOK;
  339.     int FProgress;
  340.     AnsiString FTitle;
  341.     int FTopWaste;
  342.     bool FShowingPreview;
  343.     TQRPrinterStatus FStatus;
  344.     Extended FXFactor;
  345.     Extended FYFactor;
  346.     TQRPageList* PageList;
  347.     Controls::TWinControl* PreviewControl;
  348.     bool FReportLoaded;
  349.     bool __fastcall CurrentPageOK(void);
  350.     int __fastcall GetLeftWaste(void);
  351.     TQRBin __fastcall GetBin(void);
  352.     Graphics::TCanvas* __fastcall GetCanvas(void);
  353.     bool __fastcall GetCompression(void);
  354.     int __fastcall GetCopies(void);
  355.     bool __fastcall GetDuplex(void);
  356.     Printers::TPrinterOrientation __fastcall GetOrientation(void);
  357.     int __fastcall GetPaperLength(void);
  358.     TQRPaperSize __fastcall GetPaperSize(void);
  359.     int __fastcall GetPaperWidth(void);
  360.     int __fastcall GetPrinterIndex(void);
  361.     Classes::TStrings* __fastcall GetPrinters(void);
  362.     int __fastcall GetTopWaste(void);
  363.     void __fastcall CreateMetafileCanvas(void);
  364.     void __fastcall CreatePrinterCanvas(void);
  365.     void __fastcall EndMetafileCanvas(void);
  366.     void __fastcall EndPrinterCanvas(void);
  367.     void __fastcall SetAvailablePages(int Value);
  368.     void __fastcall SetBin(TQRBin Value);
  369.     void __fastcall SetCompression(bool Value);
  370.     void __fastcall SetCopies(int Value);
  371.     void __fastcall SetDestination(TQRPrinterDestination Value);
  372.     void __fastcall SetDuplex(bool Value);
  373.     void __fastcall SetOrientation(Printers::TPrinterOrientation Value);
  374.     void __fastcall SetPaperLength(int Value);
  375.     void __fastcall SetPageNumber(int Value);
  376.     void __fastcall SetPaperSize(TQRPaperSize Value);
  377.     void __fastcall SetPaperWidth(int Value);
  378.     void __fastcall SetPrinterIndex(int Value);
  379.     void __fastcall SetProgress(int Value);
  380.     void __fastcall SetShowingPreview(bool Value);
  381.     
  382. public:
  383.     __fastcall TQRPrinter(void);
  384.     __fastcall virtual ~TQRPrinter(void);
  385.     Graphics::TMetafile* __fastcall GetPage(int Value);
  386.     int __fastcall XPos(Extended Value);
  387.     int __fastcall XSize(Extended Value);
  388.     int __fastcall YPos(Extended Value);
  389.     int __fastcall YSize(Extended Value);
  390.     int __fastcall PaperLengthValue(void);
  391.     int __fastcall PaperWidthValue(void);
  392.     void __fastcall AbortDoc(void);
  393.     void __fastcall BeginDoc(void);
  394.     void __fastcall Cancel(void);
  395.     void __fastcall Cleanup(void);
  396.     void __fastcall ClosePreview(Controls::TWinControl* Control);
  397.     void __fastcall EndDoc(void);
  398.     void __fastcall ExportToFilter(TQRExportFilter* aFilter);
  399.     void __fastcall Load(AnsiString Filename);
  400.     void __fastcall NewPage(void);
  401.     void __fastcall Preview(void);
  402.     void __fastcall PreviewModal(void);
  403.     void __fastcall Print(void);
  404.     void __fastcall PrintSetup(void);
  405.     void __fastcall Save(AnsiString Filename);
  406.     __property bool ReportLoaded = {read=FReportLoaded, write=FReportLoaded, nodefault};
  407.     __property TQRAfterPreviewEvent AfterPreview = {read=FAfterPreviewEvent, write=FAfterPreviewEvent};
  408.         
  409.     __property TQRAfterPrintEvent AfterPrint = {read=FAfterPrintEvent, write=FAfterPrintEvent};
  410.     __property int AvailablePages = {read=FAvailablePages, write=SetAvailablePages, nodefault};
  411.     __property TQRBin OutputBin = {read=GetBin, write=SetBin, nodefault};
  412.     __property bool Cancelled = {read=FCancelled, write=FCancelled, nodefault};
  413.     __property Graphics::TCanvas* Canvas = {read=GetCanvas};
  414.     __property Controls::TWinControl* Client = {read=FClient, write=FClient};
  415.     __property bool Compression = {read=GetCompression, write=SetCompression, nodefault};
  416.     __property int Copies = {read=GetCopies, write=SetCopies, nodefault};
  417.     __property TQRPrinterDestination Destination = {read=FDestination, write=SetDestination, nodefault}
  418.         ;
  419.     __property bool Duplex = {read=GetDuplex, write=SetDuplex, nodefault};
  420.     __property int FirstPage = {read=FFirstPage, write=FFirstPage, nodefault};
  421.     __property int LastPage = {read=FLastpage, write=FLastpage, nodefault};
  422.     __property int LeftWaste = {read=GetLeftWaste, nodefault};
  423.     __property Controls::TWinControl* Master = {read=FMaster, write=FMaster};
  424.     __property Printers::TPrinterOrientation Orientation = {read=GetOrientation, write=SetOrientation, 
  425.         nodefault};
  426.     __property TQRExportToFilterEvent OnExportToFilter = {read=FOnExportToFilterEvent, write=FOnExportToFilterEvent
  427.         };
  428.     __property Classes::TNotifyEvent OnPreview = {read=FOnPreviewEvent, write=FOnPreviewEvent};
  429.     __property TQRPrintSetupEvent OnPrintSetup = {read=FOnPrintSetupEvent, write=FOnPrintSetupEvent};
  430.     __property int PaperLength = {read=GetPaperLength, write=SetPaperLength, nodefault};
  431.     __property Graphics::TMetafile* Page = {read=FPage};
  432.     __property int PageCount = {read=FPageCount, write=FPageCount, nodefault};
  433.     __property int PageNumber = {read=FPageNumber, write=SetPageNumber, nodefault};
  434.     __property int PaperWidth = {read=GetPaperWidth, write=SetPaperWidth, nodefault};
  435.     __property TQRPaperSize PaperSize = {read=GetPaperSize, write=SetPaperSize, nodefault};
  436.     __property int PrinterIndex = {read=GetPrinterIndex, write=SetPrinterIndex, nodefault};
  437.     __property bool PrinterOK = {read=FPrinterOK, nodefault};
  438.     __property Classes::TStrings* Printers = {read=GetPrinters};
  439.     __property int Progress = {read=FProgress, write=SetProgress, nodefault};
  440.     __property bool ShowingPreview = {read=FShowingPreview, write=SetShowingPreview, nodefault};
  441.     __property TQRPrinterStatus Status = {read=FStatus, nodefault};
  442.     __property AnsiString Title = {read=FTitle, write=FTitle};
  443.     __property int TopWaste = {read=GetTopWaste, nodefault};
  444.     __property Extended XFactor = {read=FXFactor, write=FXFactor};
  445.     __property Extended YFactor = {read=FYFactor, write=FYFactor};
  446. };
  447.  
  448.  
  449. struct TCM_QRPRogressUpdate
  450. {
  451.     unsigned Msg;
  452.     Word Position;
  453.     TQRPrinter* QRPrinter;
  454. } ;
  455.  
  456. struct TCM_QRPageAvailable
  457. {
  458.     unsigned Msg;
  459.     Word PageCount;
  460.     TQRPrinter* QRPrinter;
  461. } ;
  462.  
  463. struct TCM_QRPreviewClose
  464. {
  465.     unsigned Msg;
  466.     Word Dummy;
  467.     TQRPrinter* QRPrinter;
  468. } ;
  469.  
  470. typedef Messages::TMessage  TCM_QRPrint;
  471.  
  472. typedef TMetaClass*TQRExportFilterClass;
  473.  
  474. class DELPHICLASS TQRExportFilterLibraryEntry;
  475. class PASCALIMPLEMENTATION TQRExportFilterLibraryEntry : public System::TObject 
  476. {
  477.     typedef System::TObject inherited;
  478.     
  479. private:
  480.     TMetaClass*FExportFilterClass;
  481.     AnsiString FName;
  482.     AnsiString FExtension;
  483.     
  484. public:
  485.     __property TMetaClass* ExportFilterClass = {read=FExportFilterClass, write=FExportFilterClass};
  486.     __property AnsiString FilterName = {read=FName, write=FName};
  487.     __property AnsiString Extension = {read=FExtension, write=FExtension};
  488. public:
  489.     #pragma option push -w-inl
  490.     /* TObject.Create */ inline __fastcall TQRExportFilterLibraryEntry(void) : System::TObject() { }
  491.     #pragma option pop
  492.     #pragma option push -w-inl
  493.     /* TObject.Destroy */ inline __fastcall virtual ~TQRExportFilterLibraryEntry(void) { }
  494.     #pragma option pop
  495.     
  496. };
  497.  
  498.  
  499. class DELPHICLASS TQRExportFilterLibrary;
  500. class PASCALIMPLEMENTATION TQRExportFilterLibrary : public System::TObject 
  501. {
  502.     typedef System::TObject inherited;
  503.     
  504. private:
  505.     Classes::TList* FFilterList;
  506.     
  507. protected:
  508.     AnsiString __fastcall GetSaveDialogFilter();
  509.     
  510. public:
  511.     __fastcall TQRExportFilterLibrary(void);
  512.     __fastcall virtual ~TQRExportFilterLibrary(void);
  513.     void __fastcall AddFilter(TMetaClass* AFilter);
  514.     void __fastcall RemoveFilter(TMetaClass* AFilter);
  515.     __property Classes::TList* Filters = {read=FFilterList};
  516.     __property AnsiString SaveDialogFilterString = {read=GetSaveDialogFilter};
  517. };
  518.  
  519.  
  520. class DELPHICLASS TQRPreviewInterface;
  521. class PASCALIMPLEMENTATION TQRPreviewInterface : public Classes::TComponent 
  522. {
  523.     typedef Classes::TComponent inherited;
  524.     
  525. public:
  526.     virtual Controls::TWinControl* __fastcall Show(TQRPrinter* AQRPrinter);
  527.     virtual Controls::TWinControl* __fastcall ShowModal(TQRPrinter* AQRPrinter);
  528. public:
  529.     #pragma option push -w-inl
  530.     /* TComponent.Create */ inline __fastcall virtual TQRPreviewInterface(Classes::TComponent* AOwner) : 
  531.         Classes::TComponent(AOwner) { }
  532.     #pragma option pop
  533.     #pragma option push -w-inl
  534.     /* TComponent.Destroy */ inline __fastcall virtual ~TQRPreviewInterface(void) { }
  535.     #pragma option pop
  536.     
  537. };
  538.  
  539.  
  540. typedef TMetaClass*TQRPreviewInterfaceClass;
  541.  
  542. class DELPHICLASS TQRStandardPreviewInterface;
  543. class PASCALIMPLEMENTATION TQRStandardPreviewInterface : public TQRPreviewInterface 
  544. {
  545.     typedef TQRPreviewInterface inherited;
  546.     
  547. public:
  548.     virtual Controls::TWinControl* __fastcall Show(TQRPrinter* AQRPrinter);
  549.     virtual Controls::TWinControl* __fastcall ShowModal(TQRPrinter* AQRPrinter);
  550. public:
  551.     #pragma option push -w-inl
  552.     /* TComponent.Create */ inline __fastcall virtual TQRStandardPreviewInterface(Classes::TComponent* 
  553.         AOwner) : TQRPreviewInterface(AOwner) { }
  554.     #pragma option pop
  555.     #pragma option push -w-inl
  556.     /* TComponent.Destroy */ inline __fastcall virtual ~TQRStandardPreviewInterface(void) { }
  557.     #pragma option pop
  558.     
  559. };
  560.  
  561.  
  562. #pragma option push -b-
  563. enum TQRZoomState { qrZoomToFit, qrZoomToWidth, qrZoomOther };
  564. #pragma option pop
  565.  
  566. class DELPHICLASS TQRPreviewImage;
  567. class PASCALIMPLEMENTATION TQRPreviewImage : public Controls::TGraphicControl 
  568. {
  569.     typedef Controls::TGraphicControl inherited;
  570.     
  571. private:
  572.     TQRPrinter* FQRPrinter;
  573.     int FPageNumber;
  574.     Graphics::TMetafile* aMetaFile;
  575.     bool FImageOK;
  576.     void __fastcall PaintPage(void);
  577.     void __fastcall SetPageNumber(int Value);
  578.     
  579. public:
  580.     int Zoom;
  581.     __fastcall virtual TQRPreviewImage(Classes::TComponent* AOwner);
  582.     __fastcall virtual ~TQRPreviewImage(void);
  583.     virtual void __fastcall Paint(void);
  584.     __property bool ImageOK = {read=FImageOK, write=FImageOK, nodefault};
  585.     __property int PageNumber = {read=FPageNumber, write=SetPageNumber, nodefault};
  586.     __property TQRPrinter* QRPrinter = {read=FQRPrinter, write=FQRPrinter};
  587. };
  588.  
  589.  
  590. typedef void __fastcall (__closure *TQRProgressUpdateEvent)(System::TObject* Sender, int Progress);
  591.  
  592. typedef void __fastcall (__closure *TQRPageAvailableEvent)(System::TObject* Sender, int PageNum);
  593.  
  594. class DELPHICLASS TQRPreview;
  595. class PASCALIMPLEMENTATION TQRPreview : public Forms::TScrollBox 
  596. {
  597.     typedef Forms::TScrollBox inherited;
  598.     
  599. private:
  600.     TQRPageAvailableEvent FOnPageAvailableEvent;
  601.     TQRProgressUpdateEvent FOnProgressUpdateEvent;
  602.     TQRPreviewImage* FPreviewImage;
  603.     int FPageNumber;
  604.     TQRPrinter* FQRPrinter;
  605.     int FZoom;
  606.     TQRZoomState FZoomState;
  607.     void __fastcall SetPageNumber(int Value);
  608.     void __fastcall SetZoom(int value);
  609.     void __fastcall Fixvalues(System::TObject* Sender);
  610.     void __fastcall SetQRPrinter(TQRPrinter* Value);
  611.     
  612. protected:
  613.     MESSAGE void __fastcall CMPageAvailable(TCM_QRPageAvailable &Message);
  614.     MESSAGE void __fastcall CMProgressUpdate(TCM_QRPRogressUpdate &Message);
  615.     
  616. public:
  617.     __fastcall virtual TQRPreview(Classes::TComponent* aOwner);
  618.     __fastcall virtual ~TQRPreview(void);
  619.     void __fastcall UpdateImage(void);
  620.     void __fastcall UpdateZoom(void);
  621.     void __fastcall ZoomToWidth(void);
  622.     void __fastcall ZoomToFit(void);
  623.     __property TQRPreviewImage* PreviewImage = {read=FPreviewImage};
  624.     __property TQRPrinter* QRPrinter = {read=FQRPrinter, write=SetQRPrinter};
  625.     __property TQRZoomState ZoomState = {read=FZoomState, write=FZoomState, nodefault};
  626.     
  627. __published:
  628.     __property TQRPageAvailableEvent OnPageAvailable = {read=FOnPageAvailableEvent, write=FOnPageAvailableEvent
  629.         };
  630.     __property TQRProgressUpdateEvent OnProgressUpdate = {read=FOnProgressUpdateEvent, write=FOnProgressUpdateEvent
  631.         };
  632.     __property int PageNumber = {read=FPageNumber, write=SetPageNumber, nodefault};
  633.     __property int Zoom = {read=FZoom, write=SetZoom, nodefault};
  634. public:
  635.     #pragma option push -w-inl
  636.     /* TWinControl.CreateParented */ inline __fastcall TQRPreview(HWND ParentWindow) : Forms::TScrollBox(
  637.         ParentWindow) { }
  638.     #pragma option pop
  639.     
  640. };
  641.  
  642.  
  643. class PASCALIMPLEMENTATION TQRExportFilter : public System::TObject 
  644. {
  645.     typedef System::TObject inherited;
  646.     
  647. private:
  648.     TQRPrinter* FOriginalQRPrinter;
  649.     bool FActive;
  650.     AnsiString FFilename;
  651.     Classes::TComponent* FOwner;
  652.     
  653. protected:
  654.     virtual AnsiString __fastcall GetDescription();
  655.     virtual AnsiString __fastcall GetExtension();
  656.     virtual AnsiString __fastcall GetFilterName();
  657.     virtual AnsiString __fastcall GetVendorName();
  658.     virtual bool __fastcall GetStreaming(void);
  659.     
  660. public:
  661.     __fastcall TQRExportFilter(AnsiString Filename);
  662.     virtual void __fastcall Start(int PaperWidth, int PaperHeight, Graphics::TFont* Font);
  663.     virtual void __fastcall EndPage(void);
  664.     virtual void __fastcall Finish(void);
  665.     virtual void __fastcall NewPage(void);
  666.     virtual void __fastcall TextOut(Extended X, Extended Y, Graphics::TFont* Font, Graphics::TColor BGColor
  667.         , Classes::TAlignment Alignment, AnsiString Text);
  668.     __property bool Active = {read=FActive, write=FActive, nodefault};
  669.     __property AnsiString Description = {read=GetDescription};
  670.     __property AnsiString FileExtension = {read=GetExtension};
  671.     __property AnsiString Filename = {read=FFilename};
  672.     __property AnsiString Name = {read=GetFilterName};
  673.     __property Classes::TComponent* Owner = {read=FOwner, write=FOwner};
  674.     __property bool Streaming = {read=GetStreaming, nodefault};
  675.     __property AnsiString Vendor = {read=GetVendorName};
  676.     __property TQRPrinter* OriginalQRPrinter = {read=FOriginalQRPrinter, write=FOriginalQRPrinter};
  677. public:
  678.         
  679.     #pragma option push -w-inl
  680.     /* TObject.Destroy */ inline __fastcall virtual ~TQRExportFilter(void) { }
  681.     #pragma option pop
  682.     
  683. };
  684.  
  685.  
  686. class DELPHICLASS TQRPrinterSettings;
  687. class PASCALIMPLEMENTATION TQRPrinterSettings : public Classes::TPersistent 
  688. {
  689.     typedef Classes::TPersistent inherited;
  690.     
  691. private:
  692.     int FCopies;
  693.     bool FDuplex;
  694.     Printers::TPrinterOrientation FOrientation;
  695.     TQRBin FOutputBin;
  696.     TQRPaperSize FPaperSize;
  697.     int FPrinterIndex;
  698.     AnsiString FTitle;
  699.     int FFirstPage;
  700.     int FLastPage;
  701.     
  702. public:
  703.     __fastcall TQRPrinterSettings(void);
  704.     void __fastcall ApplySettings(TQRPrinter* APrinter);
  705.     __property int Copies = {read=FCopies, write=FCopies, nodefault};
  706.     __property bool Duplex = {read=FDuplex, write=FDuplex, nodefault};
  707.     __property int FirstPage = {read=FFirstPage, write=FFirstPage, nodefault};
  708.     __property int LastPage = {read=FLastPage, write=FLastPage, nodefault};
  709.     __property Printers::TPrinterOrientation Orientation = {read=FOrientation, write=FOrientation, nodefault
  710.         };
  711.     __property TQRBin OutputBin = {read=FOutputBin, write=FOutputBin, nodefault};
  712.     __property TQRPaperSize PaperSize = {read=FPaperSize, write=FPaperSize, nodefault};
  713.     __property int PrinterIndex = {read=FPrinterIndex, write=FPrinterIndex, nodefault};
  714.     __property AnsiString Title = {read=FTitle, write=FTitle};
  715. public:
  716.     #pragma option push -w-inl
  717.     /* TPersistent.Destroy */ inline __fastcall virtual ~TQRPrinterSettings(void) { }
  718.     #pragma option pop
  719.     
  720. };
  721.  
  722.  
  723. typedef void __fastcall (__closure *TQRGenerateToPrinterEvent)(void);
  724.  
  725. typedef void __fastcall (__closure *TQRPreviewEvent)(void);
  726.  
  727. //-- var, const, procedure ---------------------------------------------------
  728. #define cQRName "QuickReport 3.0.5"
  729. static const Word cQRVersion = 0x131;
  730. #define cQRPDefaultExt "QRP"
  731. #define cQRDefaultExt "QR"
  732. extern PACKAGE Extended cQRPaperSizeMetrics[26][2];
  733. extern PACKAGE int cQRPaperTranslate[28];
  734. extern PACKAGE int cQRBinTranslate[14];
  735. static const Shortint cQRPageShadowWidth = 0x2;
  736. static const Shortint cQRPageFrameWidth = 0x1;
  737. static const int cQRPageShadowColor = 0x0;
  738. static const Shortint cQRCornerSize = 0x4;
  739. static const Word MaxChar = 0x100;
  740. static const Word EofChar = 0x100;
  741. static const Byte PredMax = 0xff;
  742. static const Word TwiceMax = 0x200;
  743. static const Shortint ROOT = 0x0;
  744. extern PACKAGE Byte BitMask[8];
  745. static const Word CM_QRPROGRESSUPDATE = 0x400;
  746. static const Word CM_QRPAGEAVAILABLE = 0x401;
  747. static const Word CM_QRPRINT = 0x402;
  748. static const Word CM_QRPRINTSETUP = 0x403;
  749. static const Word CM_QRPREVIEWCLOSE = 0x404;
  750. extern PACKAGE TQRExportFilterLibrary* QRExportFilterLibrary;
  751. extern PACKAGE int __fastcall AnsiPos(AnsiString Substr, AnsiString S);
  752. extern PACKAGE AnsiString __fastcall QRPaperName(TQRPaperSize Size);
  753. extern PACKAGE AnsiString __fastcall TempFilename();
  754. extern PACKAGE Classes::TStrings* __fastcall GetFonts(void);
  755. extern PACKAGE TQRPrinter* __fastcall QRPrinter(void);
  756. extern PACKAGE void __fastcall RegisterPreviewClass(TMetaClass* APreviewInterface);
  757.  
  758. }    /* namespace Qrprntr */
  759. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  760. using namespace Qrprntr;
  761. #endif
  762. #pragma option pop    // -w-
  763. #pragma option pop    // -Vx
  764.  
  765. #pragma delphiheader end.
  766. //-- end unit ----------------------------------------------------------------
  767. #endif    // QRPrntr
  768.