home *** CD-ROM | disk | FTP | other *** search
/ PC Format Collection 48 / SENT14D.ISO / tech / delphi / disk14 / doc.pak / DBGRIDS.INT < prev    next >
Encoding:
Text File  |  1995-08-24  |  5.3 KB  |  146 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Delphi Visual Component Library                 }
  5. {                                                       }
  6. {       Copyright (c) 1995 Borland International        }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit DBGrids;
  11.  
  12. interface
  13.  
  14. uses SysUtils, WinTypes, WinProcs, Messages, Classes, Controls, Forms,
  15.   Graphics, Menus, StdCtrls, DB, DBTables, Grids, DBCtrls;
  16.  
  17. type
  18.   TCustomDBGrid = class;
  19.  
  20.   TGridDataLink = class(TDataLink)
  21.   protected
  22.     procedure ActiveChanged; override;
  23.     procedure DataSetChanged; override;
  24.     procedure DataSetScrolled(Distance: Integer); override;
  25.     procedure EditingChanged; override;
  26.     procedure LayoutChanged; override;
  27.     procedure RecordChanged(Field: TField); override;
  28.     procedure UpdateData; override;
  29.   public
  30.     constructor Create(AGrid: TCustomDBGrid);
  31.     destructor Destroy; override;
  32.     function AddMapping(const FieldName: string): Boolean;
  33.     procedure ClearMapping;
  34.     procedure Modified;
  35.     procedure Reset;
  36.     property DefaultFields: Boolean;
  37.     property FieldCount: Integer;
  38.     property Fields[I: Integer]: TField;
  39.   end;
  40.  
  41.   TDBGridOption = (dgEditing, dgAlwaysShowEditor, dgTitles, dgIndicator,
  42.     dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect,
  43.     dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit);
  44.   TDBGridOptions = set of TDBGridOption;
  45.   TDrawDataCellEvent = procedure (Sender: TObject; const Rect: TRect; Field: TField;
  46.     State: TGridDrawState) of object;
  47.  
  48.   TCustomDBGrid = class(TCustomGrid)
  49.   protected
  50.     FUpdateFields: Boolean;
  51.     FAcquireFocus: Boolean;
  52.     procedure LayoutChanged; virtual;
  53.     function CanEditAcceptKey(Key: Char): Boolean; override;
  54.     function CanEditModify: Boolean; override;
  55.     function GetEditLimit: Integer; override;
  56.     procedure ColumnMoved(FromIndex, ToIndex: Longint); override;
  57.     procedure ColEnter; dynamic;
  58.     procedure ColExit; dynamic;
  59.     procedure Scroll(Distance: Integer); virtual;
  60.     procedure ColWidthsChanged; override;
  61.     function HighlightCell(DataCol, DataRow: Integer; const Value: string;
  62.       AState: TGridDrawState): Boolean; virtual;
  63.     procedure DrawCell(ACol, ARow: Longint; ARect: TRect; AState: TGridDrawState); override;
  64.     function GetEditMask(ACol, ARow: Longint): string; override;
  65.     function GetEditText(ACol, ARow: Longint): string; override;
  66.     procedure SetEditText(ACol, ARow: Longint; const Value: string); override;
  67.     function GetColField(ACol: Integer): TField;
  68.     function GetFieldValue(ACol: Integer): string;
  69.     procedure DefineFieldMap; virtual;
  70.     procedure DrawDataCell(const Rect: TRect; Field: TField;
  71.       State: TGridDrawState); dynamic;
  72.     procedure SetColumnAttributes; virtual;
  73.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  74.     procedure KeyPress(var Key: Char); override;
  75.     procedure LinkActive(Value: Boolean); virtual;
  76.     procedure Loaded; override;
  77.     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
  78.       X, Y: Integer); override;
  79.     procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  80.     procedure TimedScroll(Direction: TGridScrollDirection); override;
  81.     procedure CreateWnd; override;
  82.     property DefaultDrawing: Boolean default True;
  83.     property DataSource: TDataSource;
  84.     property DataLink: TGridDataLink;
  85.     property Options: TDBGridOptions default [dgEditing, dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgConfirmDelete, dgCancelOnExit];
  86.     property ParentColor default False;
  87.     property ReadOnly: Boolean default False;
  88.     property TitleColor: TColor default clBtnFace;
  89.     property TitleFont: TFont;
  90.     property OnColEnter: TNotifyEvent;
  91.     property OnColExit: TNotifyEvent;
  92.     property OnDrawDataCell: TDrawDataCellEvent;
  93.   public
  94.     constructor Create(AOwner: TComponent); override;
  95.     destructor Destroy; override;
  96.     procedure DefaultDrawDataCell(const Rect: TRect; Field: TField; State: TGridDrawState);
  97.     property EditorMode;
  98.     property FieldCount: Integer;
  99.     property Fields[Index: Integer]: TField;
  100.     property SelectedField: TField;
  101.     property SelectedIndex: Integer;
  102.   end;
  103.  
  104.   TDBGrid = class(TCustomDBGrid)
  105.   public
  106.     property Canvas;
  107.   published
  108.     property Align;
  109.     property BorderStyle;
  110.     property Color;
  111.     property Ctl3D;
  112.     property DataSource;
  113.     property DefaultDrawing;
  114.     property DragCursor;
  115.     property DragMode;
  116.     property Enabled;
  117.     property FixedColor;
  118.     property Font;
  119.     property Options;
  120.     property ParentColor;
  121.     property ParentCtl3D;
  122.     property ParentFont;
  123.     property ParentShowHint;
  124.     property PopupMenu;
  125.     property ReadOnly;
  126.     property ShowHint;
  127.     property TabOrder;
  128.     property TabStop;
  129.     property TitleFont;
  130.     property Visible;
  131.     property OnColEnter;
  132.     property OnColExit;
  133.     property OnDrawDataCell;
  134.     property OnDblClick;
  135.     property OnDragDrop;
  136.     property OnDragOver;
  137.     property OnEndDrag;
  138.     property OnEnter;
  139.     property OnExit;
  140.     property OnKeyDown;
  141.     property OnKeyPress;
  142.     property OnKeyUp;
  143.   end;
  144.  
  145. implementation
  146.