Componentes.Terceros.DevExp.../internal/x.36/1/ExpressEditors Library 5/Sources/cxDBEdit.pas
2008-09-04 11:31:51 +00:00

3076 lines
87 KiB
ObjectPascal

{********************************************************************}
{ }
{ 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;
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;
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
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxButtonEditProperties 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: TcxButtonEditProperties 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;
{ TcxDBCheckBox }
TcxDBCheckBox = class(TcxCustomCheckBox)
private
function GetActiveProperties: TcxCheckBoxProperties;
function GetDataBinding: TcxDBEditDataBinding;
function GetProperties: TcxCheckBoxProperties;
procedure SetDataBinding(Value: TcxDBEditDataBinding);
procedure SetProperties(Value: TcxCheckBoxProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxCheckBoxProperties read GetActiveProperties;
property Checked;
published
property Action;
property Align;
property Anchors;
property AutoSize;
property Caption;
property Constraints;
property DataBinding: TcxDBEditDataBinding read GetDataBinding
write SetDataBinding;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property ParentBackground;
property ParentColor;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property Properties: TcxCheckBoxProperties read GetProperties
write SetProperties;
property ShowHint;
property Style;
property StyleDisabled;
property StyleFocused;
property StyleHot;
property TabOrder;
property TabStop;
property Transparent;
property Visible;
property OnClick;
property OnContextPopup;
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;
{ TcxDBComboBox }
TcxDBComboBox = class(TcxCustomComboBox)
private
function GetActiveProperties: TcxComboBoxProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxComboBoxProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxComboBoxProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxComboBoxProperties read GetActiveProperties;
property ItemIndex;
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: TcxComboBoxProperties 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;
{ TcxDBPopupEdit }
TcxDBPopupEdit = class(TcxCustomPopupEdit)
private
function GetActiveProperties: TcxPopupEditProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxPopupEditProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxPopupEditProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxPopupEditProperties 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: TcxPopupEditProperties 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;
{ TcxDBSpinEdit }
TcxDBSpinEdit = class(TcxCustomSpinEdit)
private
function GetActiveProperties: TcxSpinEditProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxSpinEditProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxSpinEditProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxSpinEditProperties read GetActiveProperties;
property Value;
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: TcxSpinEditProperties 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;
{ TcxDBTimeEdit }
TcxDBTimeEdit = class(TcxCustomTimeEdit)
private
function GetActiveProperties: TcxTimeEditProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxTimeEditProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxTimeEditProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxTimeEditProperties 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: TcxTimeEditProperties 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;
{ TcxDBBlobEdit }
TcxDBBlobEdit = class(TcxCustomBlobEdit)
private
function GetActiveProperties: TcxBlobEditProperties;
function GetDataBinding: TcxDBEditDataBinding;
function GetProperties: TcxBlobEditProperties;
procedure SetDataBinding(Value: TcxDBEditDataBinding);
procedure SetProperties(Value: TcxBlobEditProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxBlobEditProperties read GetActiveProperties;
published
property Anchors;
property AutoSize;
property BeepOnEnter;
property Constraints;
property DataBinding: TcxDBEditDataBinding 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: TcxBlobEditProperties 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 OnGetGraphicClass;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
{ TcxDBCalcEdit }
TcxDBCalcEdit = class(TcxCustomCalcEdit)
private
function GetActiveProperties: TcxCalcEditProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxCalcEditProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxCalcEditProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxCalcEditProperties read GetActiveProperties;
property Value;
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: TcxCalcEditProperties read GetProperties
write SetProperties;
property ShowHint;
property Style;
property StyleDisabled;
property StyleFocused;
property StyleHot;
property TabOrder;
property TabStop default True;
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 OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
{ TcxDBDateEdit }
TcxDBDateEdit = class(TcxCustomDateEdit)
private
function GetActiveProperties: TcxDateEditProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxDateEditProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxDateEditProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxDateEditProperties 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: TcxDateEditProperties read GetProperties
write SetProperties;
property ShowHint;
property Style;
property StyleDisabled;
property StyleFocused;
property StyleHot;
property TabOrder;
property TabStop default True;
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 OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
{ TcxDBCurrencyEdit }
TcxDBCurrencyEdit = class(TcxCustomCurrencyEdit)
private
function GetActiveProperties: TcxCurrencyEditProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxCurrencyEditProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxCurrencyEditProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxCurrencyEditProperties 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: TcxCurrencyEditProperties 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 OnEditing;
property OnEndDock;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
end;
{ TcxDBHyperLinkEdit }
TcxDBHyperLinkEdit = class(TcxCustomHyperLinkEdit)
private
function GetActiveProperties: TcxHyperLinkEditProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxHyperLinkEditProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxHyperLinkEditProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxHyperLinkEditProperties 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: TcxHyperLinkEditProperties 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 OnEditing;
property OnEndDock;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
end;
{ TcxDBImage }
TcxDBImage = class(TcxCustomImage)
private
function GetActiveProperties: TcxImageProperties;
function GetDataBinding: TcxDBEditDataBinding;
function GetProperties: TcxImageProperties;
procedure SetDataBinding(Value: TcxDBEditDataBinding);
procedure SetProperties(Value: TcxImageProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxImageProperties read GetActiveProperties;
published
property Align;
property Anchors;
property AutoSize;
property Constraints;
property DataBinding: TcxDBEditDataBinding read GetDataBinding
write SetDataBinding;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property ParentColor;
property PopupMenu;
property Properties: TcxImageProperties read GetProperties
write SetProperties;
property Style;
property StyleDisabled;
property StyleFocused;
property StyleHot;
property TabOrder;
property TabStop;
property Visible;
property OnClick;
property OnContextPopup;
property OnDblClick;
property OnDragDrop;
property OnDragOver;
property OnEditing;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnGetGraphicClass;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
property OnStartDrag;
end;
{ TcxDBImageComboBox }
TcxDBImageComboBox = class(TcxCustomImageComboBox)
private
function GetActiveProperties: TcxImageComboBoxProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxImageComboBoxProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxImageComboBoxProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxImageComboBoxProperties read GetActiveProperties;
property ItemIndex;
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: TcxImageComboBoxProperties 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 OnEditing;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
end;
{ TcxDBMRUEdit }
TcxDBMRUEdit = class(TcxCustomMRUEdit)
private
function GetActiveProperties: TcxMRUEditProperties;
function GetDataBinding: TcxDBTextEditDataBinding;
function GetProperties: TcxMRUEditProperties;
procedure SetDataBinding(Value: TcxDBTextEditDataBinding);
procedure SetProperties(Value: TcxMRUEditProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxMRUEditProperties read GetActiveProperties;
protected
class function GetDataBindingClass: TcxEditDataBindingClass; override;
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: TcxMRUEditProperties 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 OnEditing;
property OnEndDock;
property OnEnter;
property OnExit;
property OnKeyDown;
property OnKeyPress;
property OnKeyUp;
property OnMouseDown;
property OnMouseMove;
property OnMouseUp;
property OnStartDock;
end;
{ TcxDBRadioGroupButton }
TcxDBRadioGroupButton = class(TcxCustomRadioGroupButton)
private
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
public
constructor Create(AOwner: TComponent); override;
end;
{ TcxDBRadioGroup }
TcxDBRadioGroup = class(TcxCustomRadioGroup)
private
function GetActiveProperties: TcxRadioGroupProperties;
function GetDataBinding: TcxDBEditDataBinding;
function GetProperties: TcxRadioGroupProperties;
procedure SetDataBinding(Value: TcxDBEditDataBinding);
procedure SetProperties(Value: TcxRadioGroupProperties);
procedure CMGetDataLink(var Message: TMessage); message CM_GETDATALINK;
public
class function GetPropertiesClass: TcxCustomEditPropertiesClass; override;
property ActiveProperties: TcxRadioGroupProperties read GetActiveProperties;
protected
function GetButtonInstance: TWinControl; override;
class function GetDataBindingClass: TcxEditDataBindingClass; override;
published
property Align;
property Alignment;
property Anchors;
property Caption;
property Constraints;
property Ctl3D;
property DataBinding: TcxDBEditDataBinding read GetDataBinding
write SetDataBinding;
property DragCursor;
property DragKind;
property DragMode;
property Enabled;
property ParentBackground;
property ParentColor;
property ParentCtl3D;
property ParentFont;
property ParentShowHint;
property PopupMenu;
property Properties: TcxRadioGroupProperties read GetProperties
write SetProperties;
property ShowHint;
property Style;
property StyleDisabled;
property StyleFocused;
property StyleHot;
property TabOrder;
property TabStop;
property Transparent;
property Visible;
property OnClick;
property OnContextPopup;
property OnDragDrop;
property OnDragOver;
property OnEditing;
property OnEndDock;
property OnEndDrag;
property OnEnter;
property OnExit;
property OnStartDock;
property OnStartDrag;
end;
{ TcxDBListBox }
TcxDBListBox = class(TcxListBox)
private
function GetDataBinding: TcxDBDataBinding;
procedure SetDataBinding(Value: TcxDBDataBinding);
protected
function GetDataBindingClass: TcxCustomDataBindingClass; override;
published
property DataBinding: TcxDBDataBinding read GetDataBinding write SetDataBinding;
end;
function GetcxDBEditDataLink(AEdit: TcxCustomEdit): TDataLink;
implementation
uses
cxVariants, StdCtrls;
type
TcxCustomEditAccess = class(TcxCustomEdit);
function GetcxDBEditDataLink(AEdit: TcxCustomEdit): TDataLink;
begin
if TcxCustomEditAccess(AEdit).DataBinding is TcxDBEditDataBinding then
Result := TcxDBEditDataBinding(TcxCustomEditAccess(AEdit).DataBinding).DataLink
else
Result := nil;
end;
{ TcxCustomDBEditDefaultValuesProvider }
constructor TcxCustomDBEditDefaultValuesProvider.Create(AOwner: TPersistent);
begin
inherited Create(AOwner);
FFreeNotifier := TcxFreeNotificator.Create(nil);
FFreeNotifier.OnFreeNotification := FieldFreeNotification;
end;
destructor TcxCustomDBEditDefaultValuesProvider.Destroy;
begin
FreeAndNil(FFreeNotifier);
inherited Destroy;
end;
function TcxCustomDBEditDefaultValuesProvider.CanSetEditMode: Boolean;
begin
Result := (DataSource <> nil) and (DataSource.AutoEdit or
(DataSource.State in [dsEdit, dsInsert]));
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultAlignment: TAlignment;
begin
if IsDataAvailable then
Result := Field.Alignment
else
Result := inherited DefaultAlignment;
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultBlobKind: TcxBlobKind;
begin
if IsDataAvailable then
case Field.DataType of
ftMemo, ftFmtMemo:
Result := bkMemo;
ftGraphic:
Result := bkGraphic;
ftParadoxOle, ftDBaseOle:
Result := bkOle;
else
Result := bkNone;
end
else
Result := bkNone;
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultCanModify: Boolean;
begin
Result := not DefaultReadOnly and IsDataAvailable;
Result := Result and (Field.CanModify or (Field.Lookup and CanModifyLookupField(Field)));
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultDisplayFormat: string;
begin
if IsDataAvailable and (Field is TNumericField) then
Result := TNumericField(Field).DisplayFormat
else
Result := inherited DefaultDisplayFormat;
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultEditFormat: string;
begin
if IsDataAvailable and (Field is TNumericField) then
Result := TNumericField(Field).EditFormat
else
Result := inherited DefaultEditFormat;
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultEditMask: string;
begin
if IsDataAvailable then
Result := Field.EditMask
else
Result := inherited DefaultEditMask;
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultIsFloatValue: Boolean;
begin
if IsDataAvailable then
Result := Field.DataType in [ftFloat, ftCurrency, ftBCD]
else
Result := inherited DefaultIsFloatValue;
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultMaxLength: Integer;
begin
if IsDataAvailable and (Field.DataType in [ftString{$IFDEF DELPHI4}, ftWideString{$ENDIF}]) then
Result := Field.Size
else
Result := inherited DefaultMaxLength;
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultMaxValue: Double;
begin
Result := inherited DefaultMaxValue;
if IsDataAvailable then
begin
if Field is TIntegerField then
Result := TIntegerField(Field).MaxValue
else
if Field is TFloatField then
begin
Result := StrToFloat(FloatToStrF(TFloatField(Field).MaxValue, ffGeneral,
TFloatField(Field).Precision, TFloatField(Field).Precision));
end
else
if Field is TBCDField then
Result := TBCDField(Field).MaxValue;
end;
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultMinValue: Double;
begin
Result := inherited DefaultMinValue;
if IsDataAvailable then
begin
if Field is TIntegerField then
Result := TIntegerField(Field).MinValue
else
if Field is TFloatField then
begin
Result := StrToFloat(FloatToStrF(TFloatField(Field).MinValue, ffGeneral,
TFloatField(Field).Precision, TFloatField(Field).Precision));
end
else
if Field is TBCDField then
Result := TBCDField(Field).MinValue;
end;
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultPrecision: Integer;
begin
if Field is TFloatField then
Result := TFloatField(Field).Precision
else if Field is TBCDField then
Result := TBCDField(Field).Precision
{$IFDEF DELPHI5}
else if Field is TAggregateField then
Result := TAggregateField(Field).Precision
{$ENDIF}
{$IFDEF DELPHI6}
else if Field is TFMTBCDField then
Result := TFMTBCDField(Field).Precision
{$ENDIF}
else
Result := inherited DefaultPrecision;
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultReadOnly: Boolean;
begin
if IsDataAvailable then
Result := Field.ReadOnly
else
Result := inherited DefaultReadOnly;
end;
function TcxCustomDBEditDefaultValuesProvider.DefaultRequired: Boolean;
begin
if IsDataAvailable then
Result := Field.Required
else
Result := inherited DefaultRequired;
end;
function TcxCustomDBEditDefaultValuesProvider.IsBlob: Boolean;
begin
Result := IsDataAvailable and Field.IsBlob;
end;
function TcxCustomDBEditDefaultValuesProvider.IsCurrency: Boolean;
begin
Result := inherited IsCurrency;
if IsDataAvailable then
if Field is TFloatField then
Result := TFloatField(Field).Currency
else if Field is TBCDField then
Result := TBCDField(Field).Currency
{$IFDEF DELPHI5}
else if Field is TAggregateField then
Result := TAggregateField(Field).Currency
{$ENDIF}
{$IFDEF DELPHI6}
else if Field is TFMTBCDField then
Result := TFMTBCDField(Field).Currency
{$ENDIF}
end;
function TcxCustomDBEditDefaultValuesProvider.IsDataAvailable: Boolean;
begin
Result := (FField <> nil) and (FField.DataSet <> nil) and
(FField.DataSet.State <> dsInactive);
end;
function TcxCustomDBEditDefaultValuesProvider.IsDataStorage: Boolean;
begin
Result := True;
end;
function TcxCustomDBEditDefaultValuesProvider.IsDisplayFormatDefined(AIsCurrencyValueAccepted: Boolean): Boolean;
begin
Result := IsDataAvailable;
if Result and not Assigned(Field.OnGetText) then
begin
Result := False;
if Field is TFloatField then
Result := Result or TFloatField(Field).Currency and AIsCurrencyValueAccepted;
if Field is TBCDField then
Result := Result or TBCDField(Field).Currency and AIsCurrencyValueAccepted;
if Field is TDateTimeField then
Result := Result or (TDateTimeField(Field).DisplayFormat <> '');
{$IFDEF DELPHI5}
if Field is TAggregateField then
with TAggregateField(Field) do
Result := Result or (DisplayFormat <> '') or Currency and AIsCurrencyValueAccepted;
{$ENDIF}
{$IFDEF DELPHI6}
if Field is TFMTBCDField then
Result := Result or TFMTBCDField(Field).Currency and AIsCurrencyValueAccepted;
if Field is TSQLTimeStampField then
Result := Result or (TSQLTimeStampField(Field).DisplayFormat <> '');
{$ENDIF}
if Field is TNumericField then
Result := Result or (TNumericField(Field).DisplayFormat <> '');
end;
end;
function TcxCustomDBEditDefaultValuesProvider.IsOnGetTextAssigned: Boolean;
begin
Result := IsDisplayFormatDefined(False) and (DefaultDisplayFormat = '');
end;
function TcxCustomDBEditDefaultValuesProvider.IsOnSetTextAssigned: Boolean;
begin
Result := IsDataAvailable and Assigned(Field.OnSetText);
end;
function TcxCustomDBEditDefaultValuesProvider.IsValidChar(AChar: Char): Boolean;
begin
if IsDataAvailable then
Result := Field.IsValidChar(AChar)
else
Result := inherited IsValidChar(AChar);
end;
procedure TcxCustomDBEditDefaultValuesProvider.FieldFreeNotification(Sender: TComponent);
begin
if Sender = DataSource then
DataSource := nil
else
Field := nil;
end;
procedure TcxCustomDBEditDefaultValuesProvider.SetDataSource(Value: TDataSource);
begin
if Value <> FDataSource then
begin
if FDataSource <> nil then
FFreeNotifier.RemoveSender(FDataSource);
FDataSource := Value;
if FDataSource <> nil then
FFreeNotifier.AddSender(FDataSource);
end;
end;
procedure TcxCustomDBEditDefaultValuesProvider.SetField(Value: TField);
begin
if Value <> FField then
begin
if FField <> nil then
FFreeNotifier.RemoveSender(FField);
FField := Value;
if FField <> nil then
FFreeNotifier.AddSender(FField);
end;
end;
{ TcxDBFieldDataLink }
procedure TcxDBFieldDataLink.FocusControl(Field: TFieldRef);
var
AVisualControl: TWinControl;
begin
if not(DataBinding.VisualControl is TWinControl) then
Exit;
AVisualControl := TWinControl(DataBinding.VisualControl);
if (Field^ <> nil) and (Field^ = Self.Field) and AVisualControl.CanFocus then
begin
Field^ := nil;
AVisualControl.SetFocus;
end;
end;
procedure TcxDBFieldDataLink.VisualControlChanged;
begin
VisualControl := DataBinding.VisualControl is TWinControl;
end;
procedure TcxDBFieldDataLink.UpdateRightToLeft;
var
AIsRightAligned: Boolean;
AUseRightToLeftAlignment: Boolean;
AVisualControl: TWinControl;
begin
if DataBinding.VisualControl is TWinControl then
begin
AVisualControl := TWinControl(DataBinding.VisualControl);
if AVisualControl.IsRightToLeft then
begin
AIsRightAligned :=
(GetWindowLong(AVisualControl.Handle, GWL_EXSTYLE) and WS_EX_RIGHT) = WS_EX_RIGHT;
AUseRightToLeftAlignment := DBUseRightToLeftAlignment(AVisualControl, Field);
if AIsRightAligned and not AUseRightToLeftAlignment or
not AIsRightAligned and AUseRightToLeftAlignment then
AVisualControl.Perform(CM_RECREATEWND, 0, 0);
end;
end;
end;
{ TcxDBDataBinding }
function TcxDBDataBinding.GetDataLinkClass: TcxCustomFieldDataLinkClass;
begin
Result := TcxDBFieldDataLink;
end;
{ TcxEditFieldDataLink }
constructor TcxEditFieldDataLink.Create(ADataBinding: TcxDBEditDataBinding);
begin
inherited Create;
VisualControl := True;
FDataBinding := ADataBinding;
FFreeNotifier := TcxFreeNotificator.Create(nil);
FFreeNotifier.OnFreeNotification := FieldFreeNotification;
end;
destructor TcxEditFieldDataLink.Destroy;
begin
InternalSetField(nil);
FreeAndNil(FFreeNotifier);
inherited Destroy;
end;
function TcxEditFieldDataLink.Edit: Boolean;
begin
if CanModify then
inherited Edit;
Result := FEditing;
end;
procedure TcxEditFieldDataLink.Modified;
begin
FModified := True;
end;
procedure TcxEditFieldDataLink.Reset;
begin
RecordChanged(nil);
end;
procedure TcxEditFieldDataLink.ActiveChanged;
begin
FDataBinding.DefaultValuesProvider.DataSource := DataSource;
FDataBinding.DisableRefresh;
try
UpdateField;
FDataBinding.DataSetChange;
finally
FDataBinding.EnableRefresh;
FModified := False;
FDataBinding.DataChanged;
end;
end;
procedure TcxEditFieldDataLink.DataEvent(Event: TDataEvent;
Info: Longint);
begin
inherited DataEvent(Event, Info);
if Event = deDataSetChange then
begin
FDataBinding.DisableRefresh;
try
FDataBinding.DataSetChange;
finally
FDataBinding.EnableRefresh;
FModified := False;
end;
end;
end;
procedure TcxEditFieldDataLink.EditingChanged;
begin
SetEditing(inherited Editing and CanModify);
FDataBinding.EditingChanged;
end;
procedure TcxEditFieldDataLink.FocusControl(Field: TFieldRef);
begin
if (Field^ <> nil) and (Field^ = FField) and (FControl is TWinControl) then
if TWinControl(FControl).CanFocus then
begin
Field^ := nil;
TWinControl(FControl).SetFocus;
end;
end;
procedure TcxEditFieldDataLink.LayoutChanged;
begin
UpdateField;
end;
procedure TcxEditFieldDataLink.RecordChanged(Field: TField);
begin
if (Field = nil) or (Field = FMasterField) then
begin
FDataBinding.DataChanged;
if not FDataBinding.IsRefreshDisabled then
FModified := False;
end;
end;
procedure TcxEditFieldDataLink.UpdateData;
begin
if FModified then
begin
if Field <> nil then
FDataBinding.UpdateData;
if not FDataBinding.IsRefreshDisabled then
FModified := False;
end;
end;
procedure TcxEditFieldDataLink.ResetModified;
begin
FModified := False;
end;
procedure TcxEditFieldDataLink.FieldFreeNotification(Sender: TComponent);
begin
InternalSetField(nil);
end;
function TcxEditFieldDataLink.GetCanModify: Boolean;
begin
Result := not ReadOnly and (Field <> nil) and (Field.CanModify or
(Field.Lookup and CanModifyLookupField(Field)));
end;
procedure TcxEditFieldDataLink.InternalSetField(Value: TField);
begin
if Value <> FField then
begin
if FField <> nil then
FFreeNotifier.RemoveSender(FField);
FField := Value;
if FField <> nil then
FFreeNotifier.AddSender(FField);
UpdateMasterField;
end;
end;
procedure TcxEditFieldDataLink.SetEditing(Value: Boolean);
begin
if FEditing <> Value then
begin
FEditing := Value;
if not FDataBinding.IsRefreshDisabled then
FModified := False;
end;
end;
procedure TcxEditFieldDataLink.SetField(Value: TField);
begin
if FField <> Value then
begin
InternalSetField(Value);
FDataBinding.DefaultValuesChanged;
EditingChanged;
RecordChanged(nil);
UpdateRightToLeft;
end;
end;
procedure TcxEditFieldDataLink.SetFieldName(const Value: string);
begin
if FFieldName <> Value then
begin
FFieldName := Value;
UpdateField;
end;
end;
procedure TcxEditFieldDataLink.UpdateField;
begin
if Active and (FFieldName <> '') then
begin
InternalSetField(nil);
if Assigned(FControl) then
SetField(GetFieldProperty(DataSource.DataSet, FControl, FFieldName))
else
SetField(DataSource.DataSet.FieldByName(FFieldName));
end
else
SetField(nil);
end;
procedure TcxEditFieldDataLink.UpdateMasterField;
begin
if FField = nil then
FMasterField := nil
else
if not FDataBinding.IsLookupControl or (FField.FieldKind <> fkLookup) or
(Pos(';', FField.KeyFields) > 0) then
FMasterField := FField
else
if Assigned(FControl) then
FMasterField := GetFieldProperty(DataSource.DataSet, FControl,
FField.KeyFields)
else
FMasterField := DataSource.DataSet.FieldByName(FField.KeyFields);
end;
procedure TcxEditFieldDataLink.UpdateRightToLeft;
var
AIsRightAligned: Boolean;
AUseRightToLeftAlignment: Boolean;
begin
if Assigned(FControl) and (FControl is TWinControl) and
TWinControl(FControl).IsRightToLeft then
begin
AIsRightAligned :=
(GetWindowLong(TWinControl(FControl).Handle, GWL_EXSTYLE) and WS_EX_RIGHT) = WS_EX_RIGHT;
AUseRightToLeftAlignment :=
DBUseRightToLeftAlignment(TControl(FControl), Field);
if (AIsRightAligned and (not AUseRightToLeftAlignment)) or
((not AIsRightAligned) and AUseRightToLeftAlignment) then
TWinControl(FControl).Perform(CM_RECREATEWND, 0, 0);
end;
end;
{ TcxDBEditDataBinding }
constructor TcxDBEditDataBinding.Create(AEdit: TcxCustomEdit);
begin
inherited Create(AEdit);
FDataLink := TcxEditFieldDataLink.Create(Self);
if AEdit.InnerControl <> nil then
FDataLink.Control := AEdit.InnerControl
else
FDataLink.Control := AEdit;
end;
destructor TcxDBEditDataBinding.Destroy;
begin
FreeAndNil(FDataLink);
inherited Destroy;
end;
procedure TcxDBEditDataBinding.Assign(Source: TPersistent);
begin
if Source is TcxDBTextEditDataBinding then
begin
DataField := TcxDBTextEditDataBinding(Source).DataField;
DataSource := TcxDBTextEditDataBinding(Source).DataSource;
DataChanged;
end;
inherited Assign(Source);
end;
function TcxDBEditDataBinding.CanCheckEditorValue: Boolean;
begin
Result := False;
end;
function TcxDBEditDataBinding.CanPostEditorValue: Boolean;
begin
Result := Editing and DataLink.FModified;
end;
function TcxDBEditDataBinding.ExecuteAction(Action: TBasicAction): Boolean;
begin
Result := FDataLink.ExecuteAction(Action);
end;
class function TcxDBEditDataBinding.GetDefaultValuesProviderClass: TcxCustomEditDefaultValuesProviderClass;
begin
Result := TcxCustomDBEditDefaultValuesProvider;
end;
procedure TcxDBEditDataBinding.SetModified;
begin
if Editing then
DataLink.Modified;
end;
function TcxDBEditDataBinding.UpdateAction(Action: TBasicAction): Boolean;
begin
Result := FDataLink.UpdateAction(Action);
end;
procedure TcxDBEditDataBinding.UpdateDisplayValue;
begin
Edit.LockClick(True);
try
if IsDataAvailable then
FDataLink.Reset
else
inherited UpdateDisplayValue;
finally
Edit.LockClick(False);
end;
end;
procedure TcxDBEditDataBinding.DefaultValuesChanged;
begin
DefaultValuesProvider.Field := Field;
inherited DefaultValuesChanged;
end;
procedure TcxDBEditDataBinding.DisableRefresh;
begin
Inc(FRefreshCount);
end;
procedure TcxDBEditDataBinding.EnableRefresh;
begin
if FRefreshCount > 0 then
Dec(FRefreshCount);
end;
function TcxDBEditDataBinding.GetEditing: Boolean;
begin
Result := IsDataAvailable and FDataLink.Editing;
end;
function TcxDBEditDataBinding.GetModified: Boolean;
begin
Result := GetEditing and FDataLink.FModified;
end;
function TcxDBEditDataBinding.GetStoredValue: TcxEditValue;
var
AEditValueSource: TcxDataEditValueSource;
begin
AEditValueSource := Edit.ActiveProperties.GetEditValueSource(Edit.InternalFocused);
if not IsDataAvailable or (Field.IsNull and
((AEditValueSource <> evsText) or not Assigned(Field.OnGetText))) then
Result := Null
else
begin
Result := Null;
case AEditValueSource of
evsKey:
if Field.KeyFields <> '' then
Result := Field.DataSet.FieldValues[Field.KeyFields]
else
Result := Field.Value;
evsText:
if Edit.Focused and FDataLink.CanModify then
Result := Field.Text
else
if Field.IsBlob then
Result := Field.AsString
else
Result := Field.DisplayText;
evsValue:
Result := Field.Value;
end;
end;
end;
function TcxDBEditDataBinding.IsRefreshDisabled: Boolean;
begin
Result := FRefreshCount > 0;
end;
procedure TcxDBEditDataBinding.Reset;
begin
if IsDataAvailable then
begin
FDataLink.Reset;
Edit.SelectAll;
end;
end;
procedure TcxDBEditDataBinding.SetDisplayValue(const Value: TcxEditValue);
begin
if IsDataAvailable then
SetInternalDisplayValue(Value)
else
SetInternalDisplayValue('');
end;
function TcxDBEditDataBinding.SetEditMode: Boolean;
begin
Result := IDefaultValuesProvider.DefaultCanModify;
if not Result then
Exit;
DisableRefresh;
try
FDatalink.Edit;
Result := FDatalink.Editing;
if Result then
FDatalink.Modified;
finally
EnableRefresh;
end;
end;
procedure TcxDBEditDataBinding.SetStoredValue(const Value: TcxEditValue);
procedure SetFieldValue(AField: TField; const AValue: TcxEditValue);
begin
if VarIsStr(AValue) and (AValue = '') and
not (Field.DataType in [ftString{$IFDEF DELPHI4}, ftWideString{$ENDIF}]) then
AField.Value := Null
{$IFDEF DELPHI6}
else
if (Field is TFMTBCDField) and VarIsType(AValue, varDouble) then
AField.Value := FloatToStrF(AValue, ffFixed, 15, 18) // bug in VarToBcd when the type AValue is double: VarToStr(0.000012) returns 1.2E-05 which is incorrect for StrToBcd
{$ENDIF}
else
AField.Value := AValue;
end;
var
AEditValueSource: TcxDataEditValueSource;
AFieldList: TList;
I: Integer;
begin
if IsDataAvailable then
begin
DisableRefresh;
try
if FDataLink.Edit then
begin
AEditValueSource := Edit.ActiveProperties.GetEditValueSource(True(*Edit.InternalFocused*));
if (*(*)AEditValueSource = evsText(*) or Assigned(Field.OnSetText)*) then
Field.Text := VarToStr(Value)
else
if (AEditValueSource = evsKey) and (Field.KeyFields <> '') then
if Pos(';', Field.KeyFields) = 0 then
SetFieldValue(Field.DataSet.FieldByName(Field.KeyFields), Value)
else
begin
AFieldList := TList.Create;
try
Field.DataSet.GetFieldList(AFieldList, Field.KeyFields);
for I := 0 to AFieldList.Count - 1 do
SetFieldValue(TField(AFieldList[I]), Value[I]);
finally
AFieldList.Free;
end;
Field.DataSet.FieldValues[Field.KeyFields] := Value;
end
else
SetFieldValue(Field, Value);
FDataLink.ResetModified;
end;
finally
EnableRefresh;
end;
end;
end;
procedure TcxDBEditDataBinding.UpdateNotConnectedDBEditDisplayValue;
begin
if not IsDataAvailable then
Edit.EditValue := Null;
end;
procedure TcxDBEditDataBinding.DataChanged;
begin
if IsRefreshDisabled then
Exit;
if Edit.IsDesigning and not IsDataAvailable then
UpdateNotConnectedDBEditDisplayValue
else
begin
if not TcxCustomEditAccess(Edit).Focused and
Edit.ActiveProperties.IsValueEditorWithValueFormatting then
begin
if not IsDataAvailable or Field.IsNull then
TcxCustomEditAccess(Edit).FEditValue := Null
else
TcxCustomEditAccess(Edit).FEditValue := Field.Value;
Edit.LockClick(True);
try
SetInternalDisplayValue(StoredValue);
finally
Edit.LockClick(False);
end;
end
else
Edit.EditValue := StoredValue;
end;
end;
procedure TcxDBEditDataBinding.DataSetChange;
begin
DefaultValuesChanged;
end;
procedure TcxDBEditDataBinding.EditingChanged;
begin
TcxCustomEditAccess(Edit).EditingChanged;
end;
function TcxDBEditDataBinding.IsLookupControl: Boolean;
begin
Result := False;
end;
procedure TcxDBEditDataBinding.UpdateData;
begin
if IsDataAvailable then
begin
if Edit.ValidateEdit(True) then
StoredValue := Edit.EditValue;
end;
end;
function TcxDBEditDataBinding.GetDataField: string;
begin
Result := FDataLink.FieldName;
end;
function TcxDBEditDataBinding.GetDataSource: TDataSource;
begin
Result := FDataLink.DataSource;
end;
function TcxDBEditDataBinding.GetDefaultValuesProvider: TcxCustomDBEditDefaultValuesProvider;
begin
Result := TcxCustomDBEditDefaultValuesProvider(IDefaultValuesProvider.GetInstance);
end;
function TcxDBEditDataBinding.GetField: TField;
begin
Result := FDataLink.Field;
end;
procedure TcxDBEditDataBinding.SetDataField(const Value: string);
begin
FDataLink.FieldName := Value;
end;
procedure TcxDBEditDataBinding.SetDataSource(Value: TDataSource);
begin
if not (FDataLink.DataSourceFixed and Edit.IsLoading) then
begin
FDataLink.DataSource := Value;
DefaultValuesProvider.DataSource := Value;
end;
end;
{ TcxDBTextEditDataBinding }
procedure TcxDBTextEditDataBinding.UpdateNotConnectedDBEditDisplayValue;
begin
if not IsDataAvailable then
begin
Edit.LockClick(True);
try
DisplayValue := '';
finally
Edit.LockClick(False);
end;
end;
end;
procedure TcxDBTextEditDataBinding.SetDisplayValue(const Value: TcxEditValue);
begin
if IsDataAvailable then
SetInternalDisplayValue(Value)
else
if Edit.IsDesigning then
SetInternalDisplayValue(Edit.Name)
else
SetInternalDisplayValue('');
end;
{ TcxDBTextEdit }
class function TcxDBTextEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxTextEditProperties;
end;
class function TcxDBTextEdit.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBTextEdit.GetActiveProperties: TcxTextEditProperties;
begin
Result := TcxTextEditProperties(InternalGetActiveProperties);
end;
function TcxDBTextEdit.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := FDataBinding as TcxDBTextEditDataBinding;
end;
function TcxDBTextEdit.GetProperties: TcxTextEditProperties;
begin
Result := TcxTextEditProperties(FProperties);
end;
procedure TcxDBTextEdit.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBTextEdit.SetProperties(Value: TcxTextEditProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBTextEdit.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBMemo }
class function TcxDBMemo.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxMemoProperties;
end;
class function TcxDBMemo.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBMemo.GetActiveProperties: TcxMemoProperties;
begin
Result := TcxMemoProperties(InternalGetActiveProperties);
end;
function TcxDBMemo.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := TcxDBTextEditDataBinding(FDataBinding);
end;
function TcxDBMemo.GetProperties: TcxMemoProperties;
begin
Result := TcxMemoProperties(FProperties);
end;
procedure TcxDBMemo.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBMemo.SetProperties(Value: TcxMemoProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBMemo.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBMaskEdit }
class function TcxDBMaskEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxMaskEditProperties;
end;
class function TcxDBMaskEdit.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBMaskEdit.GetActiveProperties: TcxMaskEditProperties;
begin
Result := TcxMaskEditProperties(InternalGetActiveProperties);
end;
function TcxDBMaskEdit.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := FDataBinding as TcxDBTextEditDataBinding;
end;
function TcxDBMaskEdit.GetProperties: TcxMaskEditProperties;
begin
Result := TcxMaskEditProperties(FProperties);
end;
procedure TcxDBMaskEdit.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBMaskEdit.SetProperties(Value: TcxMaskEditProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBMaskEdit.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBButtonEdit }
class function TcxDBButtonEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxButtonEditProperties;
end;
class function TcxDBButtonEdit.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBButtonEdit.GetActiveProperties: TcxButtonEditProperties;
begin
Result := TcxButtonEditProperties(InternalGetActiveProperties);
end;
function TcxDBButtonEdit.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := FDataBinding as TcxDBTextEditDataBinding;
end;
function TcxDBButtonEdit.GetProperties: TcxButtonEditProperties;
begin
Result := TcxButtonEditProperties(FProperties);
end;
procedure TcxDBButtonEdit.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBButtonEdit.SetProperties(Value: TcxButtonEditProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBButtonEdit.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBCheckBox }
class function TcxDBCheckBox.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxCheckBoxProperties;
end;
class function TcxDBCheckBox.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBEditDataBinding;
end;
function TcxDBCheckBox.GetActiveProperties: TcxCheckBoxProperties;
begin
Result := TcxCheckBoxProperties(InternalGetActiveProperties);
end;
function TcxDBCheckBox.GetDataBinding: TcxDBEditDataBinding;
begin
Result := TcxDBEditDataBinding(FDataBinding);
end;
function TcxDBCheckBox.GetProperties: TcxCheckBoxProperties;
begin
Result := TcxCheckBoxProperties(FProperties);
end;
procedure TcxDBCheckBox.SetDataBinding(Value: TcxDBEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBCheckBox.SetProperties(Value: TcxCheckBoxProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBCheckBox.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBComboBox }
class function TcxDBComboBox.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxComboBoxProperties;
end;
class function TcxDBComboBox.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBComboBox.GetActiveProperties: TcxComboBoxProperties;
begin
Result := TcxComboBoxProperties(InternalGetActiveProperties);
end;
function TcxDBComboBox.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := TcxDBTextEditDataBinding(FDataBinding);
end;
function TcxDBComboBox.GetProperties: TcxComboBoxProperties;
begin
Result := TcxComboBoxProperties(FProperties);
end;
procedure TcxDBComboBox.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBComboBox.SetProperties(Value: TcxComboBoxProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBComboBox.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBPopupEdit }
class function TcxDBPopupEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxPopupEditProperties;
end;
class function TcxDBPopupEdit.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBPopupEdit.GetActiveProperties: TcxPopupEditProperties;
begin
Result := TcxPopupEditProperties(InternalGetActiveProperties);
end;
function TcxDBPopupEdit.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := TcxDBTextEditDataBinding(FDataBinding);
end;
function TcxDBPopupEdit.GetProperties: TcxPopupEditProperties;
begin
Result := TcxPopupEditProperties(FProperties);
end;
procedure TcxDBPopupEdit.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBPopupEdit.SetProperties(Value: TcxPopupEditProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBPopupEdit.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBSpinEdit }
class function TcxDBSpinEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxSpinEditProperties;
end;
class function TcxDBSpinEdit.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBSpinEdit.GetActiveProperties: TcxSpinEditProperties;
begin
Result := TcxSpinEditProperties(InternalGetActiveProperties);
end;
function TcxDBSpinEdit.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := TcxDBTextEditDataBinding(FDataBinding);
end;
function TcxDBSpinEdit.GetProperties: TcxSpinEditProperties;
begin
Result := TcxSpinEditProperties(FProperties);
end;
procedure TcxDBSpinEdit.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBSpinEdit.SetProperties(Value: TcxSpinEditProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBSpinEdit.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBTimeEdit }
class function TcxDBTimeEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxTimeEditProperties;
end;
class function TcxDBTimeEdit.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBTimeEdit.GetActiveProperties: TcxTimeEditProperties;
begin
Result := TcxTimeEditProperties(InternalGetActiveProperties);
end;
function TcxDBTimeEdit.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := TcxDBTextEditDataBinding(FDataBinding);
end;
function TcxDBTimeEdit.GetProperties: TcxTimeEditProperties;
begin
Result := TcxTimeEditProperties(FProperties);
end;
procedure TcxDBTimeEdit.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBTimeEdit.SetProperties(Value: TcxTimeEditProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBTimeEdit.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBBlobEdit }
class function TcxDBBlobEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxBlobEditProperties;
end;
class function TcxDBBlobEdit.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBEditDataBinding;
end;
function TcxDBBlobEdit.GetActiveProperties: TcxBlobEditProperties;
begin
Result := TcxBlobEditProperties(InternalGetActiveProperties);
end;
function TcxDBBlobEdit.GetDataBinding: TcxDBEditDataBinding;
begin
Result := TcxDBEditDataBinding(FDataBinding);
end;
function TcxDBBlobEdit.GetProperties: TcxBlobEditProperties;
begin
Result := TcxBlobEditProperties(FProperties);
end;
procedure TcxDBBlobEdit.SetDataBinding(Value: TcxDBEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBBlobEdit.SetProperties(Value: TcxBlobEditProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBBlobEdit.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBCalcEdit }
class function TcxDBCalcEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxCalcEditProperties;
end;
class function TcxDBCalcEdit.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBCalcEdit.GetActiveProperties: TcxCalcEditProperties;
begin
Result := TcxCalcEditProperties(InternalGetActiveProperties);
end;
function TcxDBCalcEdit.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := TcxDBTextEditDataBinding(FDataBinding);
end;
function TcxDBCalcEdit.GetProperties: TcxCalcEditProperties;
begin
Result := TcxCalcEditProperties(FProperties);
end;
procedure TcxDBCalcEdit.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBCalcEdit.SetProperties(Value: TcxCalcEditProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBCalcEdit.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBDateEdit }
class function TcxDBDateEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxDateEditProperties;
end;
class function TcxDBDateEdit.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBDateEdit.GetActiveProperties: TcxDateEditProperties;
begin
Result := TcxDateEditProperties(InternalGetActiveProperties);
end;
function TcxDBDateEdit.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := TcxDBTextEditDataBinding(FDataBinding);
end;
function TcxDBDateEdit.GetProperties: TcxDateEditProperties;
begin
Result := TcxDateEditProperties(FProperties);
end;
procedure TcxDBDateEdit.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBDateEdit.SetProperties(Value: TcxDateEditProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBDateEdit.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBCurrencyEdit }
class function TcxDBCurrencyEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxCurrencyEditProperties;
end;
class function TcxDBCurrencyEdit.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBCurrencyEdit.GetActiveProperties: TcxCurrencyEditProperties;
begin
Result := TcxCurrencyEditProperties(InternalGetActiveProperties);
end;
function TcxDBCurrencyEdit.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := TcxDBTextEditDataBinding(FDataBinding);
end;
function TcxDBCurrencyEdit.GetProperties: TcxCurrencyEditProperties;
begin
Result := TcxCurrencyEditProperties(FProperties);
end;
procedure TcxDBCurrencyEdit.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBCurrencyEdit.SetProperties(Value: TcxCurrencyEditProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBCurrencyEdit.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBHyperLinkEdit }
class function TcxDBHyperLinkEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxHyperLinkEditProperties;
end;
class function TcxDBHyperLinkEdit.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBHyperLinkEdit.GetActiveProperties: TcxHyperLinkEditProperties;
begin
Result := TcxHyperLinkEditProperties(InternalGetActiveProperties);
end;
function TcxDBHyperLinkEdit.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := TcxDBTextEditDataBinding(FDataBinding);
end;
function TcxDBHyperLinkEdit.GetProperties: TcxHyperLinkEditProperties;
begin
Result := TcxHyperLinkEditProperties(FProperties);
end;
procedure TcxDBHyperLinkEdit.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBHyperLinkEdit.SetProperties(Value: TcxHyperLinkEditProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBHyperLinkEdit.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBImage }
class function TcxDBImage.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxImageProperties;
end;
class function TcxDBImage.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBEditDataBinding;
end;
function TcxDBImage.GetActiveProperties: TcxImageProperties;
begin
Result := TcxImageProperties(InternalGetActiveProperties);
end;
function TcxDBImage.GetDataBinding: TcxDBEditDataBinding;
begin
Result := TcxDBEditDataBinding(FDataBinding);
end;
function TcxDBImage.GetProperties: TcxImageProperties;
begin
Result := TcxImageProperties(FProperties);
end;
procedure TcxDBImage.SetDataBinding(Value: TcxDBEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBImage.SetProperties(Value: TcxImageProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBImage.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBImageComboBox }
class function TcxDBImageComboBox.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxImageComboBoxProperties;
end;
class function TcxDBImageComboBox.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBImageComboBox.GetActiveProperties: TcxImageComboBoxProperties;
begin
Result := TcxImageComboBoxProperties(InternalGetActiveProperties);
end;
function TcxDBImageComboBox.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := TcxDBTextEditDataBinding(FDataBinding);
end;
function TcxDBImageComboBox.GetProperties: TcxImageComboBoxProperties;
begin
Result := TcxImageComboBoxProperties(FProperties);
end;
procedure TcxDBImageComboBox.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBImageComboBox.SetProperties(Value: TcxImageComboBoxProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBImageComboBox.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBMRUEdit }
class function TcxDBMRUEdit.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxMRUEditProperties;
end;
class function TcxDBMRUEdit.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBTextEditDataBinding;
end;
function TcxDBMRUEdit.GetActiveProperties: TcxMRUEditProperties;
begin
Result := TcxMRUEditProperties(InternalGetActiveProperties);
end;
function TcxDBMRUEdit.GetDataBinding: TcxDBTextEditDataBinding;
begin
Result := TcxDBTextEditDataBinding(FDataBinding);
end;
function TcxDBMRUEdit.GetProperties: TcxMRUEditProperties;
begin
Result := TcxMRUEditProperties(FProperties);
end;
procedure TcxDBMRUEdit.SetDataBinding(Value: TcxDBTextEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBMRUEdit.SetProperties(Value: TcxMRUEditProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBMRUEdit.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBRadioGroupButton }
constructor TcxDBRadioGroupButton.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
ControlStyle := ControlStyle + [csReplicatable];
end;
procedure TcxDBRadioGroupButton.CMGetDataLink(var Message: TMessage);
begin
RadioGroup.Perform(Message.Msg, Message.WParam, Message.LParam);
end;
{ TcxDBRadioGroup }
class function TcxDBRadioGroup.GetPropertiesClass: TcxCustomEditPropertiesClass;
begin
Result := TcxRadioGroupProperties;
end;
function TcxDBRadioGroup.GetButtonInstance: TWinControl;
begin
Result := TcxDBRadioGroupButton.Create(Self);
end;
class function TcxDBRadioGroup.GetDataBindingClass: TcxEditDataBindingClass;
begin
Result := TcxDBEditDataBinding;
end;
function TcxDBRadioGroup.GetActiveProperties: TcxRadioGroupProperties;
begin
Result := TcxRadioGroupProperties(InternalGetActiveProperties);
end;
function TcxDBRadioGroup.GetDataBinding: TcxDBEditDataBinding;
begin
Result := TcxDBEditDataBinding(FDataBinding);
end;
function TcxDBRadioGroup.GetProperties: TcxRadioGroupProperties;
begin
Result := TcxRadioGroupProperties(FProperties);
end;
procedure TcxDBRadioGroup.SetDataBinding(Value: TcxDBEditDataBinding);
begin
FDataBinding.Assign(Value);
end;
procedure TcxDBRadioGroup.SetProperties(Value: TcxRadioGroupProperties);
begin
FProperties.Assign(Value);
end;
procedure TcxDBRadioGroup.CMGetDataLink(var Message: TMessage);
begin
Message.Result := Integer(GetcxDBEditDataLink(Self));
end;
{ TcxDBListBox }
function TcxDBListBox.GetDataBindingClass: TcxCustomDataBindingClass;
begin
Result := TcxDBDataBinding;
end;
function TcxDBListBox.GetDataBinding: TcxDBDataBinding;
begin
Result := TcxDBDataBinding(FDataBinding);
end;
procedure TcxDBListBox.SetDataBinding(Value: TcxDBDataBinding);
begin
FDataBinding.Assign(Value);
end;
end.