home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 October / Chip_2001-10_cd1.bin / zkuste / delphi / kolekce / d6 / FRCLX.ZIP / SOURCE / FR_PrDlg.pas < prev    next >
Pascal/Delphi Source File  |  2001-07-03  |  5KB  |  199 lines

  1.  
  2. {******************************************}
  3. {                                          }
  4. {           FastReport CLX v2.4            }
  5. {              Print dialog                }
  6. {                                          }
  7. { Copyright (c) 1998-2001 by Tzyganenko A. }
  8. {                                          }
  9. {******************************************}
  10.  
  11. unit FR_PrDlg;
  12.  
  13. interface
  14.  
  15. {$I FR.inc}
  16.  
  17. uses
  18.   SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs,
  19.   QStdCtrls, FR_Ctrls, QExtCtrls, QButtons;
  20.  
  21. type
  22.   TfrPrintForm = class(TForm)
  23.     GroupBox2: TGroupBox;
  24.     RB1: TRadioButton;
  25.     RB2: TRadioButton;
  26.     RB3: TRadioButton;
  27.     E2: TEdit;
  28.     Label2: TLabel;
  29.     Button1: TButton;
  30.     Button2: TButton;
  31.     GroupBox1: TGroupBox;
  32.     CB1: TComboBox;
  33.     PropButton: TButton;
  34.     GroupBox3: TGroupBox;
  35.     Label1: TLabel;
  36.     E1: TEdit;
  37.     Panel1: TPanel;
  38.     frSpeedButton1: TfrSpeedButton;
  39.     frSpeedButton2: TfrSpeedButton;
  40.     CollateCB: TCheckBox;
  41.     CollateImg: TImage;
  42.     NonCollateImg: TImage;
  43.     Label3: TLabel;
  44.     Label4: TLabel;
  45.     Label5: TLabel;
  46.     Image1: TImage;
  47.     CB2: TComboBox;
  48.     PB1: TPaintBox;
  49.     procedure FormCreate(Sender: TObject);
  50.     procedure PropButtonClick(Sender: TObject);
  51.     procedure CB1Click(Sender: TObject);
  52.     procedure E2Click(Sender: TObject);
  53.     procedure frSpeedButton1Click(Sender: TObject);
  54.     procedure frSpeedButton2Click(Sender: TObject);
  55.     procedure RB3Click(Sender: TObject);
  56.     procedure FormDeactivate(Sender: TObject);
  57.     procedure Label3Click(Sender: TObject);
  58.     procedure CollateCBClick(Sender: TObject);
  59.     procedure PB1Paint(Sender: TObject);
  60.     procedure CB1DrawItem(Sender: TObject; Index: Integer; ARect: TRect;
  61.       State: TOwnerDrawState; var Handled: Boolean);
  62.   private
  63.     { Private declarations }
  64.     OldIndex: Integer;
  65.     procedure Localize;
  66.   public
  67.     { Public declarations }
  68.   end;
  69.  
  70.  
  71. implementation
  72.  
  73. {$R *.xfm}
  74.  
  75. uses FR_Const, FR_Prntr, QPrinters, FR_Utils;
  76.  
  77.  
  78. procedure TfrPrintForm.Localize;
  79. begin
  80.   Caption := S53040;
  81.   GroupBox1.Caption := S53041;
  82.   PropButton.Caption := S53042;
  83.   GroupBox3.Caption := S53043;
  84.   GroupBox2.Caption := S53044;
  85.   RB1.Caption := S53045;
  86.   RB2.Caption := S53046;
  87.   RB3.Caption := S53047;
  88.   Label2.Caption := S53048;
  89.   Label4.Caption := S53049;
  90.   Label1.Caption := S53050;
  91.   Label3.Caption := S53051;
  92.   Label5.Caption := S53052;
  93.   Button1.Caption := SOk;
  94.   Button2.Caption := SCancel;
  95.  
  96.   CB2.Items.Add(S53053);
  97.   CB2.Items.Add(S53054);
  98.   CB2.Items.Add(S53055);
  99. end;
  100.  
  101. procedure TfrPrintForm.FormCreate(Sender: TObject);
  102. begin
  103.   CB1.Items.Assign(Printer.Printers);
  104.   CB1.ItemIndex := Prn.PrinterIndex;
  105.   OldIndex := Prn.PrinterIndex;
  106.   CollateCBClick(nil);
  107.   Localize;
  108.   CB2.ItemIndex := 0;
  109.   CB2.Left := Label5.Left + Label5.Width + 11;
  110. end;
  111.  
  112. procedure TfrPrintForm.FormDeactivate(Sender: TObject);
  113. begin
  114.   if ModalResult <> mrOk then
  115.     Prn.PrinterIndex := OldIndex;
  116. end;
  117.  
  118. procedure TfrPrintForm.CB1DrawItem(Sender: TObject; Index: Integer;
  119.   ARect: TRect; State: TOwnerDrawState; var Handled: Boolean);
  120. var
  121.   r: TRect;
  122. begin
  123.   r := ARect;
  124.   r.Right := r.Left + 18;
  125.   r.Bottom := r.Top + 16;
  126.   OffsetRect(r, 2, 0);
  127.   with CB1.Canvas do
  128.   begin
  129.     FillRect(ARect);
  130.     frDrawTransparent(CB1.Canvas, r.Left, r.Top, Image1.Picture.Bitmap);
  131. //    BrushCopy(r, Image1.Picture.Bitmap, Rect(0, 0, 18, 16), clOlive);
  132.     TextOut(ARect.Left + 24, ARect.Top + 1, CB1.Items[Index]);
  133.   end;
  134. end;
  135.  
  136. procedure TfrPrintForm.PropButtonClick(Sender: TObject);
  137. begin
  138.   Prn.PropertiesDlg;
  139. end;
  140.  
  141. procedure TfrPrintForm.CB1Click(Sender: TObject);
  142. begin
  143.   Prn.PrinterIndex := CB1.ItemIndex;
  144. end;
  145.  
  146. procedure TfrPrintForm.E2Click(Sender: TObject);
  147. begin
  148.   RB3.Checked := True;
  149. end;
  150.  
  151. procedure TfrPrintForm.frSpeedButton1Click(Sender: TObject);
  152. var
  153.   i: Integer;
  154. begin
  155.   i := StrToInt(E1.Text);
  156.   Inc(i);
  157.   E1.Text := IntToStr(i);
  158. end;
  159.  
  160. procedure TfrPrintForm.frSpeedButton2Click(Sender: TObject);
  161. var
  162.   i: Integer;
  163. begin
  164.   i := StrToInt(E1.Text);
  165.   Dec(i);
  166.   if i <= 0 then i := 1;
  167.   E1.Text := IntToStr(i);
  168. end;
  169.  
  170. procedure TfrPrintForm.RB3Click(Sender: TObject);
  171. begin
  172.   E2.SetFocus;
  173. end;
  174.  
  175. procedure TfrPrintForm.Label3Click(Sender: TObject);
  176. begin
  177.   CollateCB.Checked := not CollateCB.Checked;
  178. end;
  179.  
  180. procedure TfrPrintForm.CollateCBClick(Sender: TObject);
  181. begin
  182.   PB1Paint(nil);
  183. end;
  184.  
  185. procedure TfrPrintForm.PB1Paint(Sender: TObject);
  186. begin
  187.   with PB1.Canvas do
  188.   begin
  189.     Brush.Color := clBtnFace;
  190.     FillRect(Rect(0, 0, PB1.Width, PB1.Height));
  191.     if CollateCB.Checked then
  192.       Draw(8, 0, CollateImg.Picture.Bitmap) else
  193.       Draw(0, 8, NonCollateImg.Picture.Bitmap)
  194.   end;
  195. end;
  196.  
  197.  
  198. end.
  199.