home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 2000 October / tst.iso / programs / borland / RUNIMAGE / DELPHI40 / DOC / DBLOOKUP.INT < prev    next >
Encoding:
Text File  |  1998-06-17  |  6.1 KB  |  197 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Visual Component Library         }
  5. {                                                       }
  6. {       Copyright (c) 1995,98 Inprise Corporation       }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit DBLookup;
  11.  
  12. {$R-}
  13.  
  14. interface
  15.  
  16. uses Windows, Classes, StdCtrls, DB, Controls, Messages, SysUtils,
  17.   Forms, Graphics, Menus, Buttons, DBGrids, DBTables, Grids, DBCtrls;
  18.  
  19. type
  20.  
  21. { TDBLookupCombo }
  22.  
  23.   TPopupGrid = class;
  24.  
  25.   TDBLookupComboStyle = (csDropDown, csDropDownList);
  26.   TDBLookupListOption = (loColLines, loRowLines, loTitles);
  27.   TDBLookupListOptions = set of TDBLookupListOption;
  28.  
  29.   TDBLookupCombo = class(TCustomEdit)
  30.   protected
  31.     procedure Notification(AComponent: TComponent;
  32.       Operation: TOperation); override;
  33.     procedure Change; override;
  34.     procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
  35.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  36.     procedure KeyPress(var Key: Char); override;
  37.     procedure CreateParams(var Params: TCreateParams); override;
  38.     procedure CreateWnd; override;
  39.     procedure GridClick (Sender: TObject);
  40.     procedure Loaded; override;
  41.   public
  42.     constructor Create(AOwner: TComponent); override;
  43.     destructor Destroy; override;
  44.     procedure DropDown; dynamic;
  45.     procedure CloseUp; dynamic;
  46.     property Value: string;
  47.     property DisplayValue: string;
  48.   published
  49.     property DataField: string;
  50.     property DataSource: TDataSource;
  51.     property LookupSource: TDataSource;
  52.     property LookupDisplay: string;
  53.     property LookupField: string;
  54.     property Options: TDBLookupListOptions default [];
  55.     property Style: TDBLookupComboStyle default csDropDown;
  56.     property Anchors;
  57.     property AutoSelect;
  58.     property Color;
  59.     property Constraints;
  60.     property Ctl3D;
  61.     property DragCursor;
  62.     property DragMode;
  63.     property DropDownCount: Integer default 8;
  64.     property DropDownWidth: Integer default 0;
  65.     property Enabled;
  66.     property Font;
  67.     property ImeMode;
  68.     property ImeName;
  69.     property MaxLength;
  70.     property ParentColor;
  71.     property ParentCtl3D;
  72.     property ParentFont;
  73.     property ParentShowHint;
  74.     property PopupMenu;
  75.     property ReadOnly: Boolean default False;
  76.     property ShowHint;
  77.     property TabOrder;
  78.     property TabStop;
  79.     property Visible;
  80.     property OnChange;
  81.     property OnClick;
  82.     property OnDblClick;
  83.     property OnDragDrop;
  84.     property OnDragOver;
  85.     property OnDropDown: TNotifyEvent;
  86.     property OnEndDrag;
  87.     property OnEnter;
  88.     property OnExit;
  89.     property OnKeyDown;
  90.     property OnKeyPress;
  91.     property OnKeyUp;
  92.     property OnMouseDown;
  93.     property OnMouseMove;
  94.     property OnMouseUp;
  95.     property OnStartDrag;
  96.   end;
  97.  
  98. { TDBLookupList }
  99.  
  100.   TDBLookupList = class(TCustomDBGrid)
  101.   protected
  102.     function HighlightCell(DataCol, DataRow: Integer; const Value: string;
  103.       AState: TGridDrawState): Boolean; override;
  104.     function CanGridAcceptKey(Key: Word; Shift: TShiftState): Boolean; override;
  105.     procedure DefineFieldMap; override;
  106.     procedure SetColumnAttributes; override;
  107.     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
  108.       X, Y: Integer); override;
  109.     procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
  110.     procedure MouseUp(Button: TMouseButton; Shift: TShiftState;
  111.       X, Y: Integer); override;
  112.     function CanEdit: Boolean; virtual;
  113.     procedure InitFields(ShowError: Boolean);
  114.     procedure CreateWnd; override;
  115.     procedure KeyDown(var Key: Word; Shift: TShiftState); override;
  116.     procedure KeyPress(var Key: Char); override;
  117.     procedure LinkActive(Value: Boolean); override;
  118.     procedure Paint; override;
  119.     procedure Scroll(Distance: Integer); override;
  120.     procedure ListClick; dynamic;
  121.     procedure Loaded; override;
  122.     procedure Notification(AComponent: TComponent;
  123.       Operation: TOperation); override;
  124.   public
  125.     constructor Create(AOwner: TComponent); override;
  126.     destructor Destroy; override;
  127.     property Value: string;
  128.     property DisplayValue: string;
  129.   published
  130.     property DataField: string;
  131.     property DataSource: TDataSource;
  132.     property LookupSource: TDataSource;
  133.     property LookupDisplay: string;
  134.     property LookupField: string;
  135.     property Options: TDBLookupListOptions default [];
  136.     property OnClick: TNotifyEvent;
  137.     property ReadOnly: Boolean default False;
  138.     property Align;
  139.     property Anchors;
  140.     property BorderStyle;
  141.     property Color;
  142.     property Constraints;
  143.     property Ctl3D;
  144.     property DragCursor;
  145.     property DragMode;
  146.     property Enabled;
  147.     property Font;
  148.     property ImeMode;
  149.     property ImeName;
  150.     property ParentColor;
  151.     property ParentCtl3D;
  152.     property ParentFont;
  153.     property ParentShowHint;
  154.     property PopupMenu;
  155.     property ShowHint;
  156.     property TabOrder;
  157.     property TabStop;
  158.     property Visible;
  159.     property OnDblClick;
  160.     property OnDragDrop;
  161.     property OnDragOver;
  162.     property OnEndDrag;
  163.     property OnEnter;
  164.     property OnExit;
  165.     property OnKeyDown;
  166.     property OnKeyPress;
  167.     property OnKeyUp;
  168.     property OnStartDrag;
  169.   end;
  170.  
  171. { TPopupGrid }
  172.  
  173.   TPopupGrid = class(TDBLookupList)
  174.   protected
  175.     procedure CreateParams(var Params: TCreateParams); override;
  176.     procedure CreateWnd; override;
  177.     procedure WMLButtonUp(var Message: TWMLButtonUp); message WM_LBUTTONUP;
  178.     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
  179.       X, Y: Integer); override;
  180.     function CanEdit: Boolean; override;
  181.     procedure LinkActive(Value: Boolean); override;
  182.   public
  183.     property RowCount;
  184.     constructor Create(AOwner: TComponent); override;
  185.   end;
  186.  
  187. { TComboButton }
  188.  
  189.   TComboButton = class(TSpeedButton)
  190.   protected
  191.     procedure MouseMove(Shift: TShiftState; X, Y: Integer); override;
  192.     procedure MouseDown(Button: TMouseButton; Shift: TShiftState;
  193.       X, Y: Integer); override;
  194.   end;
  195.  
  196. implementation
  197.