adefctrl.pas
来自「delphi编程控件」· PAS 代码 · 共 1,755 行 · 第 1/5 页
PAS
1,755 行
ACaseInsensitive : Boolean) : TWinControl; override;
procedure DrawOnGridCanvas(ACanvas : TCanvas; AFont : TFont; ARect : TRect;
AAlignment : TAlignment; AField : TField; Selected : Boolean); override;
published
property DropDownRows : Integer read FDropDownRows write SetDropDownRows;
property KeyField: String read FKeyFieldName write SetKeyFieldName;
property ListField: String read FListFieldName write SetListFieldName;
property ListFieldIndex: Integer read FListFieldIndex write SetListFieldIndex default 0;
property ListSource: TDataSource read GetListSource write SetListSource;
end;
TAutoDBDefLookupListBox = class(TCustomAutoDBDefLookup)
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;
end;
TAutoDBDefLookupComboBox = class(TCustomAutoDBDefLookup)
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;
end;
TAutoDBDefReference = class(TCustomAutoDBDefControl)
private
FAlignText : TAlignReferenceText;
FGridLayout : TAutoGridLayout;
FEditColor : TColor;
FEditWidth : Integer;
FFont : TFont;
FFontText : TFont;
FGlyph : TBitmap;
FAssignFieldName : String;
FKeyFieldName : String;
FLabelColor : TColor;
FNumGlyphs : Integer;
FPatternText : String;
FUseQuery : Boolean;
FReferencePanel : TReferencePanel;
FTableName : TFileName;
FTextOnError : String;
FVisibleText : Boolean;
FWinHeight : Integer;
FWinWidth : Integer;
FOnChange : TNotifyEvent;
FReferencePanelAlign : TReferenceAlign;
procedure SetAlignText(Value : TAlignReferenceText);
procedure SetAssignField(Value : String);
procedure SetEditColor(Value : TColor);
procedure SetEditWidth(Value : Integer);
procedure SetFont(Value : TFont);
procedure SetFontText(Value : TFont);
procedure SetGlyph(Value : TBitmap);
procedure SetGridLayout(Value : TAutoGridLayout);
procedure SetKeyField(Value : String);
procedure SetLabelColor(Value : TColor);
procedure SetNumGlyphs(Value : Integer);
procedure SetPatternText(value : String);
procedure SetReferencePanel(Value : TReferencePanel);
procedure SetTableName(Value : TFileName);
procedure SetTextOnError(Value : String);
procedure SetVisibleText(Value : Boolean);
procedure SetWinHeight(Value : Integer);
procedure SetWinWidth(Value : Integer);
procedure SetUseQuery(Value : Boolean);
procedure SetOnChange(Value : TNotifyEvent);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure SetControlProperties(AControl : TWinControl); override;
function CreateDBControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateGridInplaceControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateLocateControl(AParent : TWinControl; AField : TField;
ACaseInsensitive : Boolean) : 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 AlignText : TAlignReferenceText read FAlignText write SetAlignText;
property AssignField : String read FAssignFieldName write SetAssignField;
{VisibleText should be declare before EditWidth}
property VisibleText : Boolean read FVisibleText write SetVisibleText;
property EditColor : TColor read FEditColor write SetEditColor;
property EditWidth : Integer read FEditWidth write SetEditWidth;
property Font : TFont read FFont write SetFont;
property FontText : TFont read FFontText write SetFontText;
property GridLayout : TAutoGridLayout read FGridLayout write SetGridLayout;
property Glyph : TBitmap read FGlyph write SetGlyph;
property KeyField : String read FKeyFieldName write SetKeyField;
property LabelColor : TColor read FLabelColor write SetLabelColor;
property NumGlyphs : Integer read FNumGlyphs write SetNumGlyphs;
property PatternText : String read FPatternText write SetPatternText;
property ReferencePanel : TReferencePanel read FReferencePanel
write SetReferencePanel;
property ReferencePanelAlign : TReferenceAlign read FReferencePanelAlign
write FReferencePanelAlign;
property TableName : TFileName read FTableName write SetTableName;
property TextOnError : String read FTextOnError write SetTextOnError;
property UseQuery : Boolean read FUseQuery write SetUseQuery;
property WinHeight : Integer read FWinHeight write SetWinHeight;
property WinWidth : Integer read FWinWidth write SetWinWidth;
property OnChange : TNotifyEvent read FOnChange write SetOnChange;
end;
TAutoDBDefDate = class(TCustomAutoDBDefControl)
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 CreateLocateControl(AParent : TWinControl; AField : TField;
ACaseInsensitive : Boolean) : TWinControl; override;
function CreateFilterControl(AParent : TWinControl; AField : TField) : TWinControl; override;
function GetFilterControlValue(AControl : TWinControl) : Variant; override;
procedure SetFilterControlValue(AControl : TWinControl; Value : Variant); override;
end;
{
TAutoDBDefDateTime = class(TCustomAutoDBDefControl)
public
constructor Create(AOwner: TComponent); override;
end;
}
TAutoDBDefTime = class(TCustomAutoDBDefControl)
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 CreateLocateControl(AParent : TWinControl; AField : TField;
ACaseInsensitive : Boolean) : TWinControl; override;
function CreateFilterControl(AParent : TWinControl; AField : TField) : TWinControl; override;
function GetFilterControlValue(AControl : TWinControl) : Variant; override;
procedure SetFilterControlValue(AControl : TWinControl; Value : Variant); override;
end;
TAutoDBDefSpinImage = class(TCustomAutoDBDefControl)
private
FAutoSize : Boolean;
FDefaultImages : Boolean;
FBorderStyle: TBorderStyle;
FImageList : TImageList;
FImageHAlign : TAutoHSpinImageAlign;
FImageVAlign : TAutoVSpinImageAlign;
FItems : TAutoSpinImageItems;
FOnChange : TASIChange;
FUseDblClick : Boolean;
FStretch : Boolean;
FUpDownAlign : TAutoUpDownAlign;
FUpDownOrientation: TUDOrientation;
FUpDownWidth : Integer;
procedure SetAutoSize(Value : Boolean);
procedure SetBorderStyle(Value : TBorderStyle);
procedure SetDefaultImages(Value : Boolean);
procedure SetImageList(Value : TImageList);
procedure SetImageHAlign(Value : TAutoHSpinImageAlign);
procedure SetImageVAlign(Value : TAutoVSpinImageAlign);
procedure SetItems(Value : TAutoSpinImageItems);
procedure SetStretch(Value : Boolean);
procedure SetUpDownAlign(Value : TAutoUpDownAlign);
procedure SetUpDownOrientation(Value : TUDOrientation);
procedure SetUpDownWidth(Value : Integer);
protected
procedure SetControlProperties(AControl : TWinControl); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
function CreateDBControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateGridInplaceControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateLocateControl(AParent : TWinControl; AField : TField;
ACaseInsensitive : Boolean) : TWinControl; override;
procedure DrawOnGridCanvas(ACanvas : TCanvas; AFont : TFont; ARect : TRect;
AAlignment : TAlignment; AField : TField; Selected : Boolean); override;
function CreateFilterControl(AParent : TWinControl; AField : TField) : TWinControl; override;
function GetFilterControlValue(AControl : TWinControl) : Variant; override;
procedure SetFilterControlValue(AControl : TWinControl; Value : Variant); override;
function UseMaxGridHeight : Boolean; override;
published
property AutoSize : Boolean read FAutoSize write SetAutoSize;
property BorderStyle: TBorderStyle read FBorderStyle write SetBorderStyle;
property DefaultImages : Boolean read FDefaultImages write SetDefaultImages;
property ImageList : TImageList read FImageList write SetImageList;
property ImageHAlign : TAutoHSpinImageAlign read FImageHAlign write SetImageHAlign;
property ImageVAlign : TAutoVSpinImageAlign read FImageVAlign write SetImageVAlign;
property Items : TAutoSpinImageItems read FItems write SetItems;
property Stretch : Boolean read FStretch write SetStretch;
property UpDownAlign : TAutoUpDownAlign read FUpDownAlign write SetUpDownAlign;
property UpDownOrientation: TUDOrientation read FUpDownOrientation
write SetUpDownOrientation;
property UpDownWidth : Integer read FUpDownWidth write SetUpDownWidth;
property UseDblClick : Boolean read FUseDblClick write FUseDblClick;
property OnChange : TASIChange read FOnChange write FOnChange;
end;
TCustomAutoDBDefImageCombo = class(TCustomAutoDBDefControl)
private
FImageList : TImageList;
FAlignment : TAlignment;
FVertAlignment : TVertAlignment;
FImageAlign : TAutoImageAlign;
FMultiLines : Boolean;
FItemHeight : Integer;
FStrings : TStrings;
FUseValues : Boolean;
function GetImageIndex(Index : Integer) : Integer;
function GetItem(Index : Integer) : String;
function GetValue(Index : Integer) : String;
procedure SetImageList(Value : TImageList);
procedure SetAlignment(Value : TAlignment);
procedure SetImageAlign(Value : TAutoImageAlign);
procedure SetItemHeight(Value : Integer);
procedure SetMultiLines(Value : Boolean);
procedure SetStrings(Value : TStrings);
procedure SetVertAlignment(Value : TVertAlignment);
procedure SetUseValues(Value : Boolean);
protected
procedure SetControlProperties(AControl : TWinControl); override;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Notification(AComponent: TComponent;
Operation: TOperation); override;
procedure DrawOnGridCanvas(ACanvas : TCanvas; AFont : TFont; ARect : TRect;
AAlignment : TAlignment; AField : TField; Selected : Boolean); override;
function CreateGridInplaceControl(AParent : TWinControl; ADataSource : TDataSource;
AField : String) : TWinControl; override;
function CreateLocateControl(AParent : TWinControl; AField : TField;
ACaseInsensitive : Boolean) : TWinControl; override;
procedure AddItem(St :String; ImageIndex : Integer; Value : String);
procedure InsertItem(Index: Integer; St :String; ImageIndex : Integer; Value : String);
property ImageIndexes[Index : Integer] : Integer read GetImageIndex;
property Values[Index : Integer] : String read GetValue;
property Items[Index : Integer] : String read GetItem;
published
property Alignment : TAlignment read FAlignment write SetAlignment;
property ImageAlign : TAutoImageAlign read FImageAlign write SetImageAlign;
property ItemHeight : Integer read FItemHeight write SetItemHeight;
property ImageList : TImageList read FImageList write SetImageList;
property MultiLines : Boolean read FMultiLines write SetMultiLines;
property Strings : TStrings read FStrings write SetStrings;
property VertAlignment : TVertAlignment read FVertAlignment write SetVertAlignment;
property UseValues : Boolean read FUseValues write SetUseValues;
end;
TAutoDBDefImageCombo = class(TCustomAutoDBDefImageCombo)
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;
end;
TAutoDBDefImageList = class(TCustomAutoDBDefImageCombo)
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;
end;
TOnCreateDBDefCustomControl = procedure(AParent : TWincontrol;
ADataSource : TDataSource; AField : String; Var ANewDBControl : TWinControl) of object;
TOnDBDefCustomControlDrawOnGridCanvas = procedure(ACanvas : TCanvas; AFont : TFont;
ARect : TRect; AAlignment : TAlignment; AField : TField; ASelected : Boolean) of object;
TOnDBDefCustomControlGetGridDisplayText = procedure(AField : TField;
ASelected : Boolean; Var ADisplayText : String) of object;
TAutoDBDefCustomControl = class(TAutoDBDefMaskEdit)
private
FControl : TWinControl;
FUseMaxGridHeight : Boolean;
FOnCreateInplaceEditor : TOnCreateDBDefCustomControl;
FOnCreateDBControl : TOnCreateDBDefCustomControl;
FOnDrawOnGridCanvas : TOnDBDefCustomControlDrawOnGridCanvas;
FOnGetGridDisplayText : TOnDBDefCustomControlGetGridDisplayText;
procedure SetControl(Value : TWinControl);
function CreateNewControl : TWinControl;
procedure SetDBProperties(AControl : TWinControl; ADataSource : TDataSource; AField : String);
protected
procedure Notification(AComponent: TComponent;
Operation: TOperation); 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;
procedure DrawOnGridCanvas(ACanvas : TCanvas; AFont : TFont; ARect : TRect;
AAlignment : TAlignment; AField : TField; Selected : Boolean); override;
function UseMaxGridHeight : Boolean; override;
published
property Control : TWinControl read FControl write SetControl;
property MaxGridHeight : Boolean read FUseMaxGridHeight write FUseMaxGridHeight;
property OnCreateDBControl : TOnCreateDBDefCustomControl read FOnCreateDBControl
write FOnCreateDBControl;
property OnCreateInplaceEditor : TOnCreateDBDefCustomControl read FOnCreateInplaceEditor
write FOnCreateInplaceEditor;
property OnDrawOnGridCanvas : TOnDBDefCustomControlDrawOnGridCanvas read FOnDrawOnGridCanvas
write FOnDrawOnGridCanvas;
property OnGetGridDisplayText : TOnDBDefCustomControlGetGridDisplayText read FOnGetGridDisplayText
write FOnGetGridDisplayText;
end;
function GetDBDefControlClass(AControlType : TAutoDBDefControlType) : TAutoDBDefControlClass;
function GetDBDefControl(ATemplate : TAutoRepository; AField : TField) : TAutoDBDefControl;
function GetStdDBDefControl(AControlType : TAutoDBDefControlType) : TAutoDBDefControl;
function GetDBDefControlParentType(WinControl : TWinControl) : TAutoDBDefParentType;
implementation
uses agraphic, dbctrls, adbpanel, Mask, adbimctr, aflookup, extctrls,
ADateCtl, adbdate, aTimeCtl, adbtimct, TypInfo, afforms, abtnedit;
Const
SdtDBDefControlCount = 7; //8
Var
SdtDBDefControlList : TList;
SdtDBDefControlType : Array[0..SdtDBDefControlCount - 1] of TAutoDBDefControlType =
(adctMaskEdit, adctMemo, adctImage, adctCheckBox,
adctLookupComboBox, adctDate{, adctDateTime}, adctTime);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?