adefctrl.pas
来自「delphi编程控件」· PAS 代码 · 共 1,755 行 · 第 1/5 页
PAS
1,755 行
unit adefctrl;
(*
COPYRIGHT (c) RSD Software 1997 - 98
All Rights Reserved.
*)
interface
{$I aclver.inc}
uses Classes, SysUtils, Windows, Controls, Messages, Forms, Menus, Graphics,
ComCtrls, DB, DBTables, adbtempl, adbgrid, aimctrls, refer, stdctrls;
type
TCustomAutoDBDefControl = class(TAutoDBDefControl)
private
List : TList;
FColor : TColor;
FCtl3D : Boolean;
FCursor : TCursor;
FDragCursor : TCursor;
FDragMode : TDragMode;
FHint : String;
FFont : TFont;
FHeight : Integer;
FPopupMenu : TPopupMenu;
FShowHint : Boolean;
FWidth : Integer;
FReadOnly : Boolean;
FOnClick : TNotifyEvent;
FOnDblClick : TNotifyEvent;
FOnDragDrop : TDragDropEvent;
FOnDragOver : TDragOverEvent;
FOnEndDrag : TEndDragEvent;
FOnMouseDown : TMouseEvent;
FOnMouseMove : TMouseMoveEvent;
FOnMouseUp : TMouseEvent;
FOnStartDrag : TStartDragEvent;
FOnEnter : TNotifyEvent;
FOnExit : TNotifyEvent;
FOnKeyDown : TKeyEvent;
FOnKeyPress : TKeyPressEvent;
FOnKeyUp : TKeyEvent;
procedure SetColor(Value : TColor);
procedure SetCtl3D(Value : Boolean);
procedure SetCursor(Value : TCursor);
procedure SetDragCursor(Value : TCursor);
procedure SetDragMode(Value : TDragMode);
procedure SetHeight(Value : Integer);
procedure SetHint(Value : String);
procedure SetPopupMenu(Value : TPopupMenu);
procedure SetReadOnly(Value : Boolean);
procedure SetShowHint(Value : Boolean);
procedure SetWidth(Value : Integer);
procedure SetFont(Value : TFont);
procedure SetOnClick(Value : TNotifyEvent);
procedure SetOnDblClick(Value : TNotifyEvent);
procedure SetOnDragDrop(Value : TDragDropEvent);
procedure SetOnDragOver(Value : TDragOverEvent);
procedure SetOnEndDrag(Value : TEndDragEvent);
procedure SetOnMouseDown(Value : TMouseEvent);
procedure SetOnMouseMove(Value : TMouseMoveEvent);
procedure SetOnMouseUp(Value : TMouseEvent);
procedure SetOnStartDrag(Value : TStartDragEvent);
procedure SetOnEnter(Value : TNotifyEvent);
procedure SetOnKeyDown(Value : TKeyEvent);
procedure SetOnKeyPress(Value : TKeyPressEvent);
procedure SetOnKeyUp(Value : TKeyEvent);
protected
procedure SetControlProperties(AControl : TWinControl); virtual;
procedure OnDoKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);
procedure OnDoKeyPress(Sender: TObject; var Key: Char);
procedure OnDoExit(Sender: TObject);
procedure KeyDown(WinControl : TWinControl; var Key: Word; Shift: TShiftState); virtual;
procedure KeyPress(WinControl : TWinControl; var Key: Char); virtual;
procedure DoExit(WinControl : TWinControl); virtual;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure AddDBControlToList(AControl : TWinControl);
procedure DestroyControl(Value : TWinControl); override;
procedure DrawOnGridCanvas(ACanvas : TCanvas; AFont : TFont; ARect : TRect;
AAlignment : TAlignment; AField : TField; Selected : Boolean); override;
function GetParentType(WinControl : TWinControl) : TAutoDBDefParentType;
published
property Color : TColor read FColor write SetColor;
property Ctl3D : Boolean read FCtl3D write SetCtl3D;
property Cursor : TCursor read FCursor write SetCursor;
property DragCursor : TCursor read FDragCursor write SetDragCursor;
property DragMode : TDragMode read FDragMode write SetDragMode;
property Font : TFont read FFont write SetFont;
property Height : Integer read FHeight write SetHeight;
property Hint : String read FHint write SetHint;
property PopupMenu : TPopupMenu read FPopupMenu write SetPopupMenu;
property ReadOnly : Boolean read FReadOnly write SetReadOnly;
property ShowHint : Boolean read FShowHint write SetShowHint;
property Width : Integer read FWidth write SetWidth;
property OnClick: TNotifyEvent read FOnClick write SetOnClick;
property OnDblClick: TNotifyEvent read FOnDblClick write SetOnDblClick;
property OnDragDrop: TDragDropEvent read FOnDragDrop write SetOnDragDrop;
property OnDragOver: TDragOverEvent read FOnDragOver write SetOnDragOver;
property OnEndDrag: TEndDragEvent read FOnEndDrag write SetOnEndDrag;
property OnMouseDown: TMouseEvent read FOnMouseDown write SetOnMouseDown;
property OnMouseMove: TMouseMoveEvent read FOnMouseMove write SetOnMouseMove;
property OnMouseUp: TMouseEvent read FOnMouseUp write SetOnMouseUp;
property OnStartDrag: TStartDragEvent read FOnStartDrag write SetOnStartDrag;
property OnEnter: TNotifyEvent read FOnEnter write SetOnEnter;
property OnExit: TNotifyEvent read FOnExit write FOnExit;
property OnKeyDown: TKeyEvent read FOnKeyDown write SetOnKeyDown;
property OnKeyPress: TKeyPressEvent read FOnKeyPress write SetOnKeyPress;
property OnKeyUp: TKeyEvent read FOnKeyUp write SetOnKeyUp;
end;
TAutoDBDefMaskEdit = class(TCustomAutoDBDefControl)
private
FAutoSelect : Boolean;
FEditMask : String;
procedure SetAutoSelect(Value : Boolean);
procedure SetEditMask(Value : String);
protected
procedure SetControlProperties(AControl : TWinControl); override;
public
constructor Create(AOwner: TComponent); override;
function CreateDBControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateGridInplaceControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateFilterControl(AParent : TWinControl; AField : TField) : TWinControl; override;
function CreateLocateControl(AParent : TWinControl; AField : TField;
ACaseInsensitive : Boolean) : TWinControl; override;
function GetFilterControlValue(AControl : TWinControl) : Variant; override;
procedure SetFilterControlValue(AControl : TWinControl; Value : Variant); override;
published
property AutoSelect : Boolean read FAutoSelect write SetAutoSelect;
property EditMask : String read FEditMask write SetEditMask;
end;
TAutoDBDefBtnEdit = class(TCustomAutoDBDefControl)
private
FAutoSelect : Boolean;
FBtnTabStop : Boolean;
FEditMask : String;
FGlyph : TBitmap;
FNumGlyphs : Integer;
FOnBtnClick : TNotifyEvent;
procedure SetAutoSelect(Value : Boolean);
procedure SetBtnTabStop(Value : Boolean);
procedure SetEditMask(Value : String);
procedure SetGlyph(Value : TBitmap);
procedure SetNumGlyphs(Value : Integer);
procedure SetOnBtnClick(Value : TNotifyEvent);
protected
procedure SetControlProperties(AControl : TWinControl); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function CreateDBControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateGridInplaceControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateFilterControl(AParent : TWinControl; AField : TField) : TWinControl; override;
function CreateLocateControl(AParent : TWinControl; AField : TField;
ACaseInsensitive : Boolean) : TWinControl; override;
function GetFilterControlValue(AControl : TWinControl) : Variant; override;
procedure SetFilterControlValue(AControl : TWinControl; Value : Variant); override;
published
property AutoSelect : Boolean read FAutoSelect write SetAutoSelect;
property BtnTabStop : Boolean read FBtnTabStop write SetBtnTabStop;
property EditMask : String read FEditMask write SetEditMask;
property Glyph : TBitmap read FGlyph write SetGlyph;
property NumGlyphs : Integer read FNumGlyphs write SetNumGlyphs;
property OnBtnClick : TNotifyEvent read FOnBtnClick write SetOnBtnClick;
end;
TAutoDBDefMemo = class(TCustomAutoDBDefControl)
private
FScrollBars: TScrollStyle;
procedure SetScrollBars(Value : TScrollStyle);
protected
procedure SetControlProperties(AControl : TWinControl); override;
public
constructor Create(AOwner: TComponent); override;
function CreateDBControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateGridInplaceControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function UseMaxGridHeight : Boolean; override;
procedure DrawOnGridCanvas(ACanvas : TCanvas; AFont : TFont; ARect : TRect;
AAlignment : TAlignment; AField : TField; Selected : Boolean); override;
published
property ScrollBars : TScrollStyle read FScrollBars write SetScrollBars;
end;
TAutoDBDefImage = class(TCustomAutoDBDefControl)
public
constructor Create(AOwner: TComponent); override;
function CreateDBControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function UseMaxGridHeight : Boolean; override;
procedure DrawOnGridCanvas(ACanvas : TCanvas; AFont : TFont; ARect : TRect;
AAlignment : TAlignment; AField : TField; Selected : Boolean); override;
end;
TCustomAutoDBDefComboBox = class(TCustomAutoDBDefControl)
private
FItems : TStrings;
FDropDownCount : Integer;
FSorted : Boolean;
FStyle : TComboBoxStyle;
procedure SetDropDownCount(Value : Integer);
procedure SetSorted(Value : Boolean);
procedure SetStyle(Value : TComboBoxStyle);
procedure SetItems(Value : TStrings);
protected
procedure SetControlProperties(AControl : TWinControl); override;
property DropDownCount : Integer read FDropDownCount write SetDropDownCount;
property Sorted : Boolean read FSorted write SetSorted;
property Style : TComboBoxStyle read FStyle write SetStyle;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function CreateGridInplaceControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateLocateControl(AParent : TWinControl; AField : TField;
ACaseInsensitive : Boolean) : TWinControl; override;
end;
TAutoDBDefListBox = class(TCustomAutoDBDefComboBox)
private
public
constructor Create(AOwner: TComponent); override;
function CreateDBControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateFilterControl(AParent : TWinControl; AField : TField) : TWinControl; override;
function GetFilterControlValue(AControl : TWinControl) : Variant; override;
procedure SetFilterControlValue(AControl : TWinControl; Value : Variant); override;
published
property Items : TStrings read FItems write SetItems;
property DropDownCount;
property Sorted;
end;
TAutoDBDefComboBox = class(TCustomAutoDBDefComboBox)
public
constructor Create(AOwner: TComponent); override;
function CreateDBControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateFilterControl(AParent : TWinControl; AField : TField) : TWinControl; override;
function GetFilterControlValue(AControl : TWinControl) : Variant; override;
procedure SetFilterControlValue(AControl : TWinControl; Value : Variant); override;
published
property Items : TStrings read FItems write SetItems;
property DropDownCount;
property Sorted;
property Style;
end;
TAutoDBDefCheckBox = class(TCustomAutoDBDefControl)
private
FValueChecked : String;
FValueUnchecked : String;
protected
procedure SetControlProperties(AControl : TWinControl); override;
public
constructor Create(AOwner: TComponent); override;
function CreateDBControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateGridInplaceControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateFilterControl(AParent : TWinControl; AField : TField) : TWinControl; override;
function GetFilterControlValue(AControl : TWinControl) : Variant; override;
procedure SetFilterControlValue(AControl : TWinControl; Value : Variant); override;
procedure DrawOnGridCanvas(ACanvas : TCanvas; AFont : TFont; ARect : TRect;
AAlignment : TAlignment; AField : TField; Selected : Boolean); override;
published
property ValueChecked : String read FValueChecked write FValueChecked;
property ValueUnchecked : String read FValueUnchecked write FValueUnchecked;
end;
TAutoDBDefRadioGroup = class(TCustomAutoDBDefControl)
private
FCaption : String;
FColumns : Integer;
FItems : TStrings;
FValues : TStrings;
procedure SetCaption(Value : String);
procedure SetColumns(Value : Integer);
procedure SetItems(Value : TStrings);
procedure SetValues(Value : TStrings);
protected
procedure SetControlProperties(AControl : TWinControl); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
function CreateDBControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateLocateControl(AParent : TWinControl; AField : TField;
ACaseInsensitive : Boolean) : TWinControl; override;
function CreateGridInplaceControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateFilterControl(AParent : TWinControl; AField : TField) : TWinControl; override;
function GetFilterControlValue(AControl : TWinControl) : Variant; override;
procedure SetFilterControlValue(AControl : TWinControl; Value : Variant); override;
procedure DrawOnGridCanvas(ACanvas : TCanvas; AFont : TFont; ARect : TRect;
AAlignment : TAlignment; AField : TField; Selected : Boolean); override;
published
property Caption : String read FCaption write SetCaption;
property Columns : Integer read FColumns write SetColumns;
property Items : TStrings read FItems write SetItems;
property Values : TStrings read FValues write SetValues;
end;
TCustomAutoDBDefLookup = class(TCustomAutoDBDefControl)
private
FListLink : TDataLink;
FKeyFieldName: String;
FListFieldName : String;
FListFieldIndex : Integer;
FDropDownRows : Integer;
FLookupDataSource : TDataSource;
function GetListSource: TDataSource;
procedure SetDropDownRows(Value : Integer);
procedure SetKeyFieldName(const Value: String);
procedure SetListFieldIndex(Value : Integer);
procedure SetListFieldName(const Value: String);
procedure SetListSource(Value: TDataSource);
protected
procedure SetControlProperties(AControl : TWinControl); override;
public
constructor Create(AOwner : TComponent); override;
destructor Destroy; override;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
function CreateGridInplaceControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateLocateControl(AParent : TWinControl; AField : TField;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?