diff --git a/Concepts.ComponentInspector.dfm b/Concepts.ComponentInspector.dfm new file mode 100644 index 00000000..05eea823 --- /dev/null +++ b/Concepts.ComponentInspector.dfm @@ -0,0 +1,44 @@ +object frmComponentInspector: TfrmComponentInspector + Left = 0 + Top = 0 + BorderStyle = bsSizeToolWin + ClientHeight = 647 + ClientWidth = 392 + Color = clBtnFace + DoubleBuffered = True + DragKind = dkDock + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + Position = poDesigned + ScreenSnap = True + OnActivate = FormActivate + OnClose = FormClose + OnResize = FormResize + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object pnlMain: TPanel + Left = 0 + Top = 0 + Width = 392 + Height = 647 + Align = alClient + BevelOuter = bvNone + TabOrder = 0 + object cbxInspector: TComboBox + AlignWithMargins = True + Left = 3 + Top = 3 + Width = 386 + Height = 21 + Margins.Bottom = 0 + Align = alTop + TabOrder = 0 + OnChange = cbxInspectorChange + end + end +end diff --git a/Concepts.ComponentInspector.pas b/Concepts.ComponentInspector.pas new file mode 100644 index 00000000..77492352 --- /dev/null +++ b/Concepts.ComponentInspector.pas @@ -0,0 +1,301 @@ +{ + Copyright (C) 2013-2015 Tim Sinaeve tim.sinaeve@gmail.com + + Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +} + +unit Concepts.ComponentInspector; + +interface + +uses + Winapi.Windows, Winapi.Messages, + System.SysUtils, System.Variants, System.Classes, System.Contnrs, + System.TypInfo, + Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls, + Vcl.ExtCtrls, + + DDuce.Components.PropertyInspector; + +type + TfrmComponentInspector = class(TForm) + pnlMain : TPanel; + cbxInspector : TComboBox; + + procedure cbxInspectorChange(Sender: TObject); + procedure FormResize(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormActivate(Sender: TObject); + procedure FormShow(Sender: TObject); + + private + FInspector: TPropertyInspector; + + procedure CMDialogKey(var Msg: TCMDialogKey); message CM_DIALOGKEY; + + public + constructor Create( + AOwner : TComponent; + AObject : TPersistent + ); reintroduce; + + procedure CreatePropertyInspector; + + procedure AddComponentToInspector(AComponent: TPersistent); virtual; + procedure FocusComponentInInspector(AComponent: TPersistent); virtual; + end; + +procedure InspectComponent(AComponent : TComponent); + +procedure InspectObject(AObject : TPersistent); + +procedure InspectComponents(AComponent : TComponent); overload; + +procedure InspectApplicationComponents; + +procedure InspectComponents(AComponents : array of TComponent); overload; + +procedure InspectComponents(AComponents : TComponentList); overload; + +implementation + +{$R *.dfm} + +{$REGION 'interfaced routines'} +procedure InspectComponent(AComponent : TComponent); +var + InspectorForm : TfrmComponentInspector; +begin + if Assigned(AComponent) then + begin + InspectorForm := TfrmComponentInspector.Create(Application, AComponent); + InspectorForm.Show; + end + else + raise Exception.Create('No component Assigned'); +end; + +procedure InspectObject(AObject : TPersistent); +var + InspectorForm : TfrmComponentInspector; +begin + if Assigned(AObject) then + begin + InspectorForm := TfrmComponentInspector.Create(Application, AObject); + InspectorForm.Show; + end + else + raise Exception.Create('No component Assigned'); +end; + +procedure InspectComponents(AComponents : array of TComponent); +var + InspectorForm : TfrmComponentInspector; + I : Integer; +begin + if Length(AComponents) > 0 then + begin + InspectorForm := TfrmComponentInspector.Create(Application, AComponents[0]); + for I := 1 to High(AComponents) do + InspectorForm.AddComponentToInspector(AComponents[I]); + InspectorForm.Show; + InspectorForm.FocusComponentInInspector(AComponents[0]); + end + else + raise Exception.Create('Component array is empty'); +end; + +procedure InspectComponents(AComponents : TComponentList); +var + InspectorForm : TfrmComponentInspector; + I : Integer; +begin + if Assigned(AComponents) then + begin + if AComponents.Count > 0 then + begin + InspectorForm := TfrmComponentInspector.Create(Application, AComponents[0]); + for I := 1 to AComponents.Count - 1 do + InspectorForm.AddComponentToInspector(AComponents[I]); + InspectorForm.Show; + InspectorForm.FocusComponentInInspector(AComponents[0]); + end + end + else + raise Exception.Create('Componentlist not assigned'); +end; + +procedure InspectComponents(AComponent : TComponent); +var + CL : TComponentList; + I : Integer; +begin + CL := TComponentList.Create(False); + try + for I := 0 to AComponent.ComponentCount - 1 do + CL.Add(AComponent.Components[I]); + InspectComponents(CL); + finally + CL.Free; + end; +end; + +procedure InspectApplicationComponents; +var + CL : TComponentList; + I, J : Integer; +begin + CL := TComponentList.Create(False); + try + for I := 0 to Screen.FormCount - 1 do + for J := 0 to Screen.Forms[I].ComponentCount - 1 do + CL.Add(Screen.Forms[I].Components[J]); + + for I := 0 to Screen.DataModuleCount - 1 do + for J := 0 to Screen.DataModules[I].ComponentCount - 1 do + CL.Add(Screen.DataModules[I].Components[J]); + + InspectComponents(CL); + finally + CL.Free; + end; +end; +{$ENDREGION} + +{$REGION 'construction and destruction'} +constructor TfrmComponentInspector.Create(AOwner: TComponent; AObject: TPersistent); +begin + inherited Create(AOwner); + CreatePropertyInspector; + AddComponentToInspector(AObject); + FocusComponentInInspector(AObject); +end; +{$ENDREGION} + +{$REGION 'message handlers'} +procedure TfrmComponentInspector.CMDialogKey(var Msg: TCMDialogKey); +begin + if Msg.CharCode = VK_ESCAPE then + begin + ModalResult := mrCancel; + Close; + end + else + inherited; +end; +{$ENDREGION} + +{$REGION 'private methods'} +procedure TfrmComponentInspector.CreatePropertyInspector; +begin + FInspector := TPropertyInspector.Create(Self); + with FInspector do + begin + Parent := pnlMain; + AlignWithMargins := True; + Left := 3; + Top := 30; + Width := 386; + Height := 614; + PropKinds := [pkProperties, pkReadOnly]; + Splitter := 197; + Align := alBottom; + Anchors := [akLeft, akTop, akRight, akBottom]; + ParentShowHint := False; + ShowHint := True; + TabOrder := 0; + end; +end; +{$ENDREGION} + +{$REGION 'public methods'} +procedure TfrmComponentInspector.AddComponentToInspector( + AComponent: TPersistent); +var + S : string; + sName : string; + CI : TCollectionItem; +begin + if AComponent is TComponent then + begin + sName := TComponent(AComponent).Name; + if sName = '' then + sName := 'unnamed'; + S := Format('%s - %s', [sName, AComponent.ClassName]); + cbxInspector.Items.AddObject(S, AComponent); + end + else + if AComponent is TCollection then + begin + for CI in TCollection(AComponent) do + begin + S := Format('%s[%d]', [CI.ClassName, + (CI as TCollectionItem).Index]); + cbxInspector.Items.AddObject(S, CI); + end; + end + else + begin + S := Format('%s', [AComponent.ClassName]); + cbxInspector.Items.AddObject(S, AComponent); + end; +end; + +procedure TfrmComponentInspector.FocusComponentInInspector( + AComponent: TPersistent); +begin + cbxInspector.ItemIndex := cbxInspector.Items.IndexOfObject(AComponent); + cbxInspectorChange(nil); +end; +{$ENDREGION} + +{$REGION 'event handlers'} +procedure TfrmComponentInspector.cbxInspectorChange(Sender: TObject); +begin + FInspector.BeginUpdate; + try + FInspector.Clear; + if (cbxInspector.ItemIndex >= 0) and + Assigned(cbxInspector.Items.Objects[cbxInspector.ItemIndex]) then + FInspector.Add(cbxInspector.Items.Objects[cbxInspector.ItemIndex] as + TPersistent); + finally + FInspector.EndUpdate; + end; +end; + +procedure TfrmComponentInspector.FormActivate(Sender: TObject); +begin + FInspector.UpdateItems; +end; + +procedure TfrmComponentInspector.FormClose(Sender: TObject; + var Action: TCloseAction); +begin + Action := caFree; +end; + +procedure TfrmComponentInspector.FormResize(Sender: TObject); +begin + FInspector.Splitter := FInspector.ClientWidth div 2; +end; + +procedure TfrmComponentInspector.FormShow(Sender: TObject); +begin + if FInspector.ObjectCount > 0 then + FocusComponentInInspector(FInspector.Objects[0]); + Height := Screen.WorkAreaHeight; +end; +{$ENDREGION} + +end. diff --git a/Concepts.Factories.pas b/Concepts.Factories.pas index d6673165..51a10388 100644 --- a/Concepts.Factories.pas +++ b/Concepts.Factories.pas @@ -121,7 +121,9 @@ TConceptFactories = record const AName : string = '' ): TDBGrid; static; - class function CreateRandomContact: TContact; static; + class function CreateRandomContact( + ASpecial: Boolean = False + ): TContact; static; end; implementation @@ -434,6 +436,8 @@ class function TConceptFactories.CreateTreeViewPresenter(AOwner: TComponent; begin TVP := TTreeViewPresenter.Create(AOwner); TVP.TreeView := AVST; + TVP.SyncMode := True; + TVP.ListMode := False; InitializePresenter(TVP, ASource, ATemplate, AFilter); Result := TVP; end; @@ -484,16 +488,18 @@ class procedure TConceptFactories.FillListWithContacts(AList: IObjectList; ACount: Integer); var I : Integer; + B : Boolean; begin Guard.CheckNotNull(AList, 'AList'); AList.Clear; + B := ACount < 40000; for I := 0 to ACount - 1 do begin - AList.Add(CreateRandomContact); + AList.Add(CreateRandomContact(B)); end; end; -class function TConceptFactories.CreateRandomContact: TContact; +class function TConceptFactories.CreateRandomContact(ASpecial: Boolean = False): TContact; var C: TContact; begin @@ -502,7 +508,10 @@ class function TConceptFactories.CreateRandomContact: TContact; begin FirstName := RandomData.FirstName; LastName := RandomData.LastName; - CompanyName := RandomData.CompanyName; + if ASpecial then + CompanyName := RandomData.AlliteratedCompanyName + else + CompanyName := RandomData.CompanyName; Email := RandomData.Email(FirstName, LastName); Address := RandomData.Address; Number := RandomData.Number(100); @@ -525,7 +534,9 @@ class procedure TConceptFactories.InitializePresenter( for P in C.GetType(ASource.ElementType).GetProperties do begin with APresenter.ColumnDefinitions.Add(P.Name) do + begin ValuePropertyName := P.Name; + end; end; end; APresenter.UseColumnDefinitions := True; diff --git a/Concepts.MainForm.dfm b/Concepts.MainForm.dfm index 8696b4c0..bf7a3c39 100644 --- a/Concepts.MainForm.dfm +++ b/Concepts.MainForm.dfm @@ -22,8 +22,6 @@ object frmMain: TfrmMain Align = alClient BevelOuter = bvNone TabOrder = 0 - ExplicitWidth = 1008 - ExplicitHeight = 583 object edtFilter: TEdit AlignWithMargins = True Left = 3 @@ -41,7 +39,6 @@ object frmMain: TfrmMain OnChange = edtFilterChange OnKeyDown = edtFilterKeyDown OnKeyUp = edtFilterKeyUp - ExplicitWidth = 1002 end end object sbrMain: TStatusBar @@ -51,8 +48,6 @@ object frmMain: TfrmMain Height = 19 Panels = <> SimplePanel = True - ExplicitTop = 617 - ExplicitWidth = 1008 end object pnlButtons: TGridPanel Left = 0 @@ -91,8 +86,6 @@ object frmMain: TfrmMain Value = 100.000000000000000000 end> TabOrder = 2 - ExplicitTop = 583 - ExplicitWidth = 1008 object btnExecute: TButton AlignWithMargins = True Left = 260 @@ -106,8 +99,6 @@ object frmMain: TfrmMain Images = dmResources.imlMain ParentDoubleBuffered = False TabOrder = 0 - ExplicitLeft = 349 - ExplicitWidth = 326 end object btnClose: TButton AlignWithMargins = True @@ -122,8 +113,6 @@ object frmMain: TfrmMain Images = dmResources.imlMain ParentDoubleBuffered = False TabOrder = 1 - ExplicitLeft = 681 - ExplicitWidth = 323 end object btnExecuteModal: TButton AlignWithMargins = True @@ -139,7 +128,6 @@ object frmMain: TfrmMain Images = dmResources.imlMain ParentDoubleBuffered = False TabOrder = 2 - ExplicitWidth = 339 end end object aclMain: TActionList diff --git a/Concepts.Registration.pas b/Concepts.Registration.pas index 55b05b47..d4b91792 100644 --- a/Concepts.Registration.pas +++ b/Concepts.Registration.pas @@ -62,6 +62,7 @@ implementation Concepts.Spring.ObjectDataSet.Form, Concepts.Spring.Logging.Form, Concepts.Spring.Types.Form, + Concepts.Spring.Utils.Form, {$ENDIF} {$IFDEF ASYNCCALLS} @@ -165,13 +166,13 @@ class procedure TConcepts.RegisterSpringConcepts; 'Spring types', FCategoryColor ); -// ConceptManager.Register( -// TfrmSpringUtils, -// 'Utils', -// 'Spring', -// 'Utillity classes and routines', -// FCategoryColor -// ); + ConceptManager.Register( + TfrmSpringUtils, + 'Utils', + 'Spring', + 'Utillity classes and routines', + FCategoryColor + ); {$ENDIF} end; diff --git a/Concepts.XE5.dpr b/Concepts.XE5.dpr new file mode 100644 index 00000000..bfc0498e --- /dev/null +++ b/Concepts.XE5.dpr @@ -0,0 +1,323 @@ +program Concepts.XE5; + +{$I Concepts.inc} + +uses + Forms, + Vcl.Themes, + Vcl.Styles, + System.ImageList in 'Types\System.ImageList.pas', + AsyncCalls in 'Libraries\AsyncCalls\AsyncCalls.pas', + BTMemoryModule in 'Libraries\BTMemoryModule\BTMemoryModule.pas', + ChromeTabs in 'Libraries\TChromeTabs\Lib\ChromeTabs.pas', + ChromeTabsClasses in 'Libraries\TChromeTabs\Lib\ChromeTabsClasses.pas', + ChromeTabsControls in 'Libraries\TChromeTabs\Lib\ChromeTabsControls.pas', + ChromeTabsGlassForm in 'Libraries\TChromeTabs\Lib\ChromeTabsGlassForm.pas', + ChromeTabsLog in 'Libraries\TChromeTabs\Lib\ChromeTabsLog.pas', + ChromeTabsThreadTimer in 'Libraries\TChromeTabs\Lib\ChromeTabsThreadTimer.pas', + ChromeTabsTypes in 'Libraries\TChromeTabs\Lib\ChromeTabsTypes.pas', + ChromeTabsUtils in 'Libraries\TChromeTabs\Lib\ChromeTabsUtils.pas', + Concepts.AsyncCalls.Form in 'Forms\Concepts.AsyncCalls.Form.pas' {frmAsyncCalls}, + Concepts.BTMemoryModule.Form in 'Forms\Concepts.BTMemoryModule.Form.pas' {frmBTMemoryModule}, + Concepts.ChromeTabs.Form in 'Forms\Concepts.ChromeTabs.Form.pas' {frmChromeTabs}, + Concepts.ComponentInspectorTemplate.Form in 'Forms\Concepts.ComponentInspectorTemplate.Form.pas' {frmPropertyInspector}, + Concepts.DevExpress.cxEditors.Form in 'Forms\Concepts.DevExpress.cxEditors.Form.pas' {frmcxEditors}, + Concepts.DevExpress.cxGridViewPresenter.Form in 'Forms\Concepts.DevExpress.cxGridViewPresenter.Form.pas' {frmcxGridViewPresenter}, + Concepts.DSharp.Bindings.Form in 'Forms\Concepts.DSharp.Bindings.Form.pas' {frmBindings}, + Concepts.DSharp.TreeViewPresenter.Form in 'Forms\Concepts.DSharp.TreeViewPresenter.Form.pas' {frmTreeViewPresenter}, + Concepts.Factories in 'Concepts.Factories.pas', + Concepts.MainForm in 'Concepts.MainForm.pas' {frmMain}, + Concepts.Manager in 'Concepts.Manager.pas', + Concepts.Registration in 'Concepts.Registration.pas', + Concepts.Resources in 'Concepts.Resources.pas' {dmResources: TDataModule}, + Concepts.RTTEye.Form in 'Forms\Concepts.RTTEye.Form.pas' {frmRTTEye}, + Concepts.RTTEye.Templates in 'Types\Concepts.RTTEye.Templates.pas', + Concepts.Spring.Collections.Form in 'Forms\Concepts.Spring.Collections.Form.pas' {frmCollections}, + Concepts.Spring.Interception.Form in 'Forms\Concepts.Spring.Interception.Form.pas' {frmSpringInterception}, + Concepts.Spring.LazyInstantiation.Form in 'Forms\Concepts.Spring.LazyInstantiation.Form.pas' {frmLazyInstantiation}, + Concepts.Spring.Logging.Form in 'Forms\Concepts.Spring.Logging.Form.pas' {frmSpringLogging}, + Concepts.Spring.MultiCastEvents.ChildForm in 'Forms\Concepts.Spring.MultiCastEvents.ChildForm.pas' {frmMulticastEventsChild}, + Concepts.Spring.MultiCastEvents.Data in 'Forms\Concepts.Spring.MultiCastEvents.Data.pas', + Concepts.Spring.MultiCastEvents.Form in 'Forms\Concepts.Spring.MultiCastEvents.Form.pas' {frmMulticastEvents}, + Concepts.Spring.ObjectDataSet.Form in 'Forms\Concepts.Spring.ObjectDataSet.Form.pas' {frmObjectDataSet}, + Concepts.Spring.Types.Form in 'Forms\Concepts.Spring.Types.Form.pas' {frmSpringTypes}, + Concepts.Spring.Utils.Form in 'Forms\Concepts.Spring.Utils.Form.pas' {frmSpringUtils}, + Concepts.SQLBuilder4D.Form in 'Forms\Concepts.SQLBuilder4D.Form.pas' {frmSQLBuilder4D}, + Concepts.System.AnonymousMethods.Form in 'Forms\Concepts.System.AnonymousMethods.Form.pas' {frmAnonymousMethods}, + Concepts.System.InterfaceImplementationByAggregation.Form in 'Forms\Concepts.System.InterfaceImplementationByAggregation.Form.pas' {frmIterFaceImplementationByAggregation}, + Concepts.System.Libraries.Form in 'Forms\Concepts.System.Libraries.Form.pas' {frmLibraries}, + Concepts.System.LiveBindings.Form in 'Forms\Concepts.System.LiveBindings.Form.pas' {frmLiveBindings}, + Concepts.System.RegularExpressions.Form in 'Forms\Concepts.System.RegularExpressions.Form.pas' {frmRegularExpressions}, + Concepts.System.RTTI.Form in 'Forms\Concepts.System.RTTI.Form.pas' {frmRTTI}, + Concepts.System.Threading.Form in 'Forms\Concepts.System.Threading.Form.pas' {frmThreading}, + Concepts.System.Threads.Form in 'Forms\Concepts.System.Threads.Form.pas' {frmThreads}, + Concepts.System.Variants.Form in 'Forms\Concepts.System.Variants.Form.pas' {frmVariants}, + Concepts.System.VirtualInterface.Form in 'Forms\Concepts.System.VirtualInterface.Form.pas' {frmVirtualInterfaceDemo}, + Concepts.System.VirtualMethodInterceptor.Form in 'Forms\Concepts.System.VirtualMethodInterceptor.Form.pas' {frmVirtualMethodInterceptor}, + Concepts.Types.Contact in 'Types\Concepts.Types.Contact.pas', + Concepts.Types.ValidationRules in 'Types\Concepts.Types.ValidationRules.pas', + Concepts.Utils in 'Concepts.Utils.pas', + Concepts.Vcl.GridPanels.Form in 'Forms\Concepts.Vcl.GridPanels.Form.pas' {frmGridPanels}, + Concepts.WinApi.LockPaint.Form in 'Forms\Concepts.WinApi.LockPaint.Form.pas' {frmLockPaint}, + DDuce.Components.DBGridView in 'Libraries\DDuce\Components\DDuce.Components.DBGridView.pas', + DDuce.Components.GridView in 'Libraries\DDuce\Components\DDuce.Components.GridView.pas', + DDuce.Components.Inspector in 'Libraries\DDuce\Components\DDuce.Components.Inspector.pas', + DDuce.Components.LogTree in 'Libraries\DDuce\Components\DDuce.Components.LogTree.pas', + DDuce.Components.PropertyInspector in 'Libraries\DDuce\Components\DDuce.Components.PropertyInspector.pas', + DDuce.Components.PropertyInspector.CollectionEditor in 'Libraries\DDuce\Components\DDuce.Components.PropertyInspector.CollectionEditor.pas' {frmCollectionEditor}, + DDuce.Components.PropertyInspector.StringsEditor in 'Libraries\DDuce\Components\DDuce.Components.PropertyInspector.StringsEditor.pas' {StringsEditorDialog}, + DDuce.Components.XMLTree in 'Libraries\DDuce\Components\DDuce.Components.XMLTree.pas', + DDuce.Components.XMLTree.Editors in 'Libraries\DDuce\Components\DDuce.Components.XMLTree.Editors.pas', + DDuce.Components.XMLTree.NodeAttributes in 'Libraries\DDuce\Components\DDuce.Components.XMLTree.NodeAttributes.pas', + DDuce.DynamicRecord in 'Libraries\DDuce\DDuce.DynamicRecord.pas', + DDuce.Logger in 'Libraries\DDuce\DDuce.Logger.pas', + DDuce.RandomData in 'Libraries\DDuce\DDuce.RandomData.pas', + DDuce.Reflect in 'Libraries\DDuce\DDuce.Reflect.pas', + DDuce.ScopedReference in 'Libraries\DDuce\DDuce.ScopedReference.pas', + DSharp.Bindings in 'Libraries\DSharp\DSharp.Bindings.pas', + DSharp.Bindings.Collections in 'Libraries\DSharp\DSharp.Bindings.Collections.pas', + DSharp.Bindings.CollectionView in 'Libraries\DSharp\DSharp.Bindings.CollectionView.pas', + DSharp.Bindings.CollectionView.Adapters in 'Libraries\DSharp\DSharp.Bindings.CollectionView.Adapters.pas', + DSharp.Bindings.CollectionView.VCLAdapters in 'Libraries\DSharp\DSharp.Bindings.CollectionView.VCLAdapters.pas', + DSharp.Bindings.Exceptions in 'Libraries\DSharp\DSharp.Bindings.Exceptions.pas', + DSharp.Bindings.Notifications in 'Libraries\DSharp\DSharp.Bindings.Notifications.pas', + DSharp.Bindings.Validations in 'Libraries\DSharp\DSharp.Bindings.Validations.pas', + DSharp.Bindings.VCLControls in 'Libraries\DSharp\DSharp.Bindings.VCLControls.pas', + DSharp.Bindings.VCLControls.Extensions in 'Libraries\DSharp\DSharp.Bindings.VCLControls.Extensions.pas', + DSharp.Collections.ObservableCollection in 'Libraries\DSharp\DSharp.Collections.ObservableCollection.pas', + DSharp.ComponentModel.DataAnnotations in 'Libraries\DSharp\DSharp.ComponentModel.DataAnnotations.pas', + DSharp.Core.Collections in 'Libraries\DSharp\DSharp.Core.Collections.pas', + DSharp.Core.CopyOperator in 'Libraries\DSharp\DSharp.Core.CopyOperator.pas', + DSharp.Core.DataConversion in 'Libraries\DSharp\DSharp.Core.DataConversion.pas', + DSharp.Core.DataTemplates in 'Libraries\DSharp\DSharp.Core.DataTemplates.pas', + DSharp.Core.DataTemplates.Default in 'Libraries\DSharp\DSharp.Core.DataTemplates.Default.pas', + DSharp.Core.DependencyProperty in 'Libraries\DSharp\DSharp.Core.DependencyProperty.pas', + DSharp.Core.Editable in 'Libraries\DSharp\DSharp.Core.Editable.pas', + DSharp.Core.Expressions in 'Libraries\DSharp\DSharp.Core.Expressions.pas', + DSharp.Core.Framework in 'Libraries\DSharp\DSharp.Core.Framework.pas', + DSharp.Core.Properties in 'Libraries\DSharp\DSharp.Core.Properties.pas', + DSharp.Core.PropertyChangedBase in 'Libraries\DSharp\DSharp.Core.PropertyChangedBase.pas', + DSharp.Core.Reflection in 'Libraries\DSharp\DSharp.Core.Reflection.pas', + DSharp.Core.Utils in 'Libraries\DSharp\DSharp.Core.Utils.pas', + DSharp.Core.Validations in 'Libraries\DSharp\DSharp.Core.Validations.pas', + DSharp.Core.XNode in 'Libraries\DSharp\DSharp.Core.XNode.pas', + DSharp.DevExpress.GridViewPresenter in 'Libraries\DSharp\DSharp.DevExpress.GridViewPresenter.pas', + DSharp.DevExpress.PresenterDataSource in 'Libraries\DSharp\DSharp.DevExpress.PresenterDataSource.pas', + DSharp.DevExpress.TreeListPresenter in 'Libraries\DSharp\DSharp.DevExpress.TreeListPresenter.pas', + DSharp.Windows.ColumnDefinitions in 'Libraries\DSharp\DSharp.Windows.ColumnDefinitions.pas', + DSharp.Windows.ColumnDefinitions.ControlTemplate in 'Libraries\DSharp\DSharp.Windows.ColumnDefinitions.ControlTemplate.pas', + DSharp.Windows.ColumnDefinitions.RttiDataTemplate in 'Libraries\DSharp\DSharp.Windows.ColumnDefinitions.RttiDataTemplate.pas', + DSharp.Windows.ColumnDefinitions.XmlDataTemplate in 'Libraries\DSharp\DSharp.Windows.ColumnDefinitions.XmlDataTemplate.pas', + DSharp.Windows.ControlTemplates in 'Libraries\DSharp\DSharp.Windows.ControlTemplates.pas', + DSharp.Windows.CustomPresenter in 'Libraries\DSharp\DSharp.Windows.CustomPresenter.pas', + DSharp.Windows.CustomPresenter.Types in 'Libraries\DSharp\DSharp.Windows.CustomPresenter.Types.pas', + DSharp.Windows.TreeViewPresenter in 'Libraries\DSharp\DSharp.Windows.TreeViewPresenter.pas', + gaAdvancedSQLParser in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaAdvancedSQLParser.pas', + gaBasicSQLParser in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaBasicSQLParser.pas', + gaDeleteStm in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaDeleteStm.pas', + gaInsertStm in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaInsertStm.pas', + gaLnkList in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaLnkList.pas', + gaParserVisitor in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaParserVisitor.pas', + gaQueryParsersReg in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaQueryParsersReg.pas', + gaSelectStm in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaSelectStm.pas', + gaSQLExpressionParsers in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaSQLExpressionParsers.pas', + gaSQLFieldRefParsers in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaSQLFieldRefParsers.pas', + gaSQLParserConsts in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaSQLParserConsts.pas', + gaSQLParserHelperClasses in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaSQLParserHelperClasses.pas', + gaSQLSelectFieldParsers in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaSQLSelectFieldParsers.pas', + gaSQLTableRefParsers in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaSQLTableRefParsers.pas', + gaUpdateStm in 'Libraries\SQLBuilder4Delphi\dependencies\gaSQLParser\src\gaUpdateStm.pas', + Spring in 'Libraries\Spring4D\Source\Base\Spring.pas', + Spring.Collections in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.pas', + Spring.Collections.Adapters in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.Adapters.pas', + Spring.Collections.Base in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.Base.pas', + Spring.Collections.Dictionaries in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.Dictionaries.pas', + Spring.Collections.Enumerable in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.Enumerable.pas', + Spring.Collections.Events in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.Events.pas', + Spring.Collections.Extensions in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.Extensions.pas', + Spring.Collections.LinkedLists in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.LinkedLists.pas', + Spring.Collections.Lists in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.Lists.pas', + Spring.Collections.MultiMaps in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.MultiMaps.pas', + Spring.Collections.Queues in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.Queues.pas', + Spring.Collections.Sets in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.Sets.pas', + Spring.Collections.Stacks in 'Libraries\Spring4D\Source\Base\Collections\Spring.Collections.Stacks.pas', + Spring.Container in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.pas', + Spring.Container.ActivatorExtension in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.ActivatorExtension.pas', + Spring.Container.AutoMockExtension in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.AutoMockExtension.pas', + Spring.Container.Builder in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.Builder.pas', + Spring.Container.Common in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.Common.pas', + Spring.Container.ComponentActivator in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.ComponentActivator.pas', + Spring.Container.Core in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.Core.pas', + Spring.Container.CreationContext in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.CreationContext.pas', + Spring.Container.DecoratorExtension in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.DecoratorExtension.pas', + Spring.Container.Extensions in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.Extensions.pas', + Spring.Container.Injection in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.Injection.pas', + Spring.Container.LifetimeManager in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.LifetimeManager.pas', + Spring.Container.Pool in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.Pool.pas', + Spring.Container.ProxyFactory in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.ProxyFactory.pas', + Spring.Container.Registration in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.Registration.pas', + Spring.Container.Resolvers in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.Resolvers.pas', + Spring.Container.ResourceStrings in 'Libraries\Spring4D\Source\Core\Container\Spring.Container.ResourceStrings.pas', + Spring.Cryptography in 'Libraries\Spring4D\Source\Extensions\Cryptography\Spring.Cryptography.pas', + Spring.Cryptography.Base in 'Libraries\Spring4D\Source\Extensions\Cryptography\Spring.Cryptography.Base.pas', + Spring.Cryptography.CRC in 'Libraries\Spring4D\Source\Extensions\Cryptography\Spring.Cryptography.CRC.pas', + Spring.Cryptography.DES in 'Libraries\Spring4D\Source\Extensions\Cryptography\Spring.Cryptography.DES.pas', + Spring.Cryptography.MD5 in 'Libraries\Spring4D\Source\Extensions\Cryptography\Spring.Cryptography.MD5.pas', + Spring.Cryptography.SHA in 'Libraries\Spring4D\Source\Extensions\Cryptography\Spring.Cryptography.SHA.pas', + Spring.Cryptography.Utils in 'Libraries\Spring4D\Source\Extensions\Cryptography\Spring.Cryptography.Utils.pas', + Spring.DesignPatterns in 'Libraries\Spring4D\Source\Base\Spring.DesignPatterns.pas', + Spring.Events in 'Libraries\Spring4D\Source\Base\Spring.Events.pas', + Spring.Events.Base in 'Libraries\Spring4D\Source\Base\Spring.Events.Base.pas', + Spring.Helpers in 'Libraries\Spring4D\Source\Base\Spring.Helpers.pas', + Spring.Interception in 'Libraries\Spring4D\Source\Core\Interception\Spring.Interception.pas', + Spring.Interception.AbstractInvocation in 'Libraries\Spring4D\Source\Core\Interception\Spring.Interception.AbstractInvocation.pas', + Spring.Interception.ClassProxy in 'Libraries\Spring4D\Source\Core\Interception\Spring.Interception.ClassProxy.pas', + Spring.Interception.CustomProxy in 'Libraries\Spring4D\Source\Core\Interception\Spring.Interception.CustomProxy.pas', + Spring.Interception.InterfaceProxy in 'Libraries\Spring4D\Source\Core\Interception\Spring.Interception.InterfaceProxy.pas', + Spring.Interception.ResourceStrings in 'Libraries\Spring4D\Source\Core\Interception\Spring.Interception.ResourceStrings.pas', + Spring.Logging in 'Libraries\Spring4D\Source\Base\Logging\Spring.Logging.pas', + Spring.Logging.Appenders in 'Libraries\Spring4D\Source\Base\Logging\Spring.Logging.Appenders.pas', + Spring.Logging.Appenders.Base in 'Libraries\Spring4D\Source\Base\Logging\Spring.Logging.Appenders.Base.pas', + Spring.Logging.Configuration in 'Libraries\Spring4D\Source\Core\Logging\Spring.Logging.Configuration.pas', + Spring.Logging.Configuration.Builder in 'Libraries\Spring4D\Source\Core\Logging\Spring.Logging.Configuration.Builder.pas', + Spring.Logging.Container in 'Libraries\Spring4D\Source\Core\Logging\Spring.Logging.Container.pas', + Spring.Logging.Controller in 'Libraries\Spring4D\Source\Base\Logging\Spring.Logging.Controller.pas', + Spring.Logging.Extensions in 'Libraries\Spring4D\Source\Base\Logging\Spring.Logging.Extensions.pas', + Spring.Logging.Loggers in 'Libraries\Spring4D\Source\Base\Logging\Spring.Logging.Loggers.pas', + Spring.Logging.NullLogger in 'Libraries\Spring4D\Source\Base\Logging\Spring.Logging.NullLogger.pas', + Spring.Logging.ResourceStrings in 'Libraries\Spring4D\Source\Base\Logging\Spring.Logging.ResourceStrings.pas', + Spring.Logging.Serializers in 'Libraries\Spring4D\Source\Base\Logging\Spring.Logging.Serializers.pas', + Spring.MethodIntercept in 'Libraries\Spring4D\Source\Base\Spring.MethodIntercept.pas', + Spring.Mocking in 'Libraries\Spring4D\Source\Core\Mocking\Spring.Mocking.pas', + Spring.Mocking.Core in 'Libraries\Spring4D\Source\Core\Mocking\Spring.Mocking.Core.pas', + Spring.Mocking.Interceptor in 'Libraries\Spring4D\Source\Core\Mocking\Spring.Mocking.Interceptor.pas', + Spring.Patches.GetInvokeInfo in 'Libraries\Spring4D\Source\Base\Patches\Spring.Patches.GetInvokeInfo.pas', + Spring.Patches.QC107219 in 'Libraries\Spring4D\Source\Base\Patches\Spring.Patches.QC107219.pas', + Spring.Patches.QC93646 in 'Libraries\Spring4D\Source\Base\Patches\Spring.Patches.QC93646.pas', + Spring.Patches.QC98671 in 'Libraries\Spring4D\Source\Base\Patches\Spring.Patches.QC98671.pas', + Spring.Persistence.Adapters.ADO in 'Libraries\Spring4D\Source\Persistence\Adapters\Spring.Persistence.Adapters.ADO.pas', + Spring.Persistence.Adapters.ASA in 'Libraries\Spring4D\Source\Persistence\Adapters\Spring.Persistence.Adapters.ASA.pas', + Spring.Persistence.Adapters.DBX in 'Libraries\Spring4D\Source\Persistence\Adapters\Spring.Persistence.Adapters.DBX.pas', + Spring.Persistence.Adapters.FieldCache in 'Libraries\Spring4D\Source\Persistence\Adapters\Spring.Persistence.Adapters.FieldCache.pas', + Spring.Persistence.Adapters.FireDAC in 'Libraries\Spring4D\Source\Persistence\Adapters\Spring.Persistence.Adapters.FireDAC.pas', + Spring.Persistence.Adapters.MSSQL in 'Libraries\Spring4D\Source\Persistence\Adapters\Spring.Persistence.Adapters.MSSQL.pas', + Spring.Persistence.Adapters.Oracle in 'Libraries\Spring4D\Source\Persistence\Adapters\Spring.Persistence.Adapters.Oracle.pas', + Spring.Persistence.Core.AbstractSession in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.AbstractSession.pas', + Spring.Persistence.Core.Base in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.Base.pas', + Spring.Persistence.Core.ConnectionFactory in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.ConnectionFactory.pas', + Spring.Persistence.Core.Consts in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.Consts.pas', + Spring.Persistence.Core.DatabaseManager in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.DatabaseManager.pas', + Spring.Persistence.Core.DetachedSession in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.DetachedSession.pas', + Spring.Persistence.Core.EmbeddedEntity in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.EmbeddedEntity.pas', + Spring.Persistence.Core.EntityCache in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.EntityCache.pas', + Spring.Persistence.Core.EntityMap in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.EntityMap.pas', + Spring.Persistence.Core.EntityWrapper in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.EntityWrapper.pas', + Spring.Persistence.Core.Exceptions in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.Exceptions.pas', + Spring.Persistence.Core.Graphics in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.Graphics.pas', + Spring.Persistence.Core.Interfaces in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.Interfaces.pas', + Spring.Persistence.Core.ListSession in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.ListSession.pas', + Spring.Persistence.Core.Repository.Proxy in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.Repository.Proxy.pas', + Spring.Persistence.Core.Repository.Simple in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.Repository.Simple.pas', + Spring.Persistence.Core.Session in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.Session.pas', + Spring.Persistence.Core.ValueConverters in 'Libraries\Spring4D\Source\Persistence\Core\Spring.Persistence.Core.ValueConverters.pas', + Spring.Persistence.Criteria in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.pas', + Spring.Persistence.Criteria.Criterion.Abstract in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Criterion.Abstract.pas', + Spring.Persistence.Criteria.Criterion.BetweenExpression in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Criterion.BetweenExpression.pas', + Spring.Persistence.Criteria.Criterion.Conjunction in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Criterion.Conjunction.pas', + Spring.Persistence.Criteria.Criterion.Disjunction in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Criterion.Disjunction.pas', + Spring.Persistence.Criteria.Criterion.InExpression in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Criterion.InExpression.pas', + Spring.Persistence.Criteria.Criterion.Junction in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Criterion.Junction.pas', + Spring.Persistence.Criteria.Criterion.LikeExpression in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Criterion.LikeExpression.pas', + Spring.Persistence.Criteria.Criterion.LogicalExpression in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Criterion.LogicalExpression.pas', + Spring.Persistence.Criteria.Criterion.NullExpression in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Criterion.NullExpression.pas', + Spring.Persistence.Criteria.Criterion.PropertyExpression in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Criterion.PropertyExpression.pas', + Spring.Persistence.Criteria.Criterion.SimpleExpression in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Criterion.SimpleExpression.pas', + Spring.Persistence.Criteria.Interfaces in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Interfaces.pas', + Spring.Persistence.Criteria.OrderBy in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.OrderBy.pas', + Spring.Persistence.Criteria.Properties in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Properties.pas', + Spring.Persistence.Criteria.Restrictions in 'Libraries\Spring4D\Source\Persistence\Criteria\Spring.Persistence.Criteria.Restrictions.pas', + Spring.Persistence.Mapping.Attributes in 'Libraries\Spring4D\Source\Persistence\Mapping\Spring.Persistence.Mapping.Attributes.pas', + Spring.Persistence.Mapping.CodeGenerator in 'Libraries\Spring4D\Source\Persistence\Mapping\Spring.Persistence.Mapping.CodeGenerator.pas', + Spring.Persistence.Mapping.CodeGenerator.Abstract in 'Libraries\Spring4D\Source\Persistence\Mapping\Spring.Persistence.Mapping.CodeGenerator.Abstract.pas', + Spring.Persistence.Mapping.CodeGenerator.DB in 'Libraries\Spring4D\Source\Persistence\Mapping\Spring.Persistence.Mapping.CodeGenerator.DB.pas', + Spring.Persistence.ObjectDataset in 'Libraries\Spring4D\Source\Persistence\ObjectDataset\Spring.Persistence.ObjectDataset.pas', + Spring.Persistence.ObjectDataset.Abstract in 'Libraries\Spring4D\Source\Persistence\ObjectDataset\Spring.Persistence.ObjectDataset.Abstract.pas', + Spring.Persistence.ObjectDataset.ActiveX in 'Libraries\Spring4D\Source\Persistence\ObjectDataset\Spring.Persistence.ObjectDataset.ActiveX.pas', + Spring.Persistence.ObjectDataset.Algorithms.Sort in 'Libraries\Spring4D\Source\Persistence\ObjectDataset\Spring.Persistence.ObjectDataset.Algorithms.Sort.pas', + Spring.Persistence.ObjectDataset.Blobs in 'Libraries\Spring4D\Source\Persistence\ObjectDataset\Spring.Persistence.ObjectDataset.Blobs.pas', + Spring.Persistence.ObjectDataset.Designtime in 'Libraries\Spring4D\Source\Persistence\ObjectDataset\Spring.Persistence.ObjectDataset.Designtime.pas', + Spring.Persistence.ObjectDataset.ExprParser in 'Libraries\Spring4D\Source\Persistence\ObjectDataset\Spring.Persistence.ObjectDataset.ExprParser.pas', + Spring.Persistence.ObjectDataset.ExprParser.Functions in 'Libraries\Spring4D\Source\Persistence\ObjectDataset\Spring.Persistence.ObjectDataset.ExprParser.Functions.pas', + Spring.Persistence.ObjectDataset.IndexList in 'Libraries\Spring4D\Source\Persistence\ObjectDataset\Spring.Persistence.ObjectDataset.IndexList.pas', + Spring.Persistence.SQL.Commands in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Commands.pas', + Spring.Persistence.SQL.Commands.Abstract in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Commands.Abstract.pas', + Spring.Persistence.SQL.Commands.CreateForeignKey in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Commands.CreateForeignKey.pas', + Spring.Persistence.SQL.Commands.CreateSequence in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Commands.CreateSequence.pas', + Spring.Persistence.SQL.Commands.CreateTable in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Commands.CreateTable.pas', + Spring.Persistence.SQL.Commands.Delete in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Commands.Delete.pas', + Spring.Persistence.SQL.Commands.Insert in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Commands.Insert.pas', + Spring.Persistence.SQL.Commands.Page in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Commands.Page.pas', + Spring.Persistence.SQL.Commands.Select in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Commands.Select.pas', + Spring.Persistence.SQL.Commands.Update in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Commands.Update.pas', + Spring.Persistence.SQL.Generators.Abstract in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Generators.Abstract.pas', + Spring.Persistence.SQL.Generators.Ansi in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Generators.Ansi.pas', + Spring.Persistence.SQL.Generators.ASA in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Generators.ASA.pas', + Spring.Persistence.SQL.Generators.Firebird in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Generators.Firebird.pas', + Spring.Persistence.SQL.Generators.MSSQL in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Generators.MSSQL.pas', + Spring.Persistence.SQL.Generators.MySQL in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Generators.MySQL.pas', + Spring.Persistence.SQL.Generators.NoSQL in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Generators.NoSQL.pas', + Spring.Persistence.SQL.Generators.Oracle in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Generators.Oracle.pas', + Spring.Persistence.SQL.Generators.PostgreSQL in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Generators.PostgreSQL.pas', + Spring.Persistence.SQL.Generators.Register in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Generators.Register.pas', + Spring.Persistence.SQL.Generators.SQLite3 in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Generators.SQLite3.pas', + Spring.Persistence.SQL.Interfaces in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Interfaces.pas', + Spring.Persistence.SQL.Params in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Params.pas', + Spring.Persistence.SQL.Register in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Register.pas', + Spring.Persistence.SQL.Types in 'Libraries\Spring4D\Source\Persistence\SQL\Spring.Persistence.SQL.Types.pas', + Spring.Reflection in 'Libraries\Spring4D\Source\Base\Reflection\Spring.Reflection.pas', + Spring.ResourceStrings in 'Libraries\Spring4D\Source\Base\Spring.ResourceStrings.pas', + Spring.Services in 'Libraries\Spring4D\Source\Core\Services\Spring.Services.pas', + Spring.Services.Logging in 'Libraries\Spring4D\Source\Core\Services\Spring.Services.Logging.pas', + Spring.SystemUtils in 'Libraries\Spring4D\Source\Base\Spring.SystemUtils.pas', + Spring.Times in 'Libraries\Spring4D\Source\Base\Spring.Times.pas', + Spring.Utils in 'Libraries\Spring4D\Source\Extensions\Utils\Spring.Utils.pas', + Spring.Utils.IO in 'Libraries\Spring4D\Source\Extensions\Utils\Spring.Utils.IO.pas', + Spring.Utils.WinApi in 'Libraries\Spring4D\Source\Extensions\Utils\Spring.Utils.WinApi.pas', + Spring.ValueConverters in 'Libraries\Spring4D\Source\Base\Spring.ValueConverters.pas', + Spring.VirtualClass in 'Libraries\Spring4D\Source\Base\Spring.VirtualClass.pas', + Spring.VirtualInterface in 'Libraries\Spring4D\Source\Base\Spring.VirtualInterface.pas', + SQLBuilder4D in 'Libraries\SQLBuilder4Delphi\src\SQLBuilder4D.pas', + SQLBuilder4D.Parser in 'Libraries\SQLBuilder4Delphi\src\SQLBuilder4D.Parser.pas', + SQLBuilder4D.Parser.GaSQLParser in 'Libraries\SQLBuilder4Delphi\src\SQLBuilder4D.Parser.GaSQLParser.pas', + VirtualTrees in 'Libraries\VirtualTreeView\Source\VirtualTrees.pas', + VirtualTrees.Actions in 'Libraries\VirtualTreeView\Source\VirtualTrees.Actions.pas', + VirtualTrees.Classes in 'Libraries\VirtualTreeView\Source\VirtualTrees.Classes.pas', + VirtualTrees.ClipBoard in 'Libraries\VirtualTreeView\Source\VirtualTrees.ClipBoard.pas', + VirtualTrees.Export in 'Libraries\VirtualTreeView\Source\VirtualTrees.Export.pas', + VirtualTrees.StyleHooks in 'Libraries\VirtualTreeView\Source\VirtualTrees.StyleHooks.pas', + VirtualTrees.Utils in 'Libraries\VirtualTreeView\Source\VirtualTrees.Utils.pas', + VirtualTrees.WorkerThread in 'Libraries\VirtualTreeView\Source\VirtualTrees.WorkerThread.pas', + VTAccessibility in 'Libraries\VirtualTreeView\Source\VTAccessibility.pas', + VTAccessibilityFactory in 'Libraries\VirtualTreeView\Source\VTAccessibilityFactory.pas', + VTHeaderPopup in 'Libraries\VirtualTreeView\Source\VTHeaderPopup.pas', + Concepts.ComponentInspector in 'Concepts.ComponentInspector.pas' {frmComponentInspector}; + +{$R *.res} + +begin + ReportMemoryLeaksOnShutdown := True; + Application.Initialize; + TConcepts.RegisterConcepts; + Application.CreateForm(TdmResources, dmResources); + if ConceptManager.ItemList.Count = 1 then + begin + ConceptManager.Execute(ConceptManager.ItemList.First); + end + else + begin + Application.Title := 'Concepts'; + Application.CreateForm(TfrmMain, frmMain); + end; + Application.Run; +end. + diff --git a/Concepts.XE5.dproj b/Concepts.XE5.dproj new file mode 100644 index 00000000..736a97ee --- /dev/null +++ b/Concepts.XE5.dproj @@ -0,0 +1,947 @@ + + + {08B0BBF6-9865-47D8-B7FD-7BE56E3904B5} + Concepts.XE5.dpr + Release + DCC32 + 17.2 + VCL + True + Win32 + 3 + Application + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + 0 + true + false + 1 + false + false + Concepts.ico + .\Library\$(Platform)\$(Config) + .\Library\$(Platform)\$(Config) + .\Library\$(Platform)\$(Config) + Concepts + $(BDS)\bin\default_app.manifest + true + Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;System;Xml;Data;Datasnap;Web;Soap;Winapi;Bde;$(DCC_Namespace) + 2067 + CompanyName=Tim Sinaeve;FileDescription=;FileVersion=1.0.0.0;InternalName=Concepts;LegalCopyright=(c) 2015 Tim Sinaeve;LegalTrademarks=;OriginalFilename=Concepts.exe;ProductName=Concepts;ProductVersion=1.0.0.0;Comments= + Concepts.exe + 00400000 + x86 + + + System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + 1033 + + + 1033 + System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + 2 + CompanyName=Tim Sinaeve;FileDescription=;FileVersion=1.0.0.2;InternalName=Concepts;LegalCopyright=(c) 2015 Tim Sinaeve;LegalTrademarks=;OriginalFilename=Concepts.exe;ProductName=Concepts;ProductVersion=1.0.0.0;Comments= + false + false + 1033 + + + 1033 + + + true + true + false + 3 + DEBUG;$(DCC_Define) + + + false + false + false + 1 + 2 + true + true + 2 + true + 6 + .\Library\$(Platform)\$(Config)\ + CompanyName=(c) Tim Sinaeve;FileDescription=Concepts;FileVersion=1.0.0.6;InternalName=Concepts;LegalCopyright=(c) Tim Sinaeve;LegalTrademarks=;OriginalFilename=Concepts.exe;ProductName=Concepts;ProductVersion=1.0.0.0;Comments=A collection of modules demonstrating some Delphi programming concepts and libraries + true + 1033 + + + 1033 + + + + MainSource + + + + + + + + + + + + + +
frmAsyncCalls
+
+ +
frmBTMemoryModule
+
+ +
frmChromeTabs
+
+ +
frmPropertyInspector
+
+ +
frmcxEditors
+
+ +
frmcxGridViewPresenter
+
+ +
frmBindings
+
+ +
frmTreeViewPresenter
+
+ + +
frmMain
+
+ + + +
dmResources
+ TDataModule +
+ +
frmRTTEye
+
+ + +
frmCollections
+
+ +
frmSpringInterception
+
+ +
frmLazyInstantiation
+
+ +
frmSpringLogging
+
+ +
frmMulticastEventsChild
+
+ + +
frmMulticastEvents
+
+ +
frmObjectDataSet
+
+ +
frmSpringTypes
+
+ +
frmSpringUtils
+
+ +
frmSQLBuilder4D
+
+ +
frmAnonymousMethods
+
+ +
frmIterFaceImplementationByAggregation
+
+ +
frmLibraries
+
+ +
frmLiveBindings
+
+ +
frmRegularExpressions
+
+ +
frmRTTI
+
+ +
frmThreading
+
+ +
frmThreads
+
+ +
frmVariants
+
+ +
frmVirtualInterfaceDemo
+
+ +
frmVirtualMethodInterceptor
+
+ + + + +
frmGridPanels
+
+ +
frmLockPaint
+
+ + + + + + +
frmCollectionEditor
+
+ +
StringsEditorDialog
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
frmComponentInspector
+ dfm +
+ + + + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + +
+ + + Delphi.Personality.12 + VCLApplication + + + + Concepts.XE5.dpr + + + False + True + False + + + True + False + 1 + 0 + 0 + 0 + False + False + False + False + False + 2067 + 1252 + + + + + 1.0.0.0 + + + + + + 1.0.0.0 + + + + File C:\CIMDevelopment\CIMConfig\DelphiXE5\DevExpress\Win32\dclcxSpreadSheetRS19.bpl not found + File C:\CIMDevelopment\CIMConfig\DelphiXE5\DevExpress\Win32\dcldxPScxSSLnkRS19.bpl not found + File C:\CIMDevelopment\CIMConfig\DelphiXE5\DevExpress\Win32\dcldxPSTeeChartRS19.bpl not found + ExpressScheduler Ribbon Event Window by Developer Express Inc. + ExpressPrinting System Ribbon Preview Window by Developer Express Inc. + ReportBuilder Components + ReportBuilder Data Access Environment + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + File C:\CIMDevelopment\CIMConfig\DelphiXE5\DevExpress\Win32\dcldxPSDBTeeChartRS19.bpl not found + ReportBuilder TeeChart 9 Components + File C:\CIMDevelopment\CIMConfig\DelphiXE5\RemObjects\Win32\RemObjects_Everwood_D19.bpl not found + + + + True + True + + + + + .\ + + + + + Concepts.exe + + + + + Concepts.exe + + + + + .\ + + + + + Concepts.exe + + + + + 1 + .dylib + + + 0 + .bpl + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + + + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + + + 1 + + + 1 + + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + res\drawable-normal + 1 + + + + + library\lib\x86 + 1 + + + + + 1 + + + 1 + + + 1 + + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + 1 + + + + + res\drawable-xlarge + 1 + + + + + res\drawable-xhdpi + 1 + + + + + 1 + + + 1 + + + 1 + + + + + res\drawable-xxhdpi + 1 + + + + + library\lib\mips + 1 + + + + + res\drawable + 1 + + + + + 1 + + + 1 + + + 0 + + + + + 1 + .framework + + + 0 + + + + + res\drawable-small + 1 + + + + + + 1 + + + Contents\MacOS + 0 + + + + + classes + 1 + + + + + + 1 + + + 1 + + + 1 + + + + + res\drawable + 1 + + + + + Contents\Resources + 1 + + + + + + 1 + + + 1 + + + 1 + + + + + library\lib\armeabi-v7a + 1 + + + 1 + + + 0 + + + 1 + + + 1 + + + 1 + + + + + library\lib\armeabi + 1 + + + + + res\drawable-large + 1 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 1 + + + 1 + + + 1 + + + + + res\drawable-ldpi + 1 + + + + + res\values + 1 + + + + + 1 + + + 1 + + + 1 + + + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + + + 1 + + + + + + + + + + + False + + 12 + + + +
+ + diff --git a/Concepts.XE5.res b/Concepts.XE5.res new file mode 100644 index 00000000..28db4adb Binary files /dev/null and b/Concepts.XE5.res differ diff --git a/Concepts.dpr b/Concepts.dpr index 9f2b4a5e..a66496e4 100644 --- a/Concepts.dpr +++ b/Concepts.dpr @@ -3,10 +3,10 @@ program Concepts; {$I Concepts.inc} uses - {$I Overrides.inc} Forms, Vcl.Themes, Vcl.Styles, + System.ImageList in 'Types\System.ImageList.pas', AsyncCalls in 'Libraries\AsyncCalls\AsyncCalls.pas', BTMemoryModule in 'Libraries\BTMemoryModule\BTMemoryModule.pas', ChromeTabs in 'Libraries\TChromeTabs\Lib\ChromeTabs.pas', diff --git a/Concepts.dproj b/Concepts.dproj index e9e7c6be..68ad0f21 100644 --- a/Concepts.dproj +++ b/Concepts.dproj @@ -2,7 +2,7 @@ {08B0BBF6-9865-47D8-B7FD-7BE56E3904B5} Concepts.dpr - Release + Debug DCC32 17.2 VCL @@ -111,19 +111,19 @@ DEBUG;$(DCC_Define) + false + false + false + 1 2 - 0 true true 2 true - 3 - false - false + 6 .\Library\$(Platform)\$(Config)\ - CompanyName=(c) Tim Sinaeve;FileDescription=Concepts;FileVersion=1.0.0.3;InternalName=Concepts;LegalCopyright=(c) Tim Sinaeve;LegalTrademarks=;OriginalFilename=Concepts.exe;ProductName=Concepts;ProductVersion=1.0.0.0;Comments=A collection of modules demonstrating some Delphi programming concepts and libraries + CompanyName=(c) Tim Sinaeve;FileDescription=Concepts;FileVersion=1.0.0.6;InternalName=Concepts;LegalCopyright=(c) Tim Sinaeve;LegalTrademarks=;OriginalFilename=Concepts.exe;ProductName=Concepts;ProductVersion=1.0.0.0;Comments=A collection of modules demonstrating some Delphi programming concepts and libraries true - true 1033 @@ -133,6 +133,7 @@ MainSource + @@ -555,16 +556,18 @@ - (untitled) - DSharp data binding designtime package - DSharp treeview presenter designtime package - DSharp data binding designtime package for VCL - File C:\Users\Public\Documents\Embarcadero\Studio\16.0\Bpl\DebugVisualizers.bpl not found - Embarcadero C++Builder Office 2000 Servers Package - Embarcadero C++Builder Office XP Servers Package - Microsoft Office 2000 Sample Automation Server Wrapper Components - Microsoft Office XP Sample Automation Server Wrapper Components - TurboPack VirtualTree Delphi designtime package + File C:\CIMDevelopment\CIMConfig\DelphiXE5\DevExpress\Win32\dclcxSpreadSheetRS19.bpl not found + File C:\CIMDevelopment\CIMConfig\DelphiXE5\DevExpress\Win32\dcldxPScxSSLnkRS19.bpl not found + File C:\CIMDevelopment\CIMConfig\DelphiXE5\DevExpress\Win32\dcldxPSTeeChartRS19.bpl not found + ExpressScheduler Ribbon Event Window by Developer Express Inc. + ExpressPrinting System Ribbon Preview Window by Developer Express Inc. + ReportBuilder Components + ReportBuilder Data Access Environment + Microsoft Office 2000 Sample Automation Server Wrapper Components + Microsoft Office XP Sample Automation Server Wrapper Components + File C:\CIMDevelopment\CIMConfig\DelphiXE5\DevExpress\Win32\dcldxPSDBTeeChartRS19.bpl not found + ReportBuilder TeeChart 9 Components + File C:\CIMDevelopment\CIMConfig\DelphiXE5\RemObjects\Win32\RemObjects_Everwood_D19.bpl not found @@ -575,31 +578,26 @@ Concepts.exe - true Concepts.exe - true Concepts.exe - true .\ - true .\ - true @@ -924,8 +922,8 @@ - + False @@ -935,3 +933,11 @@ + + diff --git a/Concepts.res b/Concepts.res index 7628684e..93b5804a 100644 Binary files a/Concepts.res and b/Concepts.res differ diff --git a/Libraries/TChromeTabs/README.md b/Libraries/TChromeTabs/README.md deleted file mode 100644 index 5393ef00..00000000 --- a/Libraries/TChromeTabs/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# TChromeTabs -======= -TChromeTabs is a comprehensive implementation of Google Chrome's tabs for Delphi 6 - Delphi XE8 - -Delphinus-Support diff --git a/Overrides.inc b/Overrides.inc deleted file mode 100644 index d7381a81..00000000 --- a/Overrides.inc +++ /dev/null @@ -1,21 +0,0 @@ -{ - Copyright (C) 2013-2015 Tim Sinaeve tim.sinaeve@gmail.com - - Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. -} - -{$I '.\jedi.inc'} - -{$IFNDEF DELPHIXE8_UP} - System.ImageList in 'Types\System.ImageList.pas', -{$ENDIF} diff --git a/README.md b/README.md deleted file mode 100644 index b3b536fc..00000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -# Concepts -A collection of modules which demonstrate some programming concepts in Delphi. They provide also examples of popular open source Delphi libraries and components.