{----------------------------------------------------------------------------- The contents of this file are subject to the Mozilla Public License Version 1.1 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.mozilla.org/MPL/MPL-1.1.html Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License for the specific language governing rights and limitations under the License. The Initial Developer of the Original Code is Jens Fudickar [jens dott fudickar att oratool dott de] All Rights Reserved. Contributor(s): Jens Fudickar [jens dott fudickar att oratool dott de] You may retrieve the latest version of this file at the Project JEDI's JVCL home page, located at http://jvcl.delphi-jedi.org Known Issues: -----------------------------------------------------------------------------} // $Id: JvDynControlEngineDevExpCxDB.pas 12563 2009-10-19 23:55:49Z jfudickar $ unit JvDynControlEngineDevExpCxDB; {$I jvcl.inc} interface {$IFNDEF USE_3RDPARTY_DEVEXPRESS_CXEDITOR} {$IFDEF UNITVERSIONING} uses JclUnitVersioning, JvDynControlEngineDevExpcx, JvDynControlEngineIntf; {$ENDIF UNITVERSIONING} {$ELSE} uses {$IFDEF UNITVERSIONING} JclUnitVersioning, {$ENDIF UNITVERSIONING} Classes, ExtCtrls, ExtDlgs, Graphics, Buttons, Controls, Dialogs, FileCtrl, Forms, DBCtrls, DB, DBGrids, StdCtrls, cxDBEdit, cxDBNavigator, JvDynControlEngine, JvDynControlEngineDB, JvDynControlEngineIntf, JvDynControlEngineDevExpCx, JvDynControlEngineDBIntf; type TJvDynControlCxDBEdit = class(TcxDBTextEdit, IUnknown, IJvDynControl, IJvDynControlDevExpCx, IJvDynControlData, IJvDynControlReadOnly, IJvDynControlEdit, IJvDynControlDatabase) public procedure ControlSetDefaultProperties; procedure ControlSetReadOnly(Value: Boolean); procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetHint(const Value: string); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnChange(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetValue(Value: Variant); function ControlGetValue: Variant; //IJvDynControlEdit procedure ControlSetPasswordChar(Value: Char); procedure ControlSetEditMask(const Value: string); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); //IJvDynControlDevExpCx procedure ControlSetCxProperties(Value: TCxDynControlWrapper); end; TJvDynControlCxDBButtonEdit = class(TcxDBButtonEdit, IUnknown, IJvDynControl, IJvDynControlDevExpCx, IJvDynControlData, IJvDynControlReadOnly, IJvDynControlEdit, IJvDynControlButtonEdit, IJvDynControlButton, IJvDynControlDatabase) private FIntOnButtonClick: TNotifyEvent; protected procedure IntOnButtonClick(Sender: TObject; AButtonIndex: Integer); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure ControlSetDefaultProperties; procedure ControlSetReadOnly(Value: Boolean); procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetHint(const Value: string); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnChange(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetValue(Value: Variant); function ControlGetValue: Variant; //IJvDynControlEdit procedure ControlSetPasswordChar(Value: Char); procedure ControlSetEditMask(const Value: string); //IJvDynControlButtonEdit procedure ControlSetOnButtonClick(Value: TNotifyEvent); procedure ControlSetButtonCaption(const Value: string); //IJvDynControlButton procedure ControlSetGlyph(Value: TBitmap); procedure ControlSetNumGlyphs(Value: Integer); procedure ControlSetLayout(Value: TButtonLayout); procedure ControlSetDefault(Value: Boolean); procedure ControlSetCancel(Value: Boolean); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); //IJvDynControlDevExpCx procedure ControlSetCxProperties(Value: TCxDynControlWrapper); end; TJvDynControlCxDBFileNameEdit = class(TcxDBButtonEdit, IUnknown, IJvDynControl, IJvDynControlDevExpCx, IJvDynControlData, IJvDynControlFileName, IJvDynControlReadOnly, IJvDynControlDatabase) private FInitialDir: string; FFilterIndex: Integer; FFilter: string; FDialogOptions: TOpenOptions; FDialogKind: TJvDynControlFileNameDialogKind; FDialogTitle: string; FDefaultExt: string; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure DefaultOnButtonClick(Sender: TObject); procedure ControlSetDefaultProperties; procedure ControlSetReadOnly(Value: Boolean); procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetHint(const Value: string); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnChange(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetValue(Value: Variant); function ControlGetValue: Variant; // IJvDynControlFileName procedure ControlSetInitialDir(const Value: string); procedure ControlSetDefaultExt(const Value: string); procedure ControlSetDialogTitle(const Value: string); procedure ControlSetDialogOptions(Value: TOpenOptions); procedure ControlSetFilter(const Value: string); procedure ControlSetFilterIndex(Value: Integer); procedure ControlSetDialogKind(Value: TJvDynControlFileNameDialogKind); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); //IJvDynControlDevExpCx procedure ControlSetCxProperties(Value: TCxDynControlWrapper); end; TJvDynControlCxDBDirectoryEdit = class(TcxDBButtonEdit, IUnknown, IJvDynControl, IJvDynControlDevExpCx, IJvDynControlData, IJvDynControlDirectory, IJvDynControlReadOnly, IJvDynControlDatabase) private FInitialDir: string; FDialogOptions: TSelectDirOpts; FDialogTitle: string; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure DefaultOnButtonClick(Sender: TObject); procedure ControlSetDefaultProperties; procedure ControlSetReadOnly(Value: Boolean); procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetHint(const Value: string); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnChange(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetValue(Value: Variant); function ControlGetValue: Variant; // IJvDynControlDirectory procedure ControlSetInitialDir(const Value: string); procedure ControlSetDialogTitle(const Value: string); procedure ControlSetDialogOptions(Value: TSelectDirOpts); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); //IJvDynControlDevExpCx procedure ControlSetCxProperties(Value: TCxDynControlWrapper); end; TJvDynControlCxDBCheckBox = class(TcxDBCheckBox, IUnknown, IJvDynControl, IJvDynControlDevExpCx, IJvDynControlData, IJvDynControlDatabase, IJvDynControlDBCheckbox) public procedure ControlSetDefaultProperties; procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetHint(const Value: string); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnChange(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetValue(Value: Variant); function ControlGetValue: Variant; //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); //IJvDynControlDBCheckbox procedure ControlSetValueChecked(Value: Variant); procedure ControlSetValueUnChecked(Value: Variant); //IJvDynControlDevExpCx procedure ControlSetCxProperties(Value: TCxDynControlWrapper); end; TJvDynControlCxDBMemo = class(TcxDBMemo, IUnknown, IJvDynControl, IJvDynControlDevExpCx, IJvDynControlData, IJvDynControlItems, IJvDynControlMemo, IJvDynControlReadOnly, IJvDynControlDatabase, IJvDynControlFont) public procedure ControlSetDefaultProperties; procedure ControlSetReadOnly(Value: Boolean); procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetHint(const Value: string); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnChange(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetValue(Value: Variant); function ControlGetValue: Variant; procedure ControlSetSorted(Value: Boolean); procedure ControlSetItems(Value: TStrings); function ControlGetItems: TStrings; procedure ControlSetWantTabs(Value: Boolean); procedure ControlSetWantReturns(Value: Boolean); procedure ControlSetWordWrap(Value: Boolean); procedure ControlSetScrollBars(Value: TScrollStyle); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); //IJvDynControlDevExpCx procedure ControlSetCxProperties(Value: TCxDynControlWrapper); //IJvDynControlFont procedure ControlSetFont(Value: TFont); function ControlGetFont: TFont; end; TJvDynControlCxDBRadioGroup = class(TcxDBRadioGroup, IUnknown, IJvDynControl, IJvDynControlDevExpCx, IJvDynControlData, IJvDynControlItems, IJvDynControlRadioGroup, IJvDynControlDatabase) private FItems: TStrings; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure ControlSetDefaultProperties; procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetHint(const Value: string); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnChange(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetValue(Value: Variant); function ControlGetValue: Variant; procedure ControlSetSorted(Value: Boolean); procedure ControlSetItems(Value: TStrings); function ControlGetItems: TStrings; procedure ControlSetColumns(Value: Integer); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); //IJvDynControlDevExpCx procedure ControlSetCxProperties(Value: TCxDynControlWrapper); end; TJvDynControlCxDBListBox = class(TcxDBListBox, IUnknown, IJvDynControl, IJvDynControlDevExpCx, IJvDynControlData, IJvDynControlItems, IJvDynControlDblClick, IJvDynControlDatabase) public procedure ControlSetDefaultProperties; procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetHint(const Value: string); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnChange(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetValue(Value: Variant); function ControlGetValue: Variant; procedure ControlSetSorted(Value: Boolean); procedure ControlSetItems(Value: TStrings); function ControlGetItems: TStrings; procedure ControlSetOnDblClick(Value: TNotifyEvent); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); //IJvDynControlDevExpCx procedure ControlSetCxProperties(Value: TCxDynControlWrapper); end; TJvDynControlCxDBComboBox = class(TcxDBComboBox, IUnknown, IJvDynControl, IJvDynControlDevExpCx, IJvDynControlData, IJvDynControlItems, IJvDynControlComboBox, IJvDynControlDatabase) public procedure ControlSetDefaultProperties; procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetHint(const Value: string); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnChange(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetValue(Value: Variant); function ControlGetValue: Variant; procedure ControlSetSorted(Value: Boolean); procedure ControlSetItems(Value: TStrings); function ControlGetItems: TStrings; procedure ControlSetNewEntriesAllowed(Value: Boolean); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); //IJvDynControlDevExpCx procedure ControlSetCxProperties(Value: TCxDynControlWrapper); end; TJvDynControlCxDBImage = class(TcxDBImage, IUnknown, IJvDynControl, IJvDynControlDevExpCx, IJvDynControlImage, IJvDynControlDatabase) public procedure ControlSetDefaultProperties; procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetHint(const Value: string); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetAutoSize(Value: Boolean); procedure ControlSetIncrementalDisplay(Value: Boolean); procedure ControlSetCenter(Value: Boolean); procedure ControlSetProportional(Value: Boolean); procedure ControlSetStretch(Value: Boolean); procedure ControlSetTransparent(Value: Boolean); procedure ControlSetPicture(Value: TPicture); procedure ControlSetGraphic(Value: TGraphic); function ControlGetPicture: TPicture; //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); //IJvDynControlDevExpCx procedure ControlSetCxProperties(Value: TCxDynControlWrapper); end; TJvDynControlCxDBText = class(TcxDBTextEdit, IUnknown, IJvDynControl, IJvDynControlDevExpCx, IJvDynControlDatabase) public procedure ControlSetDefaultProperties; procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetHint(const Value: string); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); //IJvDynControlDevExpCx procedure ControlSetCxProperties(Value: TCxDynControlWrapper); end; TJvDynControlCxDBNavigator = class(TcxDBNavigator, IUnknown, IJvDynControl, IJvDynControlDevExpCx, IJvDynControlDatabase) public procedure ControlSetDefaultProperties; procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetHint(const Value: string); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); //IJvDynControlDevExpCx procedure ControlSetCxProperties(Value: TCxDynControlWrapper); end; TJvDynControlCxDBDateTimeEdit = class(TcxDBDateEdit, IUnknown, IJvDynControl, IJvDynControlData, IJvDynControlDevExpCx, IJvDynControlDate, IJvDynControlReadOnly, IJvDynControlDatabase) public procedure ControlSetDefaultProperties; procedure ControlSetReadOnly(Value: Boolean); procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnChange(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetHint(const Value: string); procedure ControlSetValue(Value: Variant); function ControlGetValue: Variant; // IJvDynControlDate procedure ControlSetMinDate(Value: TDateTime); procedure ControlSetMaxDate(Value: TDateTime); procedure ControlSetFormat(const Value: string); procedure ControlSetCxProperties(Value: TCxDynControlWrapper); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); end; TJvDynControlCxDBDateEdit = class(TcxDBDateEdit, IUnknown, IJvDynControl, IJvDynControlData, IJvDynControlDevExpCx, IJvDynControlDate, IJvDynControlReadOnly, IJvDynControlDatabase) public procedure ControlSetDefaultProperties; procedure ControlSetReadOnly(Value: Boolean); procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnChange(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetHint(const Value: string); procedure ControlSetValue(Value: Variant); function ControlGetValue: Variant; // IJvDynControlDate procedure ControlSetMinDate(Value: TDateTime); procedure ControlSetMaxDate(Value: TDateTime); procedure ControlSetFormat(const Value: string); procedure ControlSetCxProperties(Value: TCxDynControlWrapper); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); end; TJvDynControlCxDBTimeEdit = class(TcxDBTimeEdit, IUnknown, IJvDynControl, IJvDynControlData, IJvDynControlDevExpCx, IJvDynControlTime, IJvDynControlReadOnly, IJvDynControlDatabase) public procedure ControlSetDefaultProperties; procedure ControlSetReadOnly(Value: Boolean); procedure ControlSetCaption(const Value: string); procedure ControlSetTabOrder(Value: Integer); procedure ControlSetOnEnter(Value: TNotifyEvent); procedure ControlSetOnExit(Value: TNotifyEvent); procedure ControlSetOnChange(Value: TNotifyEvent); procedure ControlSetOnClick(Value: TNotifyEvent); procedure ControlSetHint(const Value: string); procedure ControlSetValue(Value: Variant); function ControlGetValue: Variant; procedure ControlSetCxProperties(Value: TCxDynControlWrapper); procedure ControlSetFormat(const Value: string); //IJvDynControlDatabase procedure ControlSetDataSource(Value: TDataSource); function ControlGetDataSource: TDataSource; procedure ControlSetDataField(const Value: string); function ControlGetDataField: string; procedure ControlSetAnchors(Value: TAnchors); end; function DynControlEngineCxDB: TJvDynControlEngineDB; procedure SetDefaultDynControlEngineDBDevExp; {$ENDIF USE_3RDPARTY_DEVEXPRESS_CXEDITOR} {$IFDEF UNITVERSIONING} const UnitVersioning: TUnitVersionInfo = ( RCSfile: '$URL: https://jvcl.svn.sourceforge.net/svnroot/jvcl/tags/JVCL3_39/run/JvDynControlEngineDevExpCxDB.pas $'; Revision: '$Revision: 12563 $'; Date: '$Date: 2009-10-20 01:55:49 +0200 (mar., 20 oct. 2009) $'; LogPath: 'JVCL\run' ); {$ENDIF UNITVERSIONING} implementation uses Variants, SysUtils, TypInfo, {$IFDEF USE_3RDPARTY_DEVEXPRESS_CXEDITOR} cxTextEdit, cxMaskEdit, cxRadioGroup, cxDropDownEdit, cxDBRichEdit, cxEdit, cxTimeEdit, cxDBLookupComboBox, cxMemo, cxCheckbox, cxGridTableView, cxGridCustomView, cxGrid, cxGridCustomTableView, cxGridDBDataDefinitions, {$ENDIF USE_3RDPARTY_DEVEXPRESS_CXEDITOR} JvDynControlEngineTools, JvConsts, JvJCLUtils; {$IFDEF USE_3RDPARTY_DEVEXPRESS_CXEDITOR} var IntDynControlEngineCxDB: TJvDynControlEngineDB = nil; //=== { TJvDynControlCxDBEdit } ============================================== procedure TJvDynControlCxDBEdit.ControlSetDefaultProperties; begin end; procedure TJvDynControlCxDBEdit.ControlSetReadOnly(Value: Boolean); begin Properties.ReadOnly := Value; end; procedure TJvDynControlCxDBEdit.ControlSetCaption(const Value: string); begin end; procedure TJvDynControlCxDBEdit.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBEdit.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBEdit.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBEdit.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBEdit.ControlSetOnChange(Value: TNotifyEvent); begin Properties.OnChange := Value; end; procedure TJvDynControlCxDBEdit.ControlSetOnClick(Value: TNotifyEvent); begin end; procedure TJvDynControlCxDBEdit.ControlSetValue(Value: Variant); begin Text := Value; end; function TJvDynControlCxDBEdit.ControlGetValue: Variant; begin Result := Text; end; procedure TJvDynControlCxDBEdit.ControlSetPasswordChar(Value: Char); begin if Value <> #0 then Properties.EchoMode := eemPassword else Properties.EchoMode := eemNormal; end; procedure TJvDynControlCxDBEdit.ControlSetEditMask(const Value: string); begin //EditMask := Value; end; procedure TJvDynControlCxDBEdit.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBEdit.ControlGetDataSource: TDataSource; begin Result := DataBinding.DataSource; end; procedure TJvDynControlCxDBEdit.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBEdit.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBEdit.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; procedure TJvDynControlCxDBEdit.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; //=== { TJvDynControlCxDBButtonEdit } ======================================== constructor TJvDynControlCxDBButtonEdit.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TJvDynControlCxDBButtonEdit.Destroy; begin inherited Destroy; end; procedure TJvDynControlCxDBButtonEdit.IntOnButtonClick(Sender: TObject; AButtonIndex: Integer); begin if Assigned(FIntOnButtonClick) then FIntOnButtonClick(Sender); end; procedure TJvDynControlCxDBButtonEdit.ControlSetDefaultProperties; begin Properties.OnButtonClick := IntOnButtonClick; Properties.MaskKind := emkStandard; end; procedure TJvDynControlCxDBButtonEdit.ControlSetReadOnly(Value: Boolean); begin Properties.ReadOnly := Value; end; procedure TJvDynControlCxDBButtonEdit.ControlSetCaption(const Value: string); begin end; procedure TJvDynControlCxDBButtonEdit.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBButtonEdit.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBButtonEdit.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBButtonEdit.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBButtonEdit.ControlSetOnChange(Value: TNotifyEvent); begin Properties.OnChange := Value; end; procedure TJvDynControlCxDBButtonEdit.ControlSetOnClick(Value: TNotifyEvent); begin OnClick := Value; end; procedure TJvDynControlCxDBButtonEdit.ControlSetValue(Value: Variant); begin Text := Value; end; function TJvDynControlCxDBButtonEdit.ControlGetValue: Variant; begin Result := Text; end; procedure TJvDynControlCxDBButtonEdit.ControlSetPasswordChar(Value: Char); begin if Value <> #0 then Properties.EchoMode := eemPassword else Properties.EchoMode := eemNormal; end; procedure TJvDynControlCxDBButtonEdit.ControlSetEditMask(const Value: string); begin //FEditControl.EditMask := Value; end; procedure TJvDynControlCxDBButtonEdit.ControlSetOnButtonClick(Value: TNotifyEvent); begin FIntOnButtonClick := Value; end; procedure TJvDynControlCxDBButtonEdit.ControlSetButtonCaption(const Value: string); begin Properties.Buttons[0].Caption := Value; end; procedure TJvDynControlCxDBButtonEdit.ControlSetGlyph(Value: TBitmap); begin Properties.Buttons[0].Glyph.Assign(Value); end; procedure TJvDynControlCxDBButtonEdit.ControlSetNumGlyphs(Value: Integer); begin end; procedure TJvDynControlCxDBButtonEdit.ControlSetLayout(Value: TButtonLayout); begin end; procedure TJvDynControlCxDBButtonEdit.ControlSetDefault(Value: Boolean); begin end; procedure TJvDynControlCxDBButtonEdit.ControlSetCancel(Value: Boolean); begin end; procedure TJvDynControlCxDBButtonEdit.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBButtonEdit.ControlGetDataSource: TDataSource; begin Result := Databinding.DataSource; end; procedure TJvDynControlCxDBButtonEdit.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBButtonEdit.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBButtonEdit.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; procedure TJvDynControlCxDBButtonEdit.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; //=== { TJvDynControlCxDBFileNameEdit } ====================================== constructor TJvDynControlCxDBFileNameEdit.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TJvDynControlCxDBFileNameEdit.Destroy; begin inherited Destroy; end; procedure TJvDynControlCxDBFileNameEdit.DefaultOnButtonClick(Sender: TObject); begin case FDialogKind of jdkOpen: with TOpenDialog.Create(Self) do try Options := FDialogOptions; Title := FDialogTitle; Filter := FFilter; FilterIndex := FFilterIndex; InitialDir := FInitialDir; DefaultExt := FDefaultExt; FileName := ControlGetValue; if Execute then ControlSetValue(FileName); finally Free; end; jdkOpenPicture: with TOpenPictureDialog.Create(Self) do try Options := FDialogOptions; Title := FDialogTitle; Filter := FFilter; FilterIndex := FFilterIndex; InitialDir := FInitialDir; DefaultExt := FDefaultExt; FileName := ControlGetValue; if Execute then ControlSetValue(FileName); finally Free; end; jdkSave: with TSaveDialog.Create(Self) do try Options := FDialogOptions; Title := FDialogTitle; Filter := FFilter; FilterIndex := FFilterIndex; InitialDir := FInitialDir; DefaultExt := FDefaultExt; FileName := ControlGetValue; if Execute then ControlSetValue(FileName); finally Free; end; jdkSavePicture: with TSavePictureDialog.Create(Self) do try Options := FDialogOptions; Title := FDialogTitle; Filter := FFilter; FilterIndex := FFilterIndex; InitialDir := FInitialDir; DefaultExt := FDefaultExt; FileName := ControlGetValue; if Execute then ControlSetValue(FileName); finally Free; end; end; if CanFocus then SetFocus; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetDefaultProperties; begin Caption := ' '; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetReadOnly(Value: Boolean); begin Properties.ReadOnly := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetCaption(const Value: string); begin end; procedure TJvDynControlCxDBFileNameEdit.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetOnChange(Value: TNotifyEvent); begin Properties.OnChange := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetOnClick(Value: TNotifyEvent); begin end; procedure TJvDynControlCxDBFileNameEdit.ControlSetValue(Value: Variant); begin Text := Value; end; function TJvDynControlCxDBFileNameEdit.ControlGetValue: Variant; begin Result := Text; end; // IJvDynControlFileName procedure TJvDynControlCxDBFileNameEdit.ControlSetInitialDir(const Value: string); begin FInitialDir := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetDefaultExt(const Value: string); begin FDefaultExt := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetDialogTitle(const Value: string); begin FDialogTitle := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetDialogOptions(Value: TOpenOptions); begin FDialogOptions := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetFilter(const Value: string); begin FFilter := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetFilterIndex(Value: Integer); begin FFilterIndex := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetDialogKind(Value: TJvDynControlFileNameDialogKind); begin FDialogKind := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBFileNameEdit.ControlGetDataSource: TDataSource; begin Result := Databinding.DataSource; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBFileNameEdit.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; procedure TJvDynControlCxDBFileNameEdit.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; //=== { TJvDynControlCxDBDirectoryEdit } ===================================== constructor TJvDynControlCxDBDirectoryEdit.Create(AOwner: TComponent); begin inherited Create(AOwner); end; destructor TJvDynControlCxDBDirectoryEdit.Destroy; begin inherited Destroy; end; procedure TJvDynControlCxDBDirectoryEdit.DefaultOnButtonClick(Sender: TObject); var Opt: TSelectDirOpts; Dir: string; begin Dir := ControlGetValue; if Dir = '' then if FInitialDir <> '' then Dir := FInitialDir else Dir := PathDelim; if not DirectoryExists(Dir) then Dir := PathDelim; if SelectDirectory(Dir, Opt, HelpContext) then ControlSetValue(Dir); if CanFocus then SetFocus; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetDefaultProperties; begin Self.Caption := ' '; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetReadOnly(Value: Boolean); begin Properties.ReadOnly := Value; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetCaption(const Value: string); begin end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetOnChange(Value: TNotifyEvent); begin Properties.OnChange := Value; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetOnClick(Value: TNotifyEvent); begin end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetValue(Value: Variant); begin Text := Value; end; function TJvDynControlCxDBDirectoryEdit.ControlGetValue: Variant; begin Result := Text; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetInitialDir(const Value: string); begin FInitialDir := Value; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetDialogTitle(const Value: string); begin FDialogTitle := Value; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetDialogOptions(Value: TSelectDirOpts); begin FDialogOptions := Value; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBDirectoryEdit.ControlGetDataSource: TDataSource; begin Result := Databinding.DataSource; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBDirectoryEdit.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; procedure TJvDynControlCxDBDirectoryEdit.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; //=== { TJvDynControlCxDBCheckBox } ========================================== procedure TJvDynControlCxDBCheckBox.ControlSetDefaultProperties; begin end; procedure TJvDynControlCxDBCheckBox.ControlSetCaption(const Value: string); begin Caption := Value; end; procedure TJvDynControlCxDBCheckBox.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBCheckBox.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBCheckBox.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBCheckBox.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBCheckBox.ControlSetOnChange(Value: TNotifyEvent); begin OnClick := Value; end; procedure TJvDynControlCxDBCheckBox.ControlSetOnClick(Value: TNotifyEvent); begin OnClick := Value; end; procedure TJvDynControlCxDBCheckBox.ControlSetValue(Value: Variant); begin Checked := JvDynControlVariantToBoolean(Value); end; function TJvDynControlCxDBCheckBox.ControlGetValue: Variant; begin Result := Checked; end; procedure TJvDynControlCxDBCheckBox.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBCheckBox.ControlGetDataSource: TDataSource; begin Result := DataBinding.DataSource; end; procedure TJvDynControlCxDBCheckBox.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBCheckBox.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBCheckBox.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; procedure TJvDynControlCxDBCheckBox.ControlSetValueChecked(Value: Variant); begin Properties.ValueChecked := Value; end; procedure TJvDynControlCxDBCheckBox.ControlSetValueUnChecked(Value: Variant); begin Properties.ValueUnChecked := Value; end; procedure TJvDynControlCxDBCheckBox.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; //=== { TJvDynControlCxDBMemo } ============================================== procedure TJvDynControlCxDBMemo.ControlSetDefaultProperties; begin Properties.ScrollBars := ssBoth; Properties.WantReturns := True; Properties.WantTabs := True; end; procedure TJvDynControlCxDBMemo.ControlSetReadOnly(Value: Boolean); begin Properties.ReadOnly := Value; end; procedure TJvDynControlCxDBMemo.ControlSetCaption(const Value: string); begin end; procedure TJvDynControlCxDBMemo.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBMemo.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBMemo.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBMemo.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBMemo.ControlSetOnChange(Value: TNotifyEvent); begin Properties.OnChange := Value; end; procedure TJvDynControlCxDBMemo.ControlSetOnClick(Value: TNotifyEvent); begin OnClick := Value; end; procedure TJvDynControlCxDBMemo.ControlSetValue(Value: Variant); begin Text := Value; end; function TJvDynControlCxDBMemo.ControlGetValue: Variant; begin Result := Text; end; procedure TJvDynControlCxDBMemo.ControlSetSorted(Value: Boolean); begin end; procedure TJvDynControlCxDBMemo.ControlSetItems(Value: TStrings); begin Lines.Assign(Value); end; function TJvDynControlCxDBMemo.ControlGetItems: TStrings; begin Result := Lines; end; procedure TJvDynControlCxDBMemo.ControlSetWantTabs(Value: Boolean); begin Properties.WantTabs := Value; end; procedure TJvDynControlCxDBMemo.ControlSetWantReturns(Value: Boolean); begin Properties.WantReturns := Value; end; procedure TJvDynControlCxDBMemo.ControlSetWordWrap(Value: Boolean); begin Properties.WordWrap := Value; end; procedure TJvDynControlCxDBMemo.ControlSetScrollBars(Value: TScrollStyle); begin ScrollBars := Value; end; procedure TJvDynControlCxDBMemo.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBMemo.ControlGetDataSource: TDataSource; begin Result := DataBinding.DataSource; end; procedure TJvDynControlCxDBMemo.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBMemo.ControlGetDataField: string; begin Result := Databinding.DataField; end; function TJvDynControlCxDBMemo.ControlGetFont: TFont; begin Result := Font; end; procedure TJvDynControlCxDBMemo.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; procedure TJvDynControlCxDBMemo.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; procedure TJvDynControlCxDBMemo.ControlSetFont(Value: TFont); begin Font.Assign(Value); end; //=== { TJvDynControlCxDBRadioGroup } ======================================== constructor TJvDynControlCxDBRadioGroup.Create(AOwner: TComponent); begin inherited Create(AOwner); FItems := TStringList.Create; end; destructor TJvDynControlCxDBRadioGroup.Destroy; begin FItems.Free; inherited Destroy; end; procedure TJvDynControlCxDBRadioGroup.ControlSetDefaultProperties; begin end; procedure TJvDynControlCxDBRadioGroup.ControlSetCaption(const Value: string); begin Caption := Value; end; procedure TJvDynControlCxDBRadioGroup.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBRadioGroup.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBRadioGroup.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBRadioGroup.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBRadioGroup.ControlSetOnChange(Value: TNotifyEvent); begin OnClick := Value; end; procedure TJvDynControlCxDBRadioGroup.ControlSetOnClick(Value: TNotifyEvent); begin OnClick := Value; end; procedure TJvDynControlCxDBRadioGroup.ControlSetValue(Value: Variant); var I: Integer; begin if VarIsInt(Value) then ItemIndex := Value else begin ItemIndex := -1; for I := 0 to Properties.Items.Count - 1 do if TcxRadioGroupItem(Properties.Items[I]).Caption = Value then begin ItemIndex := I; Break; end; end; end; function TJvDynControlCxDBRadioGroup.ControlGetValue: Variant; begin Result := ItemIndex; end; procedure TJvDynControlCxDBRadioGroup.ControlSetSorted(Value: Boolean); begin end; procedure TJvDynControlCxDBRadioGroup.ControlSetItems(Value: TStrings); var I: Integer; Item: TcxRadioGroupItem; begin FItems.Assign(Value); Properties.Items.Clear; for I := 0 to Value.Count - 1 do begin Item := TcxRadioGroupItem(Properties.Items.Add); Item.Caption := Value[I]; end; end; function TJvDynControlCxDBRadioGroup.ControlGetItems: TStrings; begin Result := FItems; end; procedure TJvDynControlCxDBRadioGroup.ControlSetColumns(Value: Integer); begin Properties.Columns := Value; end; procedure TJvDynControlCxDBRadioGroup.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBRadioGroup.ControlGetDataSource: TDataSource; begin Result := DataBinding.DataSource; end; procedure TJvDynControlCxDBRadioGroup.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBRadioGroup.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBRadioGroup.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; procedure TJvDynControlCxDBRadioGroup.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; //=== { TJvDynControlCxDBListBox } =========================================== procedure TJvDynControlCxDBListBox.ControlSetDefaultProperties; begin end; procedure TJvDynControlCxDBListBox.ControlSetCaption(const Value: string); begin end; procedure TJvDynControlCxDBListBox.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBListBox.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBListBox.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBListBox.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBListBox.ControlSetOnChange(Value: TNotifyEvent); begin // Properties.OnChange := Value; end; procedure TJvDynControlCxDBListBox.ControlSetOnClick(Value: TNotifyEvent); begin OnClick := Value; end; procedure TJvDynControlCxDBListBox.ControlSetValue(Value: Variant); begin if VarIsInt(Value) then ItemIndex := Value else ItemIndex := Items.IndexOf(Value); end; function TJvDynControlCxDBListBox.ControlGetValue: Variant; begin Result := ItemIndex; end; procedure TJvDynControlCxDBListBox.ControlSetSorted(Value: Boolean); begin Sorted := Value; end; procedure TJvDynControlCxDBListBox.ControlSetItems(Value: TStrings); begin Items.Assign(Value); end; function TJvDynControlCxDBListBox.ControlGetItems: TStrings; begin Result := Items; end; procedure TJvDynControlCxDBListBox.ControlSetOnDblClick(Value: TNotifyEvent); begin OnDblClick := Value; end; procedure TJvDynControlCxDBListBox.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBListBox.ControlGetDataSource: TDataSource; begin Result := DataBinding.DataSource; end; procedure TJvDynControlCxDBListBox.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBListBox.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBListBox.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; procedure TJvDynControlCxDBListBox.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; //=== { TJvDynControlCxDBComboBox } ========================================== procedure TJvDynControlCxDBComboBox.ControlSetDefaultProperties; begin end; procedure TJvDynControlCxDBComboBox.ControlSetCaption(const Value: string); begin end; procedure TJvDynControlCxDBComboBox.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBComboBox.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBComboBox.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBComboBox.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBComboBox.ControlSetOnChange(Value: TNotifyEvent); begin Properties.OnChange := Value; end; procedure TJvDynControlCxDBComboBox.ControlSetOnClick(Value: TNotifyEvent); begin OnClick := Value; end; procedure TJvDynControlCxDBComboBox.ControlSetValue(Value: Variant); begin Text := Value; end; function TJvDynControlCxDBComboBox.ControlGetValue: Variant; begin Result := Text; end; procedure TJvDynControlCxDBComboBox.ControlSetSorted(Value: Boolean); begin Properties.Sorted := Value; end; procedure TJvDynControlCxDBComboBox.ControlSetItems(Value: TStrings); begin Properties.Items.Assign(Value); end; function TJvDynControlCxDBComboBox.ControlGetItems: TStrings; begin Result := Properties.Items; end; procedure TJvDynControlCxDBComboBox.ControlSetNewEntriesAllowed(Value: Boolean); begin if Value then Properties.DropDownListStyle := lsEditList else Properties.DropDownListStyle := lsEditFixedList; end; procedure TJvDynControlCxDBComboBox.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBComboBox.ControlGetDataSource: TDataSource; begin Result := DataBinding.DataSource; end; procedure TJvDynControlCxDBComboBox.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBComboBox.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBComboBox.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; procedure TJvDynControlCxDBComboBox.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; //=== { TJvDynControlCxDBImage } ============================================= procedure TJvDynControlCxDBImage.ControlSetDefaultProperties; begin end; procedure TJvDynControlCxDBImage.ControlSetCaption(const Value: string); begin Caption := Value; end; procedure TJvDynControlCxDBImage.ControlSetTabOrder(Value: Integer); begin // TabOrder := Value; end; procedure TJvDynControlCxDBImage.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBImage.ControlSetOnEnter(Value: TNotifyEvent); begin // OnEnter := Value; end; procedure TJvDynControlCxDBImage.ControlSetOnExit(Value: TNotifyEvent); begin // OnExit := Value; end; procedure TJvDynControlCxDBImage.ControlSetOnClick(Value: TNotifyEvent); begin OnClick := Value; end; procedure TJvDynControlCxDBImage.ControlSetAutoSize(Value: Boolean); begin AutoSize := Value; end; procedure TJvDynControlCxDBImage.ControlSetIncrementalDisplay(Value: Boolean); begin // IncrementalDisplay := Value; end; procedure TJvDynControlCxDBImage.ControlSetCenter(Value: Boolean); begin Properties.Center := Value; end; procedure TJvDynControlCxDBImage.ControlSetProportional(Value: Boolean); begin // Proportional := Value; end; procedure TJvDynControlCxDBImage.ControlSetStretch(Value: Boolean); begin Properties.Stretch := Value; end; procedure TJvDynControlCxDBImage.ControlSetTransparent(Value: Boolean); begin // Transparent := Value; end; procedure TJvDynControlCxDBImage.ControlSetPicture(Value: TPicture); begin Picture.Assign(Value); end; procedure TJvDynControlCxDBImage.ControlSetGraphic(Value: TGraphic); begin Picture.Assign(Value); end; function TJvDynControlCxDBImage.ControlGetPicture: TPicture; begin Result := Picture; end; procedure TJvDynControlCxDBImage.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBImage.ControlGetDataSource: TDataSource; begin Result := DataBinding.DataSource; end; procedure TJvDynControlCxDBImage.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBImage.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBImage.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; procedure TJvDynControlCxDBImage.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; //=== { TJvDynControlCxDBText } ============================================== procedure TJvDynControlCxDBText.ControlSetDefaultProperties; begin end; procedure TJvDynControlCxDBText.ControlSetCaption(const Value: string); begin end; procedure TJvDynControlCxDBText.ControlSetTabOrder(Value: Integer); begin end; procedure TJvDynControlCxDBText.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBText.ControlSetOnEnter(Value: TNotifyEvent); begin end; procedure TJvDynControlCxDBText.ControlSetOnExit(Value: TNotifyEvent); begin end; procedure TJvDynControlCxDBText.ControlSetOnClick(Value: TNotifyEvent); begin end; procedure TJvDynControlCxDBText.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBText.ControlGetDataSource: TDataSource; begin Result := DataBinding.DataSource; end; procedure TJvDynControlCxDBText.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBText.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBText.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; procedure TJvDynControlCxDBText.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; //=== { TJvDynControlCxDBNavigator } ========================================= procedure TJvDynControlCxDBNavigator.ControlSetDefaultProperties; begin end; procedure TJvDynControlCxDBNavigator.ControlSetCaption(const Value: string); begin end; procedure TJvDynControlCxDBNavigator.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBNavigator.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBNavigator.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBNavigator.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBNavigator.ControlSetOnClick(Value: TNotifyEvent); begin end; procedure TJvDynControlCxDBNavigator.ControlSetDataSource(Value: TDataSource); begin DataSource := Value; end; function TJvDynControlCxDBNavigator.ControlGetDataSource: TDataSource; begin Result := DataSource; end; procedure TJvDynControlCxDBNavigator.ControlSetDataField(const Value: string); begin end; function TJvDynControlCxDBNavigator.ControlGetDataField: string; begin Result := ''; end; procedure TJvDynControlCxDBNavigator.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; procedure TJvDynControlCxDBNavigator.ControlSetCxProperties(Value: TCxDynControlWrapper); begin LookAndFeel.Assign(Value.LookAndFeel); //Style.StyleController := Value.StyleController; end; //=== { TJvDynControlCxDBDateTimeEdit } ====================================== procedure TJvDynControlCxDBDateTimeEdit.ControlSetDefaultProperties; begin Properties.ShowTime := True; Properties.SaveTime := False; // Properties.InputKind := ikStandard; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetReadOnly(Value: Boolean); begin Properties.ReadOnly := Value; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetCaption(const Value: string); begin end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetOnChange(Value: TNotifyEvent); begin Properties.OnChange := Value; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetOnClick(Value: TNotifyEvent); begin end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetValue(Value: Variant); begin Text := Value; end; function TJvDynControlCxDBDateTimeEdit.ControlGetValue: Variant; begin Result := Text; end; // IJvDynControlDate procedure TJvDynControlCxDBDateTimeEdit.ControlSetMinDate(Value: TDateTime); begin Properties.MinDate := Value; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetMaxDate(Value: TDateTime); begin Properties.MaxDate := Value; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetFormat(const Value: string); begin // Format := Value; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBDateTimeEdit.ControlGetDataSource: TDataSource; begin Result := Databinding.DataSource; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBDateTimeEdit.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBDateTimeEdit.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; //=== { TJvDynControlCxDBDateEdit } ========================================== procedure TJvDynControlCxDBDateEdit.ControlSetDefaultProperties; begin Properties.ShowTime := False; Properties.SaveTime := False; // Properties.InputKind := ikStandard; end; procedure TJvDynControlCxDBDateEdit.ControlSetReadOnly(Value: Boolean); begin Properties.ReadOnly := Value; end; procedure TJvDynControlCxDBDateEdit.ControlSetCaption(const Value: string); begin end; procedure TJvDynControlCxDBDateEdit.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBDateEdit.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBDateEdit.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBDateEdit.ControlSetOnChange(Value: TNotifyEvent); begin Properties.OnChange := Value; end; procedure TJvDynControlCxDBDateEdit.ControlSetOnClick(Value: TNotifyEvent); begin end; procedure TJvDynControlCxDBDateEdit.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBDateEdit.ControlSetValue(Value: Variant); begin Text := Value; end; function TJvDynControlCxDBDateEdit.ControlGetValue: Variant; begin Result := Text; end; // IJvDynControlDate procedure TJvDynControlCxDBDateEdit.ControlSetMinDate(Value: TDateTime); begin Properties.MinDate := Value; end; procedure TJvDynControlCxDBDateEdit.ControlSetMaxDate(Value: TDateTime); begin Properties.MaxDate := Value; end; procedure TJvDynControlCxDBDateEdit.ControlSetFormat(const Value: string); begin // Format := Value; end; procedure TJvDynControlCxDBDateEdit.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; procedure TJvDynControlCxDBDateEdit.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBDateEdit.ControlGetDataSource: TDataSource; begin Result := Databinding.DataSource; end; procedure TJvDynControlCxDBDateEdit.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBDateEdit.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBDateEdit.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; //=== { TJvDynControlCxDBTimeEdit } ========================================== procedure TJvDynControlCxDBTimeEdit.ControlSetDefaultProperties; begin Properties.ShowDate := False; Properties.UseCtrlIncrement := True; end; procedure TJvDynControlCxDBTimeEdit.ControlSetReadOnly(Value: Boolean); begin Properties.ReadOnly := Value; end; procedure TJvDynControlCxDBTimeEdit.ControlSetCaption(const Value: string); begin end; procedure TJvDynControlCxDBTimeEdit.ControlSetTabOrder(Value: Integer); begin TabOrder := Value; end; procedure TJvDynControlCxDBTimeEdit.ControlSetOnEnter(Value: TNotifyEvent); begin OnEnter := Value; end; procedure TJvDynControlCxDBTimeEdit.ControlSetOnExit(Value: TNotifyEvent); begin OnExit := Value; end; procedure TJvDynControlCxDBTimeEdit.ControlSetOnChange(Value: TNotifyEvent); begin Properties.OnChange := Value; end; procedure TJvDynControlCxDBTimeEdit.ControlSetOnClick(Value: TNotifyEvent); begin end; procedure TJvDynControlCxDBTimeEdit.ControlSetHint(const Value: string); begin Hint := Value; end; procedure TJvDynControlCxDBTimeEdit.ControlSetValue(Value: Variant); begin Text := Value; end; function TJvDynControlCxDBTimeEdit.ControlGetValue: Variant; begin Result := Text; end; procedure TJvDynControlCxDBTimeEdit.ControlSetCxProperties(Value: TCxDynControlWrapper); begin Style.LookAndFeel.Assign(Value.LookAndFeel); Style.StyleController := Value.StyleController; end; procedure TJvDynControlCxDBTimeEdit.ControlSetFormat(const Value: string); begin // Properties.Format := Value; Properties.Use24HourFormat := (Pos('H', Value) > 0); if Pos('s', Value) > 0 then Properties.TimeFormat := tfHourMinSec else if Pos('m', Value) > 0 then Properties.TimeFormat := tfHourMin else Properties.TimeFormat := tfHour; end; procedure TJvDynControlCxDBTimeEdit.ControlSetDataSource(Value: TDataSource); begin Databinding.DataSource := Value; end; function TJvDynControlCxDBTimeEdit.ControlGetDataSource: TDataSource; begin Result := Databinding.DataSource; end; procedure TJvDynControlCxDBTimeEdit.ControlSetDataField(const Value: string); begin Databinding.DataField := Value; end; function TJvDynControlCxDBTimeEdit.ControlGetDataField: string; begin Result := Databinding.DataField; end; procedure TJvDynControlCxDBTimeEdit.ControlSetAnchors(Value: TAnchors); begin Anchors := Value; end; //=== { TJvDynControlEngineDevExpCxDB } ====================================== function DynControlEngineCxDB: TJvDynControlEngineDB; begin Result := IntDynControlEngineCxDB; end; procedure SetDefaultDynControlEngineDBDevExp; begin SetDefaultDynControlEngineDB(DynControlEngineCxDB); end; type TJvDynControlEngineDevExpCxDB = class(TJvDynControlEngineDB) private FCxProperties: TCxDynControlWrapper; protected procedure SetcxProperties(Value: TCxDynControlWrapper); procedure RegisterControls; override; procedure TransferGridItemToControl(AGridItem: TcxCustomGridTableItem; ADataSource: TDataSource; AControl: TWinControl; AOptions: TJvCreateDBFieldsOnControlOptions); public constructor Create; override; destructor Destroy; override; function CreateControlClass(AControlClass: TControlClass; AOwner: TComponent; AParentControl: TWinControl; AControlName: string): TControl; override; function CreateControlsFromCxGridViewOnControl(AGridView: TcxCustomGridTableView; AControl: TWinControl; AOptions: TJvCreateDBFieldsOnControlOptions): Boolean; function CreateControlsFromDataComponentOnControl(ADataComponent: TComponent; AControl: TWinControl; AOptions: TJvCreateDBFieldsOnControlOptions): Boolean; override; function GetDataSourceFromDataComponent(ADataComponent: TComponent): TDataSource; override; published property CxProperties: TCxDynControlWrapper read FCxProperties write FCxProperties; end; constructor TJvDynControlEngineDevExpCxDB.Create; begin inherited Create; FCxProperties := TCxDynControlWrapper.Create; end; destructor TJvDynControlEngineDevExpCxDB.Destroy; begin FreeAndNil(FCxProperties); inherited Destroy; end; procedure TJvDynControlEngineDevExpCxDB.SetcxProperties(Value: TCxDynControlWrapper); begin if Value is TCxDynControlWrapper then FCxProperties.LookAndFeel.Assign(Value.LookAndFeel); end; function TJvDynControlEngineDevExpCxDB.CreateControlClass(AControlClass: TControlClass; AOwner: TComponent; AParentControl: TWinControl; AControlName: string): TControl; var C: TControl; begin C := inherited CreateControlClass(AControlClass, AOwner, AParentControl, AControlName); if Supports(C, IJvDynControlDevExpCx) then with C as IJvDynControlDevExpCx do ControlSetCxProperties(cxProperties); Result := C; end; procedure TJvDynControlEngineDevExpCxDB.RegisterControls; begin RegisterControlType(jctDBText, TJvDynControlCxDBText); RegisterControlType(jctDBEdit, TJvDynControlCxDBEdit); RegisterControlType(jctDBImage, TJvDynControlCxDBImage); RegisterControlType(jctDBCheckBox, TJvDynControlCxDBCheckBox); RegisterControlType(jctDBComboBox, TJvDynControlCxDBComboBox); RegisterControlType(jctDBListBox, TJvDynControlCxDBListBox); RegisterControlType(jctDBRadioGroup, TJvDynControlCxDBRadioGroup); RegisterControlType(jctDBDateTimeEdit, TJvDynControlCxDBDateTimeEdit); RegisterControlType(jctDBTimeEdit, TJvDynControlCxDBTimeEdit); RegisterControlType(jctDBDateEdit, TJvDynControlCxDBDateEdit); //// RegisterControlType(jctDBCalculateEdit, TJvDynControlCxDBEdit); //// RegisterControlType(jctDBSpinEdit, TJvDynControlCxDBEdit); RegisterControlType(jctDBDirectoryEdit, TJvDynControlCxDBDirectoryEdit); RegisterControlType(jctDBFileNameEdit, TJvDynControlCxDBFileNameEdit); RegisterControlType(jctDBMemo, TJvDynControlCxDBMemo); RegisterControlType(jctDBButtonEdit, TJvDynControlCxDBButtonEdit); // RegisterControlType(jctDBGrid, TJvDynControlCxDBGrid); RegisterControlType(jctDBNavigator, TJvDynControlCxDBNavigator); end; function TJvDynControlEngineDevExpCxDB.GetDataSourceFromDataComponent(ADataComponent: TComponent): TDataSource; begin if not Assigned(ADataComponent) then Result := nil else if ADataComponent is TcxCustomGridTableView then if TcxCustomGridTableView(ADataComponent).DataController is TcxGridDBDataController then Result := TcxGridDBDataController(TcxCustomGridTableView(ADataComponent).DataController).DataSource else Result := nil else if (ADataComponent is TcxCustomGrid) and (TcxCustomGrid(ADataComponent).ActiveView is TcxCustomGridTableView) then if TcxCustomGridTableView(TcxCustomGrid(ADataComponent).ActiveView).DataController is TcxGridDBDataController then Result := TcxGridDBDataController(TcxCustomGridTableView(TcxCustomGrid(ADataComponent).ActiveView).DataController).DataSource else Result := nil else if ADataComponent is TcxDBTextEdit then Result := TcxDBTextEdit(ADataComponent).Databinding.DataSource else if ADataComponent is TcxDBNavigator then Result := TcxDBNavigator(ADataComponent).DataSource else if ADataComponent is TcxDBListbox then Result := TcxDBListbox(ADataComponent).Databinding.DataSource else if ADataComponent is TcxDBLookupComboBox then Result := TcxDBLookupComboBox(ADataComponent).Databinding.DataSource else if ADataComponent is TcxDBImage then Result := TcxDBImage(ADataComponent).Databinding.DataSource else if ADataComponent is TcxDBMemo then Result := TcxDBMemo(ADataComponent).Databinding.DataSource else if ADataComponent is TcxDBRadioGroup then Result := TcxDBRadioGroup(ADataComponent).Databinding.DataSource else if ADataComponent is TcxDBRichEdit then Result := TcxDBRichEdit(ADataComponent).Databinding.DataSource else if ADataComponent is TcxDBCheckBox then Result := TcxDBCheckBox(ADataComponent).Databinding.DataSource else Result := inherited GetDataSourceFromDataComponent(ADataComponent); end; type TAccesscxCustomGridTableItem = class(TcxCustomGridTableItem); TAccesscxCustomEdit = class(TcxCustomEdit); TAccessCustomControl = class(TCustomControl); procedure TJvDynControlEngineDevExpCxDB.TransferGridItemToControl(AGridItem: TcxCustomGridTableItem; ADataSource: TDataSource; AControl: TWinControl; AOptions: TJvCreateDBFieldsOnControlOptions); var Control: TWinControl; LabelControl: TWinControl; GridDataBinding: TcxGridItemDBDataBinding; begin if not (AGridItem is TcxGridColumn) or not (AGridItem.DataBinding is TcxGridItemDBDataBinding) then Exit; GridDataBinding := TcxGridItemDBDataBinding(AGridItem.DataBinding); if not Assigned(GridDataBinding.Field) then Exit; with AOptions do begin if TcxGridColumn(AGridItem).Visible or (TcxGridColumn(AGridItem).GroupIndex >= 0) or ShowInvisibleFields then begin if aGridItem.PropertiesClass = TcxMemoProperties then begin Control := TWinControl(CreateDBControl(jctDBMemo, AControl, AControl, '', aDataSource, GridDataBinding.Field.FieldName)); if Supports(Control, IJvDynControlMemo) and Assigned(TcxGridColumn(aGridItem).Properties) then with Control as IJvDynControlMemo do begin ControlSetScrollbars(TcxMemoProperties(TcxGridColumn(aGridItem).Properties).Scrollbars); ControlSetWantReturns(TcxMemoProperties(TcxGridColumn(aGridItem).Properties).WantReturns); ControlSetWantTabs(TcxMemoProperties(TcxGridColumn(aGridItem).Properties).WantTabs); ControlSetWordwrap(TcxMemoProperties(TcxGridColumn(aGridItem).Properties).WordWrap); end; end else if aGridItem.PropertiesClass = TcxCheckBoxProperties then begin Control := TWinControl(CreateDBControl(jctDBCheckBox, AControl, AControl, '', aDataSource, GridDataBinding.Field.FieldName)); if Supports(Control, IJvDynControlDBCheckBox) and Assigned(TcxGridColumn(aGridItem).Properties) then with Control as IJvDynControlDBCheckBox do begin ControlSetValueChecked(TcxCheckBoxProperties(TcxGridColumn(aGridItem).Properties).ValueChecked); ControlSetValueUnChecked(TcxCheckBoxProperties(TcxGridColumn(aGridItem).Properties).ValueUnChecked); end; end else if aGridItem.PropertiesClass = TcxComboBoxProperties then begin Control := TWinControl(CreateDBControl(jctDBCheckBox, AControl, AControl, '', aDataSource, GridDataBinding.Field.FieldName)); if Supports(Control, IJvDynControlDBCheckBox) and Assigned(TcxGridColumn(aGridItem).Properties) then with Control as IJvDynControlDBCheckBox do begin ControlSetValueChecked(TcxCheckBoxProperties(TcxGridColumn(aGridItem).Properties).ValueChecked); ControlSetValueUnChecked(TcxCheckBoxProperties(TcxGridColumn(aGridItem).Properties).ValueUnChecked); end; end else Control := CreateDBFieldControl(GridDataBinding.Field, AControl, AControl, '', ADataSource); if FieldDefaultWidth > 0 then Control.Width := FieldDefaultWidth else begin if UseFieldSizeForWidth then if GridDataBinding.Field.Size > 0 then Control.Width := TAccessCustomControl(AControl).Canvas.TextWidth('X') * GridDataBinding.Field.Size else if (aGridItem.PropertiesClass = TcxMemoProperties) and (FieldMaxWidth > 0) then Control.Width := FieldMaxWidth else else if GridDataBinding.Field.DisplayWidth > 0 then Control.Width := TAccessCustomControl(AControl).Canvas.TextWidth('X') * GridDataBinding.Field.DisplayWidth; if (FieldMaxWidth > 0) and (Control.Width > FieldMaxWidth) then Control.Width := FieldMaxWidth else if (FieldMinWidth > 0) and (Control.Width < FieldMinWidth) then Control.Width := FieldMinWidth end; if Assigned(TcxGridColumn(aGridItem).Properties) then if Supports(Control, IJvDynControlReadOnly) then with Control as IJvDynControlReadOnly do ControlSetReadOnly(TcxGridColumn(AGridItem).Properties.ReadOnly); if UseParentColorForReadOnly then // Use ParentColor when the field is ReadOnly if not ADataSource.DataSet.CanModify or GridDataBinding.Field.ReadOnly then if isPublishedProp(Control, 'ParentColor') then SetOrdProp(Control, 'ParentColor', Ord(True)); LabelControl := GetDynControlEngine.CreateLabelControlPanel(AControl, AControl, '', '&' + AGridItem.Caption, Control, LabelOnTop, LabelDefaultWidth); if FieldWidthStep > 0 then if (LabelControl.Width mod FieldWidthStep) <> 0 then LabelControl.Width := ((LabelControl.Width div FieldWidthStep) + 1) * FieldWidthStep; end; end; end; function TJvDynControlEngineDevExpCxDB.CreateControlsFromCxGridViewOnControl(AGridView: TcxCustomGridTableView; AControl: TWinControl; AOptions: TJvCreateDBFieldsOnControlOptions): Boolean; var I: Integer; CreateOptions: TJvCreateDBFieldsOnControlOptions; GridDataController: TcxGridDBDataController; begin Result := False; if not Assigned(AOptions) then CreateOptions := TJvCreateDBFieldsOnControlOptions.Create else CreateOptions := AOptions; try if tcxCustomGridView(AGridView).DataController is TcxGridDBDataController then GridDataController := TcxGridDBDataController(AGridView.DataController) else Exit; for I := 0 to AGridView.GroupedItemCount - 1 do TransferGridItemToControl(AGridView.GroupedItems[I], GridDataController.DataSource, AControl, CreateOptions); for I := 0 to AGridView.VisibleItemCount - 1 do TransferGridItemToControl(AGridView.VisibleItems[I], GridDataController.DataSource, AControl, CreateOptions); finally if not Assigned(AOptions) then CreateOptions.Free; end; Result := True; end; function TJvDynControlEngineDevExpCxDB.CreateControlsFromDataComponentOnControl(ADataComponent: TComponent; AControl: TWinControl; AOptions: TJvCreateDBFieldsOnControlOptions): Boolean; begin if Assigned(ADataComponent) then if (ADataComponent is TcxGrid) and (TcxGrid(ADataComponent).ActiveView is TcxCustomGridTableView) then Result := CreateControlsFromcxGridViewOnControl(TcxCustomGridTableView(TcxGrid(ADataComponent).ActiveView), AControl, AOptions) else if ADataComponent is TcxCustomGridTableView then Result := CreateControlsFromcxGridViewOnControl(TcxCustomGridTableView(ADataComponent), AControl, AOptions) else Result := inherited CreateControlsFromDataComponentOnControl(ADataComponent, AControl, AOptions) else Result := False; end; {$ENDIF USE_3RDPARTY_DEVEXPRESS_CXEDITOR} initialization {$IFDEF UNITVERSIONING} RegisterUnitVersion(HInstance, UnitVersioning); {$ENDIF UNITVERSIONING} {$IFDEF USE_3RDPARTY_DEVEXPRESS_CXEDITOR} IntDynControlEngineCxDB := TJvDynControlEngineDevExpCxDB.Create; SetDefaultDynControlEngineDB(IntDynControlEngineCxDB); {$ENDIF USE_3RDPARTY_DEVEXPRESS_CXEDITOR} finalization {$IFDEF USE_3RDPARTY_DEVEXPRESS_CXEDITOR} FreeAndNil(IntDynControlEngineCxDB); {$ENDIF USE_3RDPARTY_DEVEXPRESS_CXEDITOR} {$IFDEF UNITVERSIONING} UnregisterUnitVersion(HInstance); {$ENDIF UNITVERSIONING} end.