home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 March / Chip_2002-03_cd1.bin / zkuste / delphi / kompon / d5 / CSDBPACK.ZIP / CSDBBrowse.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2001-12-21  |  5.9 KB  |  229 lines

  1. unit CSDBBrowse;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Classes, Graphics, DBBrowse, db;
  7.  
  8. type
  9.   TMyParam = class(TObject)
  10.     Tablename: String;        // table name to use (M)
  11.     WhereSQL:String;          // any sql WHERE clause (O)
  12.     MultipleSelect:Boolean;   // specify if user can select multiple rows (O) default FALSE
  13.  
  14.     Key : TStringList;        // the key fields to return (M)
  15.     TitleStr: TStringList;    // column title of the grid (O)
  16.                               // separate column name with | (pipe)
  17.                               // uses DisplayToUse as index
  18.  
  19.     IndexName: TStringList;   // sorting name (M)
  20.     IndexStr: TStringList;    // for use with ORDER BY clause, should contain actual field names
  21.                               // field names w/ spaces should be enclosed in '[]' (M)
  22.  
  23.     IndexToUse: Byte;         // select which ORDER BY to use in IndexStr (O) default 0
  24.  
  25.     DisplayName: TStringList; // name of Display for field lists. (M)
  26.     DisplayStr: TStringList;  // list of field names to list in the browse window (M)
  27.     DisplayToUse: Byte;       // select which Display to use (O) default 0
  28.  
  29.     ResultStr: TStringList;   // selected records key field value  will be returned here
  30.  
  31.     public
  32.       procedure Clear;
  33.       Constructor Create;
  34.       Destructor Destroy; override;
  35.   end;
  36.  
  37.   TGridColor = class(TPersistent)
  38.   private
  39.     FStripeColor1: TColor;
  40.     FStripeColor2: TColor;
  41.     FFontColor: TColor;
  42.     FBkColor  : TColor;
  43.     FSFontColor: TColor;
  44.     FSBkColor  : TColor;
  45.     FSHLFontColor:TColor;
  46.     FSHLBkColor  :TColor;
  47.     Constructor create;
  48.   public
  49.     Destructor destroy; override;
  50.   published
  51.     property StripeColor1: TColor read FStripeColor1 write FStripeColor1;
  52.     property StripeColor2: TColor read FStripeColor2 write FStripeColor2;
  53.  
  54.     property FontColor: TColor read FFontColor write FFontColor;
  55.     property BkColor  : TColor read FBkColor write FBkColor;
  56.  
  57.     property SelectedFontColor: TColor read FSFontColor write FSFontColor;
  58.     property SelectedBkColor  : TColor read FSBkColor write FSBkColor;
  59.  
  60.     property SelectedHLFontColor:TColor read FSHLFontColor write FSHLFontColor;
  61.     property SelectedHLBkColor  :TColor read FSHLBkColor write FSHLBKColor;
  62.   end;
  63.  
  64.   TCSDBBrowse = class(TComponent)
  65.   private
  66.     FDataSource: TDataSource;
  67.     FColorSet:TGridColor;
  68.     { Private declarations }
  69.     procedure SetColorSet(Value:TGridColor);
  70.   protected
  71.     { Protected declarations }
  72.   public
  73.     Param:TMyParam;
  74.     { Public declarations }
  75.     Constructor Create (AOwner: TComponent); override;
  76.     Destructor Destroy; override;
  77.     procedure Execute;
  78.   published
  79.     property DataSource:TDataSource read FDataSource write FDataSource;
  80.     property ColorSet:TGridColor read FColorSet write SetColorSet;
  81.     { Published declarations }
  82.   end;
  83.  
  84. procedure Register;
  85.  
  86. implementation
  87.  
  88. Constructor TCSDBBrowse.Create(AOwner: TComponent);
  89. Begin
  90.   Inherited Create (AOwner);
  91.  
  92.   Param:=TMyParam.Create;
  93.   FColorSet:=TGridColor.Create;
  94. End;
  95.  
  96. Destructor TCSDBBrowse.Destroy;
  97. Begin
  98.   Param.Free;
  99.   FColorSet.Destroy;
  100.   Inherited Destroy;
  101. End;
  102.  
  103. procedure TCSDBBrowse.SetColorSet(Value:TGridColor);
  104. begin
  105.   FColorSet:=Value;
  106. end;
  107.  
  108. Procedure TCSDBBrowse.Execute;
  109. var
  110.  csBrowse:TfrmDBBrowse;
  111. begin
  112.  
  113.   try
  114.     csBrowse := Tfrmdbbrowse.Create(self);
  115.     csBrowse.dbgBrowse.DataSource:=FDataSource;
  116.  
  117.     csBrowse.Param.Key.Assign(Param.Key);
  118.     csBrowse.Param.TitleStr.Assign(Param.TitleStr);
  119.     csBrowse.Param.IndexName.Assign(Param.IndexName);
  120.     csBrowse.Param.IndexStr.Assign(Param.IndexStr);
  121.     csBrowse.Param.DisplayName.Assign(Param.DisplayName);
  122.     csBrowse.Param.DisplayStr.Assign(Param.DisplayStr);
  123.     csBrowse.Param.MultipleSelect:=Param.MultipleSelect;
  124.     csBrowse.Param.TableName:=Param.TableName;
  125.     csBrowse.Param.WhereSQL:=Param.WhereSQL;
  126.     csBrowse.Param.IndexToUse:=Param.IndexToUse;
  127.     csBrowse.Param.DisplayTouse:=Param.DisplayToUse;
  128.  
  129.     csBrowse.StripeColor1:=FColorSet.FStripeColor1;
  130.     csBrowse.StripeColor2:=FColorSet.FStripeColor2;
  131.     csBrowse.FontColor:=FColorSet.FFontColor;
  132.     csBrowse.BkColor:=FColorSet.FBkColor;
  133.     csBrowse.SFontColor:=FColorSet.FSFontColor;
  134.     csBrowse.SBkColor:=FColorSet.FSBkColor;
  135.     csBrowse.SHLFontColor:=FColorSet.FSHLFontColor;
  136.     csBrowse.SHLBkColor:=FColorSet.FSHLBkColor;
  137.  
  138.     if csBrowse.VerifyOK then begin
  139.        try
  140.          csBrowse.ShowModal;
  141.          Param.ResultStr.Assign(csBrowse.Param.ResultStr);
  142.        except
  143.        end;
  144.     end;
  145.   finally
  146.      csBrowse.Free;
  147.   end;
  148.  
  149. end;
  150.  
  151. constructor TMyParam.Create;
  152. begin
  153.   inherited Create;
  154.  
  155.   IndexToUse:=0;
  156.   DisplayToUse:=0;
  157.   MultipleSelect:=False;
  158.   Key:=TStringList.Create;
  159.   TitleStr:=TStringList.Create;
  160.   IndexStr:=TStringList.Create;
  161.   DisplayStr:=TStringList.Create;
  162.   ResultStr:=TStringList.Create;
  163.   IndexName:=TStringList.Create;
  164.   DisplayName:=TStringList.Create;
  165.   Tablename:='';
  166.   WhereSQL:='';
  167.  
  168. end;
  169.  
  170. destructor TMyParam.Destroy;
  171. begin
  172.   Key.Free;
  173.   TitleStr.Free;
  174.   IndexStr.Free;
  175.   DisplayStr.Free;
  176.   ResultStr.Free;
  177.   IndexName.Free;
  178.   DisplayName.Free;
  179.  
  180.   inherited Destroy;
  181. end;
  182.  
  183. procedure TMyParam.Clear;
  184. begin
  185.     IndexToUse:=0;
  186.     DisplayToUse:=0;
  187.     MultipleSelect:=False;
  188.     Tablename:='';
  189.     WhereSQL:='';
  190.  
  191.     Key.Clear;
  192.     TitleStr.Clear;
  193.     IndexStr.Clear;
  194.     DisplayStr.Clear;
  195.     ResultStr.Clear;
  196.     IndexName.Clear;
  197.     DisplayName.Clear;
  198. end;
  199.  
  200. constructor TGridColor.Create;
  201. begin
  202.   StripeColor1:=$F4BDC7;
  203.   StripeColor2:=$F0F0F0;
  204.  
  205.   FontColor:=clWhite;
  206.   BkColor:=clHighLight;
  207.  
  208.   SelectedFontColor:=clRed;
  209.   SelectedBkColor:=clBlue+cldkGray;
  210.  
  211.   SelectedHLFontColor:=clWhite;
  212.   SelectedHLBkColor:=clOlive;
  213.   inherited create;
  214. end;
  215.  
  216. destructor TGridColor.Destroy;
  217. begin
  218.   inherited destroy;
  219. end;
  220.  
  221. procedure Register;
  222. begin
  223.   RegisterComponents('CS', [TCSDBBrowse]);
  224. end;
  225.  
  226. end.
  227.  
  228.  
  229.