cxdbedit.pas
来自「胜天进销存源码,国产优秀的进销存」· PAS 代码 · 共 2,143 行 · 第 1/5 页
PAS
2,143 行
{********************************************************************}
{ }
{ Developer Express Visual Component Library }
{ ExpressEditors }
{ }
{ Copyright (c) 1998-2008 Developer Express Inc. }
{ ALL RIGHTS RESERVED }
{ }
{ The entire contents of this file is protected by U.S. and }
{ International Copyright Laws. Unauthorized reproduction, }
{ reverse-engineering, and distribution of all or any portion of }
{ the code contained in this file is strictly prohibited and may }
{ result in severe civil and criminal penalties and will be }
{ prosecuted to the maximum extent possible under the law. }
{ }
{ RESTRICTIONS }
{ }
{ THIS SOURCE CODE AND ALL RESULTING INTERMEDIATE FILES }
{ (DCU, OBJ, DLL, ETC.) ARE CONFIDENTIAL AND PROPRIETARY TRADE }
{ SECRETS OF DEVELOPER EXPRESS INC. THE REGISTERED DEVELOPER IS }
{ LICENSED TO DISTRIBUTE THE EXPRESSEDITORS AND ALL }
{ ACCOMPANYING VCL CONTROLS AS PART OF AN EXECUTABLE PROGRAM ONLY. }
{ }
{ THE SOURCE CODE CONTAINED WITHIN THIS FILE AND ALL RELATED }
{ FILES OR ANY PORTION OF ITS CONTENTS SHALL AT NO TIME BE }
{ COPIED, TRANSFERRED, SOLD, DISTRIBUTED, OR OTHERWISE MADE }
{ AVAILABLE TO OTHER INDIVIDUALS WITHOUT EXPRESS WRITTEN CONSENT }
{ AND PERMISSION FROM DEVELOPER EXPRESS INC. }
{ }
{ CONSULT THE END USER LICENSE AGREEMENT FOR INFORMATION ON }
{ ADDITIONAL RESTRICTIONS. }
{ }
{********************************************************************}
unit cxDBEdit;
{$I cxVer.inc}
interface
uses
{$IFDEF DELPHI6}
Variants,
{$ENDIF}
Windows, Messages,
Classes, Controls, DB, DBCtrls, SysUtils, cxBlobEdit, cxButtonEdit, cxCalc,
cxCalendar, cxCheckBox, cxClasses, cxContainer, cxCurrencyEdit, cxCustomData,
cxDataUtils, cxDB, cxDropDownEdit, cxEdit, cxHyperLinkEdit, cxImage,
cxImageComboBox, cxListBox, cxMaskEdit, cxMemo, cxMRUEdit, cxRadioGroup,
cxSpinEdit, cxTextEdit, cxTimeEdit;
type
TcxDBTextEdit = class;
{ TcxCustomDBEditDefaultValuesProvider }
TcxCustomDBEditDefaultValuesProvider = class(TcxCustomEditDefaultValuesProvider)
private
FDataSource: TDataSource;
FField: TField;
FFreeNotifier: TcxFreeNotificator;
procedure FieldFreeNotification(Sender: TComponent);
procedure SetDataSource(Value: TDataSource);
procedure SetField(Value: TField);
public
constructor Create(AOwner: TPersistent); override;
destructor Destroy; override;
function CanSetEditMode: Boolean; override;
function DefaultAlignment: TAlignment; override;
function DefaultBlobKind: TcxBlobKind; override;
function DefaultCanModify: Boolean; override;
function DefaultDisplayFormat: string; override;
function DefaultEditFormat: string; override;
function DefaultEditMask: string; override;
function DefaultIsFloatValue: Boolean; override;
function DefaultMaxLength: Integer; override;
function DefaultMaxValue: Double; override;
function DefaultMinValue: Double; override;
function DefaultPrecision: Integer; override;
function DefaultReadOnly: Boolean; override;
function DefaultRequired: Boolean; override;
function IsBlob: Boolean; override;
function IsCurrency: Boolean; override;
function IsDataAvailable: Boolean; override;
function IsDataStorage: Boolean; override;
function IsDisplayFormatDefined(AIsCurrencyValueAccepted: Boolean): Boolean; override;
function IsOnGetTextAssigned: Boolean; override;
function IsOnSetTextAssigned: Boolean; override;
function IsValidChar(AChar: Char): Boolean; override;
property DataSource: TDataSource read FDataSource write SetDataSource;
property Field: TField read FField write SetField;
end;
{ TcxDBFieldDataLink }
TcxDBFieldDataLink = class(TcxCustomFieldDataLink)
protected
procedure FocusControl(Field: TFieldRef); override;
procedure VisualControlChanged; override;
procedure UpdateRightToLeft; override;
end;
{ TcxDBDataBinding }
TcxDBDataBinding = class(TcxCustomDBDataBinding)
protected
function GetDataLinkClass: TcxCustomFieldDataLinkClass; override;
published
property DataSource;
property DataField;
end;
{ TcxEditFieldDataLink }
TcxDBEditDataBinding = class;
TcxEditFieldDataLink = class(TDataLink)
private
FControl: TComponent;
FDataBinding: TcxDBEditDataBinding;
FEditing: Boolean;
FField: TField;
FFieldName: string;
FFreeNotifier: TcxFreeNotificator;
FMasterField: TField;
FModified: Boolean;
procedure FieldFreeNotification(Sender: TComponent);
function GetCanModify: Boolean;
procedure InternalSetField(Value: TField);
procedure SetEditing(Value: Boolean);
procedure SetField(Value: TField);
procedure SetFieldName(const Value: string);
procedure UpdateField;
procedure UpdateMasterField;
procedure UpdateRightToLeft;
protected
procedure ActiveChanged; override;
procedure DataEvent(Event: TDataEvent;
Info: Longint); override;
procedure EditingChanged; override;
procedure FocusControl(Field: TFieldRef); override;
procedure LayoutChanged; override;
procedure RecordChanged(Field: TField); override;
procedure UpdateData; override;
procedure ResetModified;
public
constructor Create(ADataBinding: TcxDBEditDataBinding);
destructor Destroy; override;
function Edit: Boolean;
procedure Modified;
procedure Reset;
property CanModify: Boolean read GetCanModify;
property Control: TComponent read FControl write FControl;
property Editing: Boolean read FEditing;
property Field: TField read FField;
property FieldName: string read FFieldName write SetFieldName;
end;
{ TcxDBEditDataBinding }
TcxDBEditDataBinding = class(TcxEditDataBinding)
private
FDataLink: TcxEditFieldDataLink;
FRefreshCount: Integer;
function GetDataField: string;
function GetDataSource: TDataSource;
function GetDefaultValuesProvider: TcxCustomDBEditDefaultValuesProvider;
function GetField: TField;
procedure SetDataField(const Value: string);
procedure SetDataSource(Value: TDataSource);
protected
procedure DefaultValuesChanged; override;
procedure DisableRefresh;
procedure EnableRefresh;
function GetEditing: Boolean; override;
function GetModified: Boolean; override;
function GetStoredValue: TcxEditValue; override;
function IsRefreshDisabled: Boolean;
procedure Reset; override;
procedure SetDisplayValue(const Value: TcxEditValue); override;
function SetEditMode: Boolean; override;
procedure SetStoredValue(const Value: TcxEditValue); override;
procedure DataChanged; virtual;
procedure DataSetChange; virtual;
procedure EditingChanged; virtual;
function IsLookupControl: Boolean; virtual;
procedure UpdateData; virtual;
property DefaultValuesProvider: TcxCustomDBEditDefaultValuesProvider read GetDefaultValuesProvider;
public
constructor Create(AEdit: TcxCustomEdit); override;
destructor Destroy; override;
procedure Assign(Source: TPersistent); override;
function CanCheckEditorValue: Boolean; override;
function CanPostEditorValue: Boolean; override;
function ExecuteAction(Action: TBasicAction): Boolean; override;
class function GetDefaultValuesProviderClass: TcxCustomEditDefaultValuesProviderClass; override;
procedure SetModified; override;
function UpdateAction(Action: TBasicAction): Boolean; override;
procedure UpdateDisplayValue; override;
procedure UpdateNotConnectedDBEditDisplayValue; override;
property DataLink: TcxEditFieldDataLink read FDataLink;
property Field: TField read GetField;
published
property DataField: string read GetDataField write SetDataField;
property DataSource: TDataSource read GetDataSource write SetDataSource;
end;
{ TcxDBTextEditDataBinding }
TcxDBTextEditDataBinding = class(TcxDBEditDataBinding)
protected
procedure SetDisplayValue(const Value: TcxEditValue); override;
public
procedure UpdateNotConnectedDBEditDisplayValue; override;
end;
{ TcxDBTextEdit }
TcxDBTextEdit = class(TcxCustomTextEdit)
private
function GetActiveProperties: TcxTextEditProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxTextEditProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxTextEditProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
function IsCheckAsYouTypeSupports: Boolean; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxTextEditProperties read GetActiveProperties;
published
property Anchors;
property AutoSize;
property BeepOnEnter;
property Constraints;
property DataBinding: TcxDBTextEditDataBinding read GetDataBinding
write SetDataBinding;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property ImeMode;
property ImeName;
property ParentColor;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property Properties: TcxTextEditProperties read GetProperties
write SetProperties;
property ShowHint;
property Style;
property StyleDisabled;
property StyleFocused;
property StyleHot;
property TabOrder;
property TabStop;
property Visible;
property OnClick;
{$IFDEF DELPHI5}
property OnContextPopup;
{$ENDIF}
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEditing;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseEnter;
property OnMouseLeave;
property OnMouseMove;
property OnMouseUp;
property OnStartDrag;
property OnEndDock;
property OnStartDock;
end;
{ TcxDBMemo }
TcxDBMemo = class(TcxCustomMemo)
private
function GetActiveProperties: TcxMemoProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxMemoProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxMemoProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxMemoProperties read GetActiveProperties;
published
property Align;
property Anchors;
property Constraints;
property DataBinding: TcxDBTextEditDataBinding read GetDataBinding
write SetDataBinding;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property ImeMode;
property ImeName;
property ParentColor;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property Properties: TcxMemoProperties read GetProperties
write SetProperties;
property ShowHint;
property Style;
property StyleDisabled;
property StyleFocused;
property StyleHot;
property TabOrder;
property TabStop;
property Visible;
property OnClick;
{$IFDEF DELPHI5}
property OnContextPopup;
{$ENDIF}
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEditing;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseEnter;
property OnMouseLeave;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
{ TcxDBMaskEdit }
TcxDBMaskEdit = class(TcxCustomMaskEdit)
private
function GetActiveProperties: TcxMaskEditProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxMaskEditProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxMaskEditProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
function IsCheckAsYouTypeSupports: Boolean; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxMaskEditProperties read GetActiveProperties;
published
property Anchors;
property AutoSize;
property BeepOnEnter;
property Constraints;
property DataBinding: TcxDBTextEditDataBinding read GetDataBinding
write SetDataBinding;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property ImeMode;
property ImeName;
property ParentColor;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property Properties: TcxMaskEditProperties read GetProperties
write SetProperties;
property ShowHint;
property Style;
property StyleDisabled;
property StyleFocused;
property StyleHot;
property TabOrder;
property TabStop;
property Visible;
property OnClick;
{$IFDEF DELPHI5}
property OnContextPopup;
{$ENDIF}
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEditing;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseEnter;
property OnMouseLeave;
property OnMouseMove;
property OnMouseUp;
property OnStartDrag;
property OnEndDock;
property OnStartDock;
end;
{ TcxDBButtonEdit }
TcxDBButtonEdit = class(TcxCustomButtonEdit)
private
function GetActiveProperties: TcxButtonEditProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxButtonEditProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxButtonEditProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?