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

  1.  
  2. {******************************************}
  3. {                                          }
  4. {   FastReport CLX v2.4 - DB components    }
  5. {              Field editor                }
  6. {                                          }
  7. { Copyright (c) 1998-2001 by Tzyganenko A. }
  8. {                                          }
  9. {******************************************}
  10.  
  11. unit FR_DBFldEditor;
  12.  
  13. interface
  14.  
  15. {$I FR.inc}
  16.  
  17. uses
  18.   Types, SysUtils, Classes, QGraphics, QControls, QForms, QDialogs,
  19.   QStdCtrls, DB;
  20.  
  21. type
  22.   TfrDBFieldsEditorForm = class(TForm)
  23.     FieldsL: TListBox;
  24.     AddFieldsB: TButton;
  25.     AddLookupB: TButton;
  26.     SelAllB: TButton;
  27.     DeleteB: TButton;
  28.     ExitB: TButton;
  29.     procedure FormShow(Sender: TObject);
  30.     procedure AddFieldsBClick(Sender: TObject);
  31.     procedure SelAllBClick(Sender: TObject);
  32.     procedure DeleteBClick(Sender: TObject);
  33.     procedure AddLookupBClick(Sender: TObject);
  34.     procedure FormCreate(Sender: TObject);
  35.   private
  36.     { Private declarations }
  37.     procedure FillList;
  38.     procedure Localize;
  39.   public
  40.     { Public declarations }
  41.     DataSet: TDataSet;
  42.     DisableLookups: Boolean;
  43.   end;
  44.  
  45.  
  46. implementation
  47.  
  48. uses FR_Const, FR_DBFldList, FR_DBNewLookup, FR_Utils;
  49.  
  50. {$R *.xfm}
  51.  
  52. procedure TfrDBFieldsEditorForm.FillList;
  53. var
  54.   i: Integer;
  55. begin
  56.   FieldsL.Items.Clear;
  57.   with DataSet do
  58.   for i := 0 to FieldCount - 1 do
  59.     FieldsL.Items.Add(Fields[i].FieldName);
  60. end;
  61.  
  62. procedure TfrDBFieldsEditorForm.FormShow(Sender: TObject);
  63. begin
  64.   Caption := DataSet.Name + ' ' + (SFields);
  65.   FillList;
  66.   AddLookupB.Enabled := not DisableLookups;
  67. end;
  68.  
  69. procedure TfrDBFieldsEditorForm.AddFieldsBClick(Sender: TObject);
  70. begin
  71.   try
  72.     DataSet.FieldDefs.Update;
  73.     with TfrDBFieldsListForm.Create(nil) do
  74.     begin
  75.       DataSet := Self.DataSet;
  76.       if ShowModal = mrOk then
  77.         FillList;
  78.       Free;
  79.     end;
  80.   finally;
  81.   end;
  82. end;
  83.  
  84. procedure TfrDBFieldsEditorForm.SelAllBClick(Sender: TObject);
  85. var
  86.   i: Integer;
  87. begin
  88.   for i := 0 to FieldsL.Items.Count - 1 do
  89.     FieldsL.Selected[i] := True;
  90. end;
  91.  
  92. procedure TfrDBFieldsEditorForm.DeleteBClick(Sender: TObject);
  93. var
  94.   i: Integer;
  95. begin
  96.   for i := 0 to FieldsL.Items.Count - 1 do
  97.     if FieldsL.Selected[i] then
  98.       DataSet.FindField(FieldsL.Items[i]).Free;
  99.   FillList;
  100. end;
  101.  
  102. procedure TfrDBFieldsEditorForm.AddLookupBClick(Sender: TObject);
  103. begin
  104.   with TfrDBLookupFieldForm.Create(nil) do
  105.   begin
  106.     Dataset := Self.Dataset;
  107.     if ShowModal = mrOk then
  108.       FillList;
  109.     Free;
  110.   end;
  111. end;
  112.  
  113. procedure TfrDBFieldsEditorForm.Localize;
  114. begin
  115.   AddFieldsB.Caption := S56040;
  116.   AddLookupB.Caption := S56041;
  117.   SelAllB.Caption := S56042;
  118.   DeleteB.Caption := S56043;
  119.   ExitB.Caption := S56044;
  120. end;
  121.  
  122. procedure TfrDBFieldsEditorForm.FormCreate(Sender: TObject);
  123. begin
  124.   Localize;
  125. end;
  126.  
  127. end.
  128.  
  129.