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

  1.  
  2. {******************************************}
  3. {                                          }
  4. {           FastReport CLX v2.4            }
  5. {     Select Band datasource dialog        }
  6. {                                          }
  7. { Copyright (c) 1998-2001 by Tzyganenko A. }
  8. {                                          }
  9. {******************************************}
  10.  
  11. unit FR_BndEd;
  12.  
  13. interface
  14.  
  15. {$I FR.inc}
  16.  
  17. uses
  18.   SysUtils, Types, Classes, QGraphics, QControls, QForms, QDialogs,
  19.   QExtCtrls, QStdCtrls, FR_Class;
  20.  
  21. type
  22.   TfrBandEditorForm = class(TfrObjEditorForm)
  23.     Button1: TButton;
  24.     Button2: TButton;
  25.     GB1: TGroupBox;
  26.     Label2: TLabel;
  27.     Edit1: TEdit;
  28.     LB1: TListBox;
  29.     Image1: TImage;
  30.     procedure FormCreate(Sender: TObject);
  31.     procedure LB1Click(Sender: TObject);
  32.     procedure LB1DblClick(Sender: TObject);
  33.     procedure LB1DrawItem(Sender: TObject; Index: Integer; ARect: TRect;
  34.       State: TOwnerDrawState; var Handled: Boolean);
  35.   private
  36.     { Private declarations }
  37.     procedure FillCombo;
  38.     procedure Localize;
  39.   public
  40.     { Public declarations }
  41.     function ShowEditor(View: TfrView): TModalResult; override;
  42.   end;
  43.  
  44.  
  45. implementation
  46.  
  47. {$R *.xfm}
  48.  
  49. uses FR_DSet, FR_Const, FR_Utils, FR_Ctrls;
  50.  
  51. function TfrBandEditorForm.ShowEditor(View: TfrView): TModalResult;
  52. var
  53.   i: Integer;
  54.   s: String;
  55. begin
  56.   FillCombo;
  57.   s := (View as TfrBandView).DataSet;
  58.   if (s <> '') and (s[1] in ['1'..'9']) then
  59.   begin
  60.     i := 1;
  61.     Edit1.Text := s;
  62.   end
  63.   else
  64.   begin
  65.     i := LB1.Items.IndexOf(CurReport.Dictionary.AliasName[s]);
  66.     if i = -1 then
  67.       i := LB1.Items.IndexOf((SNotAssigned));
  68.   end;
  69.   LB1.ItemIndex := i;
  70.   LB1Click(nil);
  71.   Result := ShowModal;
  72.   if Result = mrOk then
  73.   begin
  74.     frDesigner.BeforeChange;
  75.     if LB1.ItemIndex = 1 then
  76.       (View as TfrBandView).DataSet := Edit1.Text else
  77.       (View as TfrBandView).DataSet :=
  78.         CurReport.Dictionary.RealDataSourceName[LB1.Items[LB1.ItemIndex]];
  79.   end;
  80. end;
  81.  
  82. procedure TfrBandEditorForm.FillCombo;
  83. begin
  84.   CurReport.Dictionary.GetBandDatasourceList(LB1.Items);
  85.   LB1.Items.Insert(0, (SVirtualDataset));
  86.   LB1.Items.Insert(0, (SNotAssigned));
  87. end;
  88.  
  89. procedure TfrBandEditorForm.Localize;
  90. begin
  91.   Caption := S53480;
  92.   Label2.Caption := S53482;
  93.   Button1.Caption := (SOk);
  94.   Button2.Caption := (SCancel);
  95. end;
  96.  
  97. procedure TfrBandEditorForm.FormCreate(Sender: TObject);
  98. begin
  99.   Localize;
  100. end;
  101.  
  102. procedure TfrBandEditorForm.LB1Click(Sender: TObject);
  103. begin
  104.   frEnableControls([Label2, Edit1], LB1.ItemIndex = 1);
  105. end;
  106.  
  107. procedure TfrBandEditorForm.LB1DrawItem(Sender: TObject; Index: Integer;
  108.   ARect: TRect; State: TOwnerDrawState; var Handled: Boolean);
  109. var
  110.   r: TRect;
  111. begin
  112.   r := ARect;
  113.   r.Right := r.Left + 18;
  114.   r.Bottom := r.Top + 16;
  115.   OffsetRect(r, 2, 0);
  116.   with TListBox(Sender) do
  117.   begin
  118.     Canvas.FillRect(ARect);
  119.     if Index <> 0 then
  120.       frDrawTransparent(Canvas, r.Left, r.Top, Image1.Picture.Bitmap);
  121.     Canvas.TextOut(ARect.Left + 20, ARect.Top + 1, Items[Index]);
  122.   end;
  123. end;
  124.  
  125. procedure TfrBandEditorForm.LB1DblClick(Sender: TObject);
  126. begin
  127.   ModalResult := mrOk;
  128. end;
  129.  
  130.  
  131. end.
  132.  
  133.