├── .gitignore ├── DelphiLanguageCodeRage2018 ├── 01_GenericMethod │ ├── GenericForm.fmx │ ├── GenericForm.pas │ ├── GenericMethod.dpr │ ├── GenericMethod.dproj │ └── GenericMethod.res ├── 02_SmartPointers │ ├── SmartPointerClass.pas │ ├── SmartPointers.dpr │ ├── SmartPointers.dproj │ ├── SmartPointers.res │ ├── SmartPointers_MainForm.dfm │ └── SmartPointers_MainForm.pas ├── 03_WeakIntfRef │ ├── WeakIntfRef.dpr │ ├── WeakIntfRef.dproj │ ├── WeakIntfRef.res │ ├── WeakIntfRef_Form.dfm │ └── WeakIntfRef_Form.pas ├── 04_InlineVars │ ├── InlineVars.dpr │ ├── InlineVars.dproj │ ├── InlineVars.res │ ├── InlineVarsForm.dfm │ └── InlineVarsForm.pas ├── 05_InlineVarSpeed │ ├── INlineProj.dpr │ ├── INlineProj.dproj │ ├── INlineProj.res │ ├── InlineWeird.dfm │ └── InlineWeird.pas ├── 06_MoreTypeInference │ ├── MoreTypeInference.dpr │ ├── MoreTypeInference.dproj │ ├── MoreTypeInference.res │ ├── mtiForm.dfm │ └── mtiForm.pas ├── 07_BlockScope │ ├── BlockScope.dpr │ ├── BlockScope.dproj │ ├── BlockScope.res │ ├── BlockScope_Form.dfm │ ├── BlockScope_Form.pas │ └── SmartPointerClass.pas ├── 07_MissingAttribute │ ├── MissingAttribute.dpr │ ├── MissingAttribute.dproj │ ├── MissingAttribute.res │ ├── MissingAttribute_Form.dfm │ └── MissingAttribute_Form.pas └── DelphiLanguageGroup.groupproj ├── DelphiLanguageSession ├── 01_SmartPointers │ ├── SmartPointerClass.pas │ ├── SmartPointers.dpr │ ├── SmartPointers.dproj │ ├── SmartPointers.res │ ├── SmartPointers_MainForm.dfm │ └── SmartPointers_MainForm.pas ├── 02_CovariantReturnTypes │ ├── Covariant.dpr │ ├── Covariant.dproj │ ├── Covariant.res │ ├── Covariant_MainForm.dfm │ └── Covariant_MainForm.pas ├── 03_AnonymousCalculatedFields │ ├── AnonymousCalculatedFields.dpr │ ├── AnonymousCalculatedFields.dproj │ ├── AnonymousCalculatedFields.res │ ├── AnonymousCalculatedFields_MainForm.dfm │ └── AnonymousCalculatedFields_MainForm.pas ├── 04_ParallelFor │ ├── AndroidManifest.template.xml │ ├── Entitlement.TemplateOSX32.xml │ ├── Entitlement.TemplateiOS.xml │ ├── ParallelForGroup.groupproj │ ├── ParallelForMultiForm.fmx │ ├── ParallelForMultiForm.pas │ ├── ParallelForVCL.dpr │ ├── ParallelForVCL.dproj │ ├── ParallelForVCL.res │ ├── ParallelFor_MainForm.dfm │ ├── ParallelFor_MainForm.pas │ ├── ParallelFormMulti.deployproj │ ├── ParallelFormMulti.dpr │ ├── ParallelFormMulti.dproj │ └── ParallelFormMulti.res ├── 05_ParallelTasksAndFutures │ ├── ParallelForm.dfm │ ├── ParallelForm.pas │ ├── ParallelTaskAndFutures.dpr │ ├── ParallelTaskAndFutures.dproj │ └── ParallelTaskAndFutures.res ├── 06_Casting_Interfaces_To_Objects │ ├── CastingIntf2Obj.dpr │ ├── CastingIntf2Obj.dproj │ ├── CastingIntf2Obj.res │ ├── uFormMain.dfm │ ├── uFormMain.pas │ ├── uIntfDataAccess.pas │ ├── uMyDataModule.dfm │ └── uMyDataModule.pas ├── 07_DescriptionAttribute │ ├── DescriptionAttribute.dpr │ ├── DescriptionAttribute.dproj │ ├── DescriptionAttribute.res │ ├── DescriptionAttribute_Classes.pas │ ├── DescriptionAttribute_MainForm.dfm │ └── DescriptionAttribute_MainForm.pas ├── 08_DynamicScripting │ ├── ClassicAppointment.pas │ ├── EdslScripting.pas │ ├── ExternalDsl.dpr │ ├── ExternalDsl.dproj │ ├── ExternalDsl.otares │ ├── ExternalDsl.res │ ├── ExternalDslMainForm.dfm │ ├── ExternalDslMainForm.pas │ ├── dates.txt │ └── formwithbutton.txt ├── 09_InterceptBaseClass │ ├── InterceptBaseClass.dpr │ ├── InterceptBaseClass.dproj │ ├── InterceptBaseClass.res │ ├── InterceptBaseClass_MainForm.dfm │ └── InterceptBaseClass_MainForm.pas ├── 10_SimpleTypeHelpers │ ├── SimpleHelpers.dpr │ ├── SimpleHelpers.dproj │ ├── SimpleHelpers.res │ ├── Unit1.dfm │ └── Unit1.pas ├── 11_ArcExperiments │ ├── AndroidManifest.template.xml │ ├── ArcExperiments.deployproj │ ├── ArcExperiments.dpr │ ├── ArcExperiments.dproj │ ├── ArcExperiments.res │ ├── ArcExperiments_MainForm.fmx │ ├── ArcExperiments_MainForm.pas │ └── Arc_MoreClasses.pas ├── 12_ArcWeakUnsafe │ ├── AndroidManifest.template.xml │ ├── ArcWeakUnsafe.deployproj │ ├── ArcWeakUnsafe.dpr │ ├── ArcWeakUnsafe.dproj │ ├── ArcWeakUnsafe.res │ ├── ArcWeakUnsafe_Form.fmx │ └── ArcWeakUnsafe_Form.pas ├── 13_ClassOperators │ ├── ClassOpMainForm.fmx │ ├── ClassOpMainForm.pas │ ├── ClassOperators.deployproj │ ├── ClassOperators.dpr │ ├── ClassOperators.dproj │ └── ClassOperators.res ├── 14_WeakIntfRef │ ├── WeakIntfRef.dpr │ ├── WeakIntfRef.dproj │ ├── WeakIntfRef.res │ ├── WeakIntfRef_Form.dfm │ └── WeakIntfRef_Form.pas ├── 15_DynamicArrays │ ├── DynamicArraysForm.dfm │ ├── DynamicArraysForm.pas │ ├── DynamicArraysVCL.dpr │ ├── DynamicArraysVCL.dproj │ └── DynamicArraysVCL.res └── DelphiLanguageGroups.groupproj ├── EKON25_Expressions_Bindings ├── 01_RttiAccess │ ├── RttiAccess.dpr │ ├── RttiAccess.dproj │ ├── RttiAccess.res │ ├── RttiAccessMainForm.dfm │ └── RttiAccessMainForm.pas ├── 02_Bindings101 │ ├── Bindings101.dpr │ ├── Bindings101.dproj │ ├── Bindings101.res │ ├── Bindings101_MainForm.dfm │ └── Bindings101_MainForm.pas ├── 02_CurrencyConverter │ ├── CurrencyConverter.dpr │ ├── CurrencyConverter.dproj │ ├── CurrencyConverter.res │ ├── converteru.pas │ ├── mainformu.dfm │ └── mainformu.pas ├── 03_BindingExpressions │ ├── BindingExpressions.dpr │ ├── BindingExpressions.dproj │ ├── BindingExpressions.res │ ├── BindingExpressions_MainForm.dfm │ └── BindingExpressions_MainForm.pas ├── 03_BindingsExpr │ ├── BindingsExpr.dpr │ ├── BindingsExpr.dproj │ ├── BindingsExpr.res │ ├── BindingsExpr_MainForm.dfm │ └── BindingsExpr_MainForm.pas ├── 03_SimpleVCLLiveBindingsExample │ ├── SimpleVCLLiveBindingsExample.dpr │ ├── SimpleVCLLiveBindingsExample.dproj │ ├── SimpleVCLLiveBindingsExample.res │ ├── Unit1.dfm │ └── Unit1.pas ├── 04_BindindList101 │ ├── BindindList101.dpr │ ├── BindindList101.dproj │ ├── BindindList101.res │ ├── Binfings101BindingsList_MainForm.dfm │ └── Binfings101BindingsList_MainForm.pas ├── 04_BindingsList │ ├── BindingsList.dpr │ ├── BindingsList.dproj │ ├── BindingsList.res │ ├── BindingsList_MainForm.dfm │ └── BindingsList_MainForm.pas ├── 05_LiveBindings101 │ ├── LiveBindings101.dpr │ ├── LiveBindings101.dproj │ ├── LiveBindings101.res │ ├── LiveBindings101_MainForm.dfm │ ├── LiveBindings101_MainForm.pas │ ├── LiveBindings101_MainForm.vlb │ ├── Unit1.dfm │ ├── Unit1.pas │ └── Unit1.vlb ├── 06_BindingsDB │ ├── BindingsDB.dpr │ ├── BindingsDB.dproj │ ├── BindingsDB.res │ ├── BindingsDB_MainForm.dfm │ ├── BindingsDB_MainForm.pas │ ├── BindingsDB_MainForm.vlb │ └── biolife.cds ├── 07_TListViewObjects │ ├── ListViewObjectsForm.dfm │ ├── ListViewObjectsForm.pas │ ├── ListViewObjectsForm.vlb │ ├── VLBDemo_VCLListView_Objs1.dpr │ ├── VLBDemo_VCLListView_Objs1.dproj │ └── VLBDemo_VCLListView_Objs1.res ├── 08_ControlListLiveBinding │ ├── ControlListLiveBindingDemo.dpr │ ├── ControlListLiveBindingDemo.dproj │ ├── ControlListLiveBindingDemo.res │ ├── ControlListLiveBindingUnit1.dfm │ └── ControlListLiveBindingUnit1.pas ├── BindingsGroup.groupproj └── BindingsGroup.groupproj.local ├── EKON25_Win11_Delphi11 ├── ControlListLiveBinding │ ├── ControlListLiveBindingDemo.dpr │ ├── ControlListLiveBindingDemo.dproj │ ├── ControlListLiveBindingDemo.res │ ├── ControlListLiveBindingUnit1.dfm │ └── ControlListLiveBindingUnit1.pas ├── Dynamic_Per_Conrol_Styles │ ├── DynamicStyles.dpr │ ├── DynamicStyles.dproj │ ├── DynamicStyles.res │ ├── DynamicStylesMain.dfm │ └── DynamicStylesMain.pas ├── Edge101 │ ├── Edge101.dpr │ ├── Edge101.dproj │ ├── Edge101.res │ ├── Edge101form.dfm │ └── Edge101form.pas ├── HighDPIImageList │ ├── DpiImageForm.dfm │ ├── DpiImageForm.pas │ ├── HighDPIImageList.dpr │ ├── HighDPIImageList.dproj │ └── HighDPIImageList.res ├── NumberBoxDemo │ ├── NumberBoxDemo.dpr │ ├── NumberBoxDemo.dproj │ ├── NumberBoxDemo.res │ ├── NumberBoxDemo_Unit1.dfm │ └── NumberBoxDemo_Unit1.pas ├── SystemMetrics │ ├── SystemMetrics.dpr │ ├── SystemMetrics.dproj │ ├── SystemMetrics.res │ ├── SystemMetricsForm.dfm │ └── SystemMetricsForm.pas ├── VCLControlColorsB │ ├── VCLColorButtonsUnit1.dfm │ ├── VCLColorButtonsUnit1.pas │ ├── VCLControlColorsB.res │ ├── VCLControlColorsButtons.dpr │ ├── VCLControlColorsButtons.dproj │ └── VCLControlColorsButtons.res ├── VirtualImage_Demo │ ├── Unit1.dfm │ ├── Unit1.pas │ ├── VirtualImgDemo.dpr │ ├── VirtualImgDemo.dproj │ └── VirtualImgDemo.res ├── Win11Round │ ├── TitleBar_Form.dfm │ ├── TitleBar_Form.pas │ ├── Win11Forms.pas │ ├── Win11_DemoForm.dfm │ ├── Win11_DemoForm.pas │ ├── Win11_DemoProject.dpr │ ├── Win11_DemoProject.dproj │ └── Win11_DemoProject.res └── multistyle_101 │ ├── AppxManifest.template.xml │ ├── multi_style.dpr │ ├── multi_style.dproj │ ├── multi_style.res │ ├── multi_style_form.dfm │ ├── multi_style_form.pas │ ├── multistyle.deployproj │ ├── multistyle.dpr │ ├── multistyle.dproj │ └── multistyle.res ├── Ekon24FMXArchitecture ├── 01_FMtoGPUcalls │ ├── FMtoGPUcalls.dpr │ ├── FMtoGPUcalls.dproj │ ├── FMtoGPUcalls.res │ ├── FMtoGPUcalls_mainform.fmx │ └── FMtoGPUcalls_mainform.pas ├── 02_CanvasPaint │ ├── CanvasPaint.dpr │ ├── CanvasPaint.dproj │ ├── CanvasPaint.otares │ ├── CanvasPaint.res │ ├── CanvasPaint_Icon.ico │ ├── CanvasPaint_MainForm.fmx │ └── CanvasPaint_MainForm.pas ├── 03_PrimitivePaint │ ├── PrimitivePaint.dpr │ ├── PrimitivePaint.dproj │ ├── PrimitivePaint.otares │ ├── PrimitivePaint.res │ ├── PrimitivePaint_Icon.ico │ ├── PrimitivePaint_MainForm.fmx │ └── PrimitivePaint_MainForm.pas ├── 04_ButtonStyle │ ├── ButtonStyle.dpr │ ├── ButtonStyle.dproj │ ├── ButtonStyle.otares │ ├── ButtonStyle.res │ ├── ButtonStyleForm.fmx │ ├── ButtonStyleForm.pas │ └── ButtonStyle_Icon.ico ├── 05_FMStyles101 │ ├── FMStyles101.dpr │ ├── FMStyles101.dproj │ ├── FMStyles101.otares │ ├── FMStyles101.res │ ├── FMStyles101_Icon.ico │ ├── FMStyles101_MainForm.fmx │ ├── FMStyles101_MainForm.pas │ └── head.png ├── 06_LedDemo │ ├── LedDemo.dpr │ ├── LedDemo.dproj │ ├── LedDemo.otares │ ├── LedDemo.res │ ├── LedDemo_Icon.ico │ ├── LedDemo_MainForm.fmx │ ├── LedDemo_MainForm.pas │ ├── Unit19.fmx │ └── Unit19.pas ├── 07_PlatformServices │ ├── PlatformDialog.dpr │ ├── PlatformDialog.dproj │ ├── PlatformDialog.res │ ├── PlatformDialog_Form.fmx │ └── PlatformDialog_Form.pas ├── 08_PlatformControls │ ├── PlatformControls.dpr │ ├── PlatformControls.dproj │ ├── PlatformControls.res │ ├── PlatformControls_Form.fmx │ └── PlatformControls_Form.pas ├── Components │ ├── CntFireMonkeyComps.dpk │ ├── CntFireMonkeyComps.dproj │ ├── CntFireMonkeyComps.res │ ├── LedComponent.pas │ ├── LedGroup.groupproj │ └── StyledLedComponent.pas └── FMXArchitecture.groupproj ├── Ekon24RADServerLinux ├── Ekon24RSLinux_group.groupproj ├── Linux101 │ ├── linux101.deployproj │ ├── linux101.dpr │ ├── linux101.dproj │ └── linux101.res └── ekon24RSEmployee │ ├── SimpleClient.dpr │ ├── SimpleClient.dproj │ ├── SimpleClient.res │ ├── SimpleClient_Form.fmx │ ├── SimpleClient_Form.pas │ ├── ek24rs_datamodule.dfm │ ├── ek24rs_datamodule.pas │ ├── ek24rsemployee.deployproj │ ├── ek24rsemployee.dpk │ ├── ek24rsemployee.dproj │ └── ek24rsemployee.res ├── Ekon26_RestClients ├── Apilayer_RestCountries │ ├── RestCountriesVCL.dpr │ ├── RestCountriesVCL.dproj │ ├── RestCountriesVCL.res │ ├── RestCountries_Form.dfm │ └── RestCountries_Form.pas ├── Apilayer_geocoding │ ├── GeoCoding.dpr │ ├── GeoCoding.dproj │ ├── GeoCoding.res │ ├── GeoCodingForm.fmx │ ├── GeoCodingForm.pas │ ├── GeoCodingForm.vlb │ ├── Unit13.fmx │ └── Unit13.pas ├── HTTPvsREST │ ├── HTTPvsREST.dpr │ ├── HTTPvsREST.dproj │ ├── HTTPvsREST.res │ ├── Unit13.dfm │ └── Unit13.pas └── WeatherClient │ ├── WeatherClient.dpr │ ├── WeatherClient.dproj │ ├── WeatherClient.res │ ├── WeatherClient_Form.fmx │ ├── WeatherClient_Form.pas │ ├── WeatherClient_Form.vlb │ ├── WeatherClient_Module.dfm │ ├── WeatherClient_Module.pas │ └── WeatherClient_Module.vlb ├── FireDACMemTable ├── 04_StringListVsDictionary │ ├── ListDictionary_MainForm.dfm │ ├── ListDictionary_MainForm.pas │ ├── StringListVsDictionaryVsMemTable.dpr │ ├── StringListVsDictionaryVsMemTable.dproj │ └── StringListVsDictionaryVsMemTable.res ├── BatchMoveJSON_102Tokyo │ ├── TableToJSON.dpr │ ├── TableToJSON.dproj │ ├── TableToJSON.res │ ├── TableToJsonForm.dfm │ └── TableToJsonForm.pas ├── DesignTimeFields │ ├── DesignTimeFields.dpr │ ├── DesignTimeFields.dproj │ ├── DesignTimeFields.res │ ├── DesignTimeFields_Form.dfm │ └── DesignTimeFields_Form.pas ├── FireDACMemTable │ ├── FireDACMemTable.dpr │ ├── FireDACMemTable.dproj │ ├── FireDACMemTable.res │ ├── FireDACMemTableForm.dfm │ ├── FireDACMemTableForm.pas │ └── FireDACMemTableForm.vlb ├── FireDAC_Demo101 │ ├── FireDAC_Demo101.dpr │ ├── FireDAC_Demo101.dproj │ ├── FireDAC_Demo101.res │ ├── Unit7.dfm │ └── Unit7.pas ├── LocalSQL_101 │ ├── LocalSQL_101.dpr │ ├── LocalSQL_101.dproj │ ├── LocalSQL_101.res │ ├── LocalSQL_Form.dfm │ └── LocalSQL_Form.pas ├── NoCompsMemTable │ ├── NoCompsMemTable.dpr │ ├── NoCompsMemTable.dproj │ ├── NoCompsMemTable.res │ ├── NoComps_Form.dfm │ └── NoComps_Form.pas └── TableAdapter │ ├── TableAdapter.dpr │ ├── TableAdapter.dproj │ ├── TableAdapter.res │ ├── TableAdapterForm.dfm │ └── TableAdapterForm.pas ├── FireMonkeyStyles ├── 01_FMtoGPUcalls │ ├── FMtoGPUcalls.dpr │ ├── FMtoGPUcalls.dproj │ ├── FMtoGPUcalls.res │ ├── FMtoGPUcalls_mainform.fmx │ └── FMtoGPUcalls_mainform.pas ├── 02_CanvasPaint │ ├── CanvasPaint.dpr │ ├── CanvasPaint.dproj │ ├── CanvasPaint.res │ ├── CanvasPaint_MainForm.fmx │ └── CanvasPaint_MainForm.pas ├── 03_PrimitivePaint │ ├── PrimitivePaint.dpr │ ├── PrimitivePaint.dproj │ ├── PrimitivePaint.res │ ├── PrimitivePaint_MainForm.fmx │ └── PrimitivePaint_MainForm.pas ├── 04_ButtonStyle │ ├── ButtonStyle.dpr │ ├── ButtonStyle.dproj │ ├── ButtonStyle.res │ ├── ButtonStyleForm.fmx │ └── ButtonStyleForm.pas ├── 05_FMStyles101 │ ├── FMStyles101.dpr │ ├── FMStyles101.dproj │ ├── FMStyles101.res │ ├── FMStyles101_MainForm.fmx │ ├── FMStyles101_MainForm.pas │ ├── Win32 │ │ └── Debug │ │ │ └── head.png │ └── head.png ├── 06_LedDemo │ ├── NewLedDemo.dpr │ ├── NewLedDemo.dproj │ ├── NewLedDemo.res │ ├── NewLedDemoForm.fmx │ ├── NewLedDemoForm.pas │ └── ledstyle.style ├── 07_PlatformServices │ ├── PlatformDialog.dpr │ ├── PlatformDialog.dproj │ ├── PlatformDialog.res │ ├── PlatformDialog_Form.fmx │ └── PlatformDialog_Form.pas ├── 08_PlatformControls │ ├── PlatformControls.dpr │ ├── PlatformControls.dproj │ ├── PlatformControls.res │ ├── PlatformControls_Form.fmx │ └── PlatformControls_Form.pas ├── Components │ ├── CntFireMonkeyComps.dpk │ ├── CntFireMonkeyComps.dproj │ ├── CntFireMonkeyComps.res │ ├── LedComponent.pas │ ├── LedGroup.groupproj │ └── StyledLedComponent.pas ├── FMXArchitecture.groupproj └── FMXArchitecture.groupproj.local ├── LICENSE ├── RADServer103CodeRage ├── Batch_DataModule.dfm ├── Batch_DataModule.pas ├── Content_DataModule.dfm ├── Content_DataModule.pas ├── Files_DataModule.dfm ├── Files_DataModule.pas ├── Manual_DataModule.dfm ├── Manual_DataModule.pas ├── Plain_DataModule.dfm ├── Plain_DataModule.pas ├── Query_DataModule.dfm ├── Query_DataModule.pas ├── RADServer103.dpk ├── RADServer103.dproj └── RADServer103.res ├── RADServerBeyondBasics ├── RADServer_101Demo │ ├── ClientForm.fmx │ ├── ClientForm.pas │ ├── ClientPro.dpr │ ├── ClientPro.dproj │ ├── ClientPro.res │ ├── CredentialsUnit.pas │ ├── RADServer101.dpk │ ├── RADServer101.dproj │ ├── RADServer101.res │ ├── RADServerGroup101.groupproj │ ├── ServerUnit101.dfm │ └── ServerUnit101.pas ├── RADServer_GenerateJSON │ ├── GenJSONUnit.dfm │ ├── GenJSONUnit.pas │ ├── GenJSON_Stream.dfm │ ├── GenJSON_Stream.pas │ ├── GenJSON_Writer.dfm │ ├── GenJSON_Writer.pas │ ├── GenerateJSON.dpk │ ├── GenerateJSON.dproj │ ├── GenerateJSON.res │ ├── GetJSON_FireDAC.dfm │ ├── GetJSON_FireDAC.pas │ ├── Project5.dpk │ ├── Project5.dproj │ ├── Project5.res │ ├── Unit5.dfm │ └── Unit5.pas ├── RADServer_JavaScript │ ├── Project1.dpk │ ├── Project1.dproj │ ├── Project1.res │ ├── Unit1.pas │ └── WebAssets │ │ ├── Content │ │ └── index.html │ │ └── Images │ │ └── rad1023.png └── RADServer_Permissions │ ├── ClientForm.fmx │ ├── ClientForm.pas │ ├── ClientPro.dpr │ ├── ClientPro.dproj │ ├── ClientPro.res │ ├── CredentialsUnit.pas │ ├── RADServer101.dpk │ ├── RADServer101.dproj │ ├── RADServer101.res │ ├── RADServerGroup101.groupproj │ ├── ServerUnit101.dfm │ └── ServerUnit101.pas ├── README.md ├── UnderstandingARC ├── 01_StringMetaTest │ ├── StringMetaTest.dpr │ ├── StringMetaTest.dproj │ ├── StringMetaTest.res │ ├── StringMetaTestForm.fmx │ └── StringMetaTestForm.pas ├── 02_Intf101 │ ├── InterfaceForm.fmx │ ├── InterfaceForm.pas │ ├── Intf101.dpr │ ├── Intf101.dproj │ └── Intf101.res ├── 03_IntfError │ ├── InterfaceForm.fmx │ ├── InterfaceForm.pas │ ├── IntfError.dpr │ ├── IntfError.dproj │ └── IntfError.res ├── 04_ArcExperiments │ ├── ArcConsole101.dpr │ ├── ArcConsole101.dproj │ ├── ArcConsole101.res │ ├── ArcExperiments_Classes.pas │ └── Arc_MoreClasses.pas ├── 05_ArcWeakUnsafe │ ├── ArcWeakUnsafe.dpr │ ├── ArcWeakUnsafe.dproj │ ├── ArcWeakUnsafe.res │ ├── ArcWeakUnsafe_Form.fmx │ └── ArcWeakUnsafe_Form.pas ├── 06_Performance_Collections │ ├── PerformanceClasses.pas │ ├── PerformanceCollections.pas │ ├── Performance_Collections.dpr │ ├── Performance_Collections.dproj │ └── Performance_Collections.res ├── 07_ClassOperators │ ├── ClassOpMainForm.fmx │ ├── ClassOpMainForm.pas │ ├── ClassOperators.dpr │ ├── ClassOperators.dproj │ └── ClassOperators.res └── 08_WeakIntfRef │ ├── WeakIntfRef.dpr │ ├── WeakIntfRef.dproj │ ├── WeakIntfRef.res │ ├── WeakIntfRef.stat │ ├── WeakIntfRef_Form.dfm │ └── WeakIntfRef_Form.pas ├── VCLHighDPIWebinar_Jan2019 ├── FormWithGrid │ ├── FormWithGrid.dfm │ ├── FormWithGrid.pas │ ├── WithGrid.dpr │ ├── WithGrid.dproj │ └── WithGrid.res ├── HighDPIGroup.groupproj ├── HighDPIImageList │ ├── DpiImageForm.dfm │ ├── DpiImageForm.pas │ ├── HighDPIImageList.dpr │ ├── HighDPIImageList.dproj │ └── HighDPIImageList.res └── SystemMetrics │ ├── SystemMetrics.dpr │ ├── SystemMetrics.dproj │ ├── SystemMetrics.res │ ├── SystemMetricsForm.dfm │ └── SystemMetricsForm.pas ├── Win10Session ├── ActivityIndicator │ ├── ActivityIndicator.dpr │ ├── ActivityIndicator.dproj │ ├── ActivityIndicator.res │ ├── uActivityIndicator.dfm │ └── uActivityIndicator.pas ├── Calendar │ ├── Project1.dpr │ ├── Project1.dproj │ ├── Project1.res │ ├── Unit1.dfm │ └── Unit1.pas ├── CallWinApi │ ├── CallWinApi.dpr │ ├── CallWinApi.dproj │ ├── CallWinApi.res │ ├── CallWinApi_MainForm.dfm │ └── CallWinApi_MainForm.pas ├── JumpListFilesDemo │ ├── JumpListFilesDemo.dpr │ ├── JumpListFilesDemo.dproj │ ├── JumpListFilesDemo.res │ ├── JumpListFiles_MainForm.dfm │ ├── JumpListFiles_MainForm.pas │ └── WinProcessHelpers.pas ├── RelativePanel │ ├── RelativePanel.dpr │ ├── RelativePanel.dproj │ ├── RelativePanel.res │ ├── uRelativePanel.dfm │ └── uRelativePanel.pas ├── SearchBox │ ├── SearchBox.dpr │ ├── SearchBox.dproj │ ├── SearchBox.res │ ├── uSearchBox.dfm │ └── uSearchBox.pas ├── SplitView │ ├── SplitView.dpr │ ├── SplitView.dproj │ ├── SplitView.res │ ├── uSplitView.dfm │ └── uSplitView.pas ├── SystemMetrics │ ├── SystemMetrics.dpr │ ├── SystemMetrics.dproj │ ├── SystemMetrics.res │ ├── SystemMetricsForm.dfm │ └── SystemMetricsForm.pas ├── ToggleSwitch │ ├── ToggleSwitch.dpr │ ├── ToggleSwitch.dproj │ ├── ToggleSwitch.res │ ├── uToggleSwitch.dfm │ └── uToggleSwitch.pas ├── VCL_CommonDialogStyling │ ├── CommonDialog.dfm │ ├── CommonDialog.pas │ ├── VCLDialogStyling.dpr │ ├── VCLDialogStyling.dproj │ └── VCLDialogStyling.res ├── WinRTDirect │ ├── WInRtDirect.dpr │ ├── WInRtDirect.dproj │ ├── WInRtDirect.identcache │ ├── WInRtDirect.res │ ├── WInRtDirect.stat │ ├── WinRTD_Form.dfm │ └── WinRTD_Form.pas └── Windows 10 Notifications │ ├── Notifications.dfm │ ├── Notifications.pas │ ├── NotificationsProject.dpr │ ├── NotificationsProject.dproj │ └── NotificationsProject.res └── Win11_Delphi11 ├── ControlListLiveBinding ├── ControlListLiveBindingDemo.dpr ├── ControlListLiveBindingDemo.dproj ├── ControlListLiveBindingDemo.res ├── ControlListLiveBindingUnit1.dfm └── ControlListLiveBindingUnit1.pas ├── Dynamic_Per_Conrol_Styles ├── DynamicStyles.dpr ├── DynamicStyles.dproj ├── DynamicStyles.res ├── DynamicStylesMain.dfm └── DynamicStylesMain.pas ├── Edge101 ├── Edge101.dpr ├── Edge101.dproj ├── Edge101.res ├── Edge101form.dfm └── Edge101form.pas ├── HighDPIImageList ├── DpiImageForm.dfm ├── DpiImageForm.pas ├── HighDPIImageList.dpr ├── HighDPIImageList.dproj └── HighDPIImageList.res ├── NumberBoxDemo ├── NumberBoxDemo.dpr ├── NumberBoxDemo.dproj ├── NumberBoxDemo.res ├── NumberBoxDemo_Unit1.dfm └── NumberBoxDemo_Unit1.pas ├── SystemMetrics ├── SystemMetrics.dpr ├── SystemMetrics.dproj ├── SystemMetrics.res ├── SystemMetricsForm.dfm └── SystemMetricsForm.pas ├── VCLControlColorsB ├── VCLColorButtonsUnit1.dfm ├── VCLColorButtonsUnit1.pas ├── VCLControlColorsB.res ├── VCLControlColorsButtons.dpr ├── VCLControlColorsButtons.dproj └── VCLControlColorsButtons.res ├── VirtualImage_Demo ├── Unit1.dfm ├── Unit1.pas ├── VirtualImgDemo.dpr ├── VirtualImgDemo.dproj └── VirtualImgDemo.res ├── Win11Round ├── TitleBar_Form.dfm ├── TitleBar_Form.pas ├── Win11Forms.pas ├── Win11_DemoForm.dfm ├── Win11_DemoForm.pas ├── Win11_DemoProject.dpr ├── Win11_DemoProject.dproj └── Win11_DemoProject.res └── multistyle_101 ├── multi_style.dpr ├── multi_style.dproj ├── multi_style.res ├── multi_style_form.dfm └── multi_style_form.pas /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | *.dcu 3 | 4 | *.vrc 5 | 6 | *.exe 7 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/01_GenericMethod/GenericForm.fmx: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form1' 5 | ClientHeight = 567 6 | ClientWidth = 384 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 3 11 | object Memo1: TMemo 12 | Touch.InteractiveGestures = [Pan, LongTap, DoubleTap] 13 | DataDetectorTypes = [] 14 | Align = Client 15 | Size.Width = 384.000000000000000000 16 | Size.Height = 479.000000000000000000 17 | Size.PlatformDefault = False 18 | TabOrder = 0 19 | Viewport.Width = 376.000000000000000000 20 | Viewport.Height = 471.000000000000000000 21 | end 22 | object Button1: TButton 23 | Align = Top 24 | Size.Width = 384.000000000000000000 25 | Size.Height = 44.000000000000000000 26 | Size.PlatformDefault = False 27 | TabOrder = 1 28 | Text = 'Correct Calls' 29 | OnClick = Button1Click 30 | end 31 | object Button2: TButton 32 | Align = Top 33 | Position.Y = 44.000000000000000000 34 | Size.Width = 384.000000000000000000 35 | Size.Height = 44.000000000000000000 36 | Size.PlatformDefault = False 37 | TabOrder = 2 38 | Text = 'Wrong Calls' 39 | OnClick = Button2Click 40 | end 41 | end 42 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/01_GenericMethod/GenericMethod.dpr: -------------------------------------------------------------------------------- 1 | program GenericMethod; 2 | 3 | uses 4 | System.StartUpCopy, 5 | // FMX.MobilePreview, 6 | FMX.Forms, 7 | GenericForm in 'GenericForm.pas' {Form1}; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.CreateForm(TForm1, Form1); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/01_GenericMethod/GenericMethod.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageCodeRage2018/01_GenericMethod/GenericMethod.res -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/02_SmartPointers/SmartPointers.dpr: -------------------------------------------------------------------------------- 1 | program SmartPointers; 2 | 3 | uses 4 | Forms, 5 | SmartPointers_MainForm in 'SmartPointers_MainForm.pas' {FormSmartPointers}, 6 | SmartPointerClass in 'SmartPointerClass.pas'; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.MainFormOnTaskbar := True; 13 | Application.CreateForm(TFormSmartPointers, FormSmartPointers); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/02_SmartPointers/SmartPointers.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageCodeRage2018/02_SmartPointers/SmartPointers.res -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/03_WeakIntfRef/WeakIntfRef.dpr: -------------------------------------------------------------------------------- 1 | program WeakIntfRef; 2 | 3 | uses 4 | Vcl.Forms, 5 | WeakIntfRef_Form in 'WeakIntfRef_Form.pas' {Form3}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm3, Form3); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/03_WeakIntfRef/WeakIntfRef.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageCodeRage2018/03_WeakIntfRef/WeakIntfRef.res -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/03_WeakIntfRef/WeakIntfRef_Form.dfm: -------------------------------------------------------------------------------- 1 | object Form3: TForm3 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form3' 5 | ClientHeight = 198 6 | ClientWidth = 437 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Button1: TButton 17 | Left = 48 18 | Top = 32 19 | Width = 75 20 | Height = 25 21 | Caption = 'Weak Ref' 22 | TabOrder = 0 23 | OnClick = Button1Click 24 | end 25 | object Button2: TButton 26 | Left = 48 27 | Top = 64 28 | Width = 75 29 | Height = 25 30 | Caption = 'Unsafe Ref' 31 | TabOrder = 1 32 | OnClick = Button2Click 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/04_InlineVars/InlineVars.dpr: -------------------------------------------------------------------------------- 1 | program InlineVars; 2 | 3 | uses 4 | Vcl.Forms, 5 | InlineVarsForm in 'InlineVarsForm.pas' {Form15}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm15, Form15); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/04_InlineVars/InlineVars.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageCodeRage2018/04_InlineVars/InlineVars.res -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/04_InlineVars/InlineVarsForm.dfm: -------------------------------------------------------------------------------- 1 | object Form15: TForm15 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form15' 5 | ClientHeight = 212 6 | ClientWidth = 472 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Button1: TButton 17 | Left = 40 18 | Top = 32 19 | Width = 75 20 | Height = 25 21 | Caption = 'Button1' 22 | TabOrder = 0 23 | end 24 | object Button2: TButton 25 | Left = 40 26 | Top = 96 27 | Width = 75 28 | Height = 25 29 | Caption = 'Button2' 30 | TabOrder = 1 31 | end 32 | object Button3: TButton 33 | Left = 192 34 | Top = 40 35 | Width = 75 36 | Height = 25 37 | Caption = 'Button3' 38 | TabOrder = 2 39 | end 40 | object Button4: TButton 41 | Left = 192 42 | Top = 96 43 | Width = 75 44 | Height = 25 45 | Caption = 'Button4' 46 | TabOrder = 3 47 | end 48 | end 49 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/04_InlineVars/InlineVarsForm.pas: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageCodeRage2018/04_InlineVars/InlineVarsForm.pas -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/05_InlineVarSpeed/INlineProj.dpr: -------------------------------------------------------------------------------- 1 | program INlineProj; 2 | 3 | uses 4 | Vcl.Forms, 5 | InlineWeird in 'InlineWeird.pas' {Form15}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm15, Form15); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/05_InlineVarSpeed/INlineProj.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageCodeRage2018/05_InlineVarSpeed/INlineProj.res -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/05_InlineVarSpeed/InlineWeird.dfm: -------------------------------------------------------------------------------- 1 | object Form15: TForm15 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form15' 5 | ClientHeight = 242 6 | ClientWidth = 472 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Button1: TButton 17 | Left = 56 18 | Top = 64 19 | Width = 75 20 | Height = 25 21 | Caption = 'Button1' 22 | TabOrder = 0 23 | OnClick = Button1Click 24 | end 25 | object Memo1: TMemo 26 | Left = 208 27 | Top = 72 28 | Width = 185 29 | Height = 89 30 | Lines.Strings = ( 31 | 'Memo1') 32 | TabOrder = 1 33 | end 34 | object Button2: TButton 35 | Left = 64 36 | Top = 120 37 | Width = 75 38 | Height = 25 39 | Caption = 'Button2' 40 | TabOrder = 2 41 | OnClick = Button2Click 42 | end 43 | end 44 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/06_MoreTypeInference/MoreTypeInference.dpr: -------------------------------------------------------------------------------- 1 | program MoreTypeInference; 2 | 3 | uses 4 | Vcl.Forms, 5 | mtiForm in 'mtiForm.pas' {Form15}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm15, Form15); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/06_MoreTypeInference/MoreTypeInference.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageCodeRage2018/06_MoreTypeInference/MoreTypeInference.res -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/06_MoreTypeInference/mtiForm.dfm: -------------------------------------------------------------------------------- 1 | object Form15: TForm15 2 | Left = 0 3 | Top = 0 4 | Caption = 'MoreTypeInference' 5 | ClientHeight = 217 6 | ClientWidth = 421 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Button1: TButton 17 | Left = 48 18 | Top = 88 19 | Width = 75 20 | Height = 25 21 | Caption = 'Types' 22 | TabOrder = 0 23 | OnClick = Button1Click 24 | end 25 | object Button2: TButton 26 | Left = 176 27 | Top = 88 28 | Width = 75 29 | Height = 25 30 | Caption = 'Button2' 31 | TabOrder = 1 32 | OnClick = Button2Click 33 | end 34 | object Button3: TButton 35 | Left = 48 36 | Top = 48 37 | Width = 75 38 | Height = 25 39 | Caption = 'Objects' 40 | TabOrder = 2 41 | OnClick = Button3Click 42 | end 43 | end 44 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/07_BlockScope/BlockScope.dpr: -------------------------------------------------------------------------------- 1 | program BlockScope; 2 | 3 | uses 4 | Vcl.Forms, 5 | BlockScope_Form in 'BlockScope_Form.pas' {Form3}, 6 | SmartPointerClass in 'SmartPointerClass.pas'; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.MainFormOnTaskbar := True; 13 | Application.CreateForm(TForm3, Form3); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/07_BlockScope/BlockScope.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageCodeRage2018/07_BlockScope/BlockScope.res -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/07_BlockScope/BlockScope_Form.dfm: -------------------------------------------------------------------------------- 1 | object Form3: TForm3 2 | Left = 0 3 | Top = 0 4 | Caption = 'BlockScope' 5 | ClientHeight = 299 6 | ClientWidth = 635 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Button1: TButton 17 | Left = 56 18 | Top = 40 19 | Width = 75 20 | Height = 25 21 | Caption = 'Button1' 22 | TabOrder = 0 23 | OnClick = Button1Click 24 | end 25 | object Memo1: TMemo 26 | Left = 192 27 | Top = 40 28 | Width = 273 29 | Height = 201 30 | TabOrder = 1 31 | end 32 | end 33 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/07_BlockScope/BlockScope_Form.pas: -------------------------------------------------------------------------------- 1 | unit BlockScope_Form; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; 8 | 9 | type 10 | TForm3 = class(TForm) 11 | Button1: TButton; 12 | Memo1: TMemo; 13 | procedure Button1Click(Sender: TObject); 14 | private 15 | { Private declarations } 16 | public 17 | { Public declarations } 18 | end; 19 | 20 | var 21 | Form3: TForm3; 22 | 23 | procedure Log (const strMessage: string); 24 | 25 | implementation 26 | 27 | {$R *.dfm} 28 | 29 | uses 30 | SmartPointerClass; 31 | 32 | procedure Log (const strMessage: string); 33 | begin 34 | if Assigned (Form3) and Assigned (Form3.Memo1) then 35 | Form3.Memo1.Lines.Add(strMessage); 36 | end; 37 | 38 | procedure TForm3.Button1Click(Sender: TObject); 39 | begin 40 | Log ('Here'); 41 | 42 | begin 43 | var sl:= TStringList.Create; 44 | var sp := TSmartPointer .Create (sl); 45 | sl.Add ('hello'); 46 | Log ('Items = ' + sl.Count.ToString); 47 | end; 48 | 49 | Log ('There'); 50 | end; 51 | 52 | end. 53 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/07_MissingAttribute/MissingAttribute.dpr: -------------------------------------------------------------------------------- 1 | program MissingAttribute; 2 | 3 | uses 4 | Vcl.Forms, 5 | MissingAttribute_Form in 'MissingAttribute_Form.pas' {Form3}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm3, Form3); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/07_MissingAttribute/MissingAttribute.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageCodeRage2018/07_MissingAttribute/MissingAttribute.res -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/07_MissingAttribute/MissingAttribute_Form.dfm: -------------------------------------------------------------------------------- 1 | object Form3: TForm3 2 | Left = 0 3 | Top = 0 4 | Caption = 'Missing Attribute' 5 | ClientHeight = 299 6 | ClientWidth = 635 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Button1: TButton 17 | Left = 56 18 | Top = 56 19 | Width = 75 20 | Height = 25 21 | Caption = 'Button1' 22 | TabOrder = 0 23 | end 24 | end 25 | -------------------------------------------------------------------------------- /DelphiLanguageCodeRage2018/07_MissingAttribute/MissingAttribute_Form.pas: -------------------------------------------------------------------------------- 1 | unit MissingAttribute_Form; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; 8 | 9 | type 10 | TForm3 = class(TForm) 11 | Button1: TButton; 12 | private 13 | { Private declarations } 14 | public 15 | { Public declarations } 16 | end; 17 | 18 | var 19 | Form3: TForm3; 20 | 21 | implementation 22 | 23 | {$R *.dfm} 24 | 25 | {$WARN UNKNOWN_CUSTOM_ATTRIBUTE ERROR} 26 | 27 | type 28 | [Test] 29 | TTest = class 30 | 31 | end; 32 | 33 | end. 34 | -------------------------------------------------------------------------------- /DelphiLanguageSession/01_SmartPointers/SmartPointers.dpr: -------------------------------------------------------------------------------- 1 | program SmartPointers; 2 | 3 | uses 4 | Forms, 5 | SmartPointers_MainForm in 'SmartPointers_MainForm.pas' {FormSmartPointers}, 6 | SmartPointerClass in 'SmartPointerClass.pas'; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.MainFormOnTaskbar := True; 13 | Application.CreateForm(TFormSmartPointers, FormSmartPointers); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /DelphiLanguageSession/01_SmartPointers/SmartPointers.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/01_SmartPointers/SmartPointers.res -------------------------------------------------------------------------------- /DelphiLanguageSession/02_CovariantReturnTypes/Covariant.dpr: -------------------------------------------------------------------------------- 1 | program Covariant; 2 | 3 | uses 4 | Vcl.Forms, 5 | Covariant_MainForm in 'Covariant_MainForm.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageSession/02_CovariantReturnTypes/Covariant.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/02_CovariantReturnTypes/Covariant.res -------------------------------------------------------------------------------- /DelphiLanguageSession/02_CovariantReturnTypes/Covariant_MainForm.dfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 0 3 | Top = 0 4 | Caption = 'Covariant' 5 | ClientHeight = 470 6 | ClientWidth = 699 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -13 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 120 15 | TextHeight = 16 16 | object Button1: TButton 17 | Left = 24 18 | Top = 32 19 | Width = 75 20 | Height = 25 21 | Caption = 'animals' 22 | TabOrder = 0 23 | OnClick = Button1Click 24 | end 25 | object Memo1: TMemo 26 | Left = 120 27 | Top = 32 28 | Width = 537 29 | Height = 409 30 | TabOrder = 1 31 | end 32 | end 33 | -------------------------------------------------------------------------------- /DelphiLanguageSession/03_AnonymousCalculatedFields/AnonymousCalculatedFields.dpr: -------------------------------------------------------------------------------- 1 | program AnonymousCalculatedFields; 2 | 3 | uses 4 | Vcl.Forms, 5 | AnonymousCalculatedFields_MainForm in 'AnonymousCalculatedFields_MainForm.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageSession/03_AnonymousCalculatedFields/AnonymousCalculatedFields.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/03_AnonymousCalculatedFields/AnonymousCalculatedFields.res -------------------------------------------------------------------------------- /DelphiLanguageSession/04_ParallelFor/Entitlement.TemplateOSX32.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | <%appSandboxKeys%> 6 | 7 | 8 | -------------------------------------------------------------------------------- /DelphiLanguageSession/04_ParallelFor/Entitlement.TemplateiOS.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | <%getTaskAllowKey%> 6 | <%applicationIdentifier%> 7 | <%pushNotificationKey%> 8 | <%keychainAccessGroups%> 9 | 10 | 11 | -------------------------------------------------------------------------------- /DelphiLanguageSession/04_ParallelFor/ParallelForVCL.dpr: -------------------------------------------------------------------------------- 1 | program ParallelForVCL; 2 | 3 | uses 4 | Forms, 5 | ParallelFor_MainForm in 'ParallelFor_MainForm.pas' {FormParallelFor}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.CreateForm(TFormParallelFor, FormParallelFor); 12 | Application.Run; 13 | end. 14 | -------------------------------------------------------------------------------- /DelphiLanguageSession/04_ParallelFor/ParallelForVCL.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/04_ParallelFor/ParallelForVCL.res -------------------------------------------------------------------------------- /DelphiLanguageSession/04_ParallelFor/ParallelFor_MainForm.dfm: -------------------------------------------------------------------------------- 1 | object FormParallelFor: TFormParallelFor 2 | Left = 206 3 | Top = 147 4 | Width = 437 5 | Height = 496 6 | HorzScrollBar.Range = 44 7 | HorzScrollBar.Tracking = True 8 | VertScrollBar.Range = 89 9 | Caption = 'ParallelFor' 10 | Color = clBtnFace 11 | Font.Charset = DEFAULT_CHARSET 12 | Font.Color = clWindowText 13 | Font.Height = -11 14 | Font.Name = 'MS Sans Serif' 15 | Font.Style = [] 16 | OldCreateOrder = True 17 | PixelsPerInch = 96 18 | TextHeight = 13 19 | object btnPlainForLoop: TButton 20 | Left = 24 21 | Top = 24 22 | Width = 185 23 | Height = 25 24 | Caption = 'btnPlainForLoop' 25 | TabOrder = 0 26 | OnClick = btnPlainForLoopClick 27 | end 28 | object Memo1: TMemo 29 | Left = 24 30 | Top = 64 31 | Width = 376 32 | Height = 369 33 | TabOrder = 1 34 | end 35 | object btnParallelForLoop: TButton 36 | Left = 215 37 | Top = 24 38 | Width = 185 39 | Height = 25 40 | Caption = 'btnParallelForLoop' 41 | TabOrder = 2 42 | OnClick = btnParallelForLoopClick 43 | end 44 | end 45 | -------------------------------------------------------------------------------- /DelphiLanguageSession/04_ParallelFor/ParallelFormMulti.dpr: -------------------------------------------------------------------------------- 1 | program ParallelFormMulti; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | ParallelForMultiForm in 'ParallelForMultiForm.pas' {Form5}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm5, Form5); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageSession/04_ParallelFor/ParallelFormMulti.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/04_ParallelFor/ParallelFormMulti.res -------------------------------------------------------------------------------- /DelphiLanguageSession/05_ParallelTasksAndFutures/ParallelForm.dfm: -------------------------------------------------------------------------------- 1 | object FormThreading: TFormThreading 2 | Left = 0 3 | Top = 0 4 | Caption = 'System.Threading' 5 | ClientHeight = 305 6 | ClientWidth = 586 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Button1: TButton 17 | Left = 32 18 | Top = 24 19 | Width = 129 20 | Height = 25 21 | Caption = 'Delayed Message' 22 | TabOrder = 0 23 | OnClick = Button1Click 24 | end 25 | object Button2: TButton 26 | Left = 32 27 | Top = 64 28 | Width = 129 29 | Height = 25 30 | Caption = 'Wait for all' 31 | TabOrder = 1 32 | OnClick = Button2Click 33 | end 34 | object Button3: TButton 35 | Left = 224 36 | Top = 24 37 | Width = 129 38 | Height = 25 39 | Caption = 'Future' 40 | TabOrder = 2 41 | OnClick = Button3Click 42 | end 43 | object Memo1: TMemo 44 | Left = 224 45 | Top = 66 46 | Width = 265 47 | Height = 159 48 | TabOrder = 3 49 | end 50 | end 51 | -------------------------------------------------------------------------------- /DelphiLanguageSession/05_ParallelTasksAndFutures/ParallelTaskAndFutures.dpr: -------------------------------------------------------------------------------- 1 | program ParallelTaskAndFutures; 2 | 3 | uses 4 | Vcl.Forms, 5 | ParallelForm in 'ParallelForm.pas' {FormThreading}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TFormThreading, FormThreading); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageSession/05_ParallelTasksAndFutures/ParallelTaskAndFutures.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/05_ParallelTasksAndFutures/ParallelTaskAndFutures.res -------------------------------------------------------------------------------- /DelphiLanguageSession/06_Casting_Interfaces_To_Objects/CastingIntf2Obj.dpr: -------------------------------------------------------------------------------- 1 | program CastingIntf2Obj; 2 | 3 | uses 4 | Forms, 5 | uFormMain in 'uFormMain.pas' {Form14}, 6 | uMyDataModule in 'uMyDataModule.pas' {DataModule1: TDataModule}, 7 | uIntfDataAccess in 'uIntfDataAccess.pas'; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | Application.CreateForm(TForm14, Form14); 15 | Application.CreateForm(TDataModule1, DataModule1); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /DelphiLanguageSession/06_Casting_Interfaces_To_Objects/CastingIntf2Obj.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/06_Casting_Interfaces_To_Objects/CastingIntf2Obj.res -------------------------------------------------------------------------------- /DelphiLanguageSession/06_Casting_Interfaces_To_Objects/uFormMain.dfm: -------------------------------------------------------------------------------- 1 | object Form14: TForm14 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form14' 5 | ClientHeight = 143 6 | ClientWidth = 320 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Button1: TButton 17 | Left = 56 18 | Top = 48 19 | Width = 75 20 | Height = 25 21 | Caption = 'Button1' 22 | TabOrder = 0 23 | OnClick = Button1Click 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /DelphiLanguageSession/06_Casting_Interfaces_To_Objects/uFormMain.pas: -------------------------------------------------------------------------------- 1 | unit uFormMain; 2 | 3 | interface 4 | 5 | uses 6 | Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, 7 | Dialogs, StdCtrls; 8 | 9 | type 10 | TForm14 = class(TForm) 11 | Button1: TButton; 12 | procedure Button1Click(Sender: TObject); 13 | private 14 | { Private declarations } 15 | public 16 | { Public declarations } 17 | end; 18 | 19 | var 20 | Form14: TForm14; 21 | 22 | implementation 23 | 24 | uses uMyDataModule, uIntfDataAccess; 25 | 26 | {$R *.dfm} 27 | 28 | procedure TForm14.Button1Click(Sender: TObject); 29 | var aIntf: IMyDataAccess; dm: TDataModule1; x: integer; 30 | begin 31 | aIntf := DataModule1; 32 | 33 | // aIntf.SomeOtherProc; // <- compile error 34 | 35 | if aIntf is TDataModule1 then 36 | begin 37 | ShowMessage('aIntf is TDataModule1'); 38 | 39 | dm := TDataModule1(aIntf); 40 | // dm := aIntf as TDataModule; 41 | 42 | dm.SomeOtherProc; 43 | end 44 | else 45 | ShowMessage('aIntf is not TDataModule1'); 46 | end; 47 | 48 | end. 49 | -------------------------------------------------------------------------------- /DelphiLanguageSession/06_Casting_Interfaces_To_Objects/uIntfDataAccess.pas: -------------------------------------------------------------------------------- 1 | unit uIntfDataAccess; 2 | 3 | interface 4 | 5 | type 6 | IMyDataAccess = interface 7 | function GetRecordCount: integer; 8 | end; 9 | 10 | implementation 11 | 12 | end. 13 | -------------------------------------------------------------------------------- /DelphiLanguageSession/06_Casting_Interfaces_To_Objects/uMyDataModule.dfm: -------------------------------------------------------------------------------- 1 | object DataModule1: TDataModule1 2 | Tag = 42 3 | OldCreateOrder = False 4 | Height = 237 5 | Width = 307 6 | end 7 | -------------------------------------------------------------------------------- /DelphiLanguageSession/06_Casting_Interfaces_To_Objects/uMyDataModule.pas: -------------------------------------------------------------------------------- 1 | unit uMyDataModule; 2 | 3 | interface 4 | 5 | uses 6 | SysUtils, Classes, uIntfDataAccess; 7 | 8 | type 9 | TDataModule1 = class(TDataModule, IMyDataAccess) 10 | private 11 | { Private declarations } 12 | public 13 | 14 | procedure SomeOtherProc; 15 | 16 | // IMyDataAccess 17 | function GetRecordCount: integer; 18 | end; 19 | 20 | var 21 | DataModule1: TDataModule1; 22 | 23 | implementation 24 | 25 | uses Dialogs; 26 | 27 | {$R *.dfm} 28 | 29 | { TDataModule1 } 30 | 31 | function TDataModule1.GetRecordCount: integer; 32 | begin 33 | Result := 10; // ... or whatever 34 | end; 35 | 36 | procedure TDataModule1.SomeOtherProc; 37 | begin 38 | ShowMessage('I''m some other proc'); 39 | end; 40 | 41 | end. 42 | -------------------------------------------------------------------------------- /DelphiLanguageSession/07_DescriptionAttribute/DescriptionAttribute.dpr: -------------------------------------------------------------------------------- 1 | program DescriptionAttribute; 2 | 3 | uses 4 | Forms, 5 | DescriptionAttribute_MainForm in 'DescriptionAttribute_MainForm.pas' {FormDescrAttr}, 6 | DescriptionAttribute_Classes in 'DescriptionAttribute_Classes.pas'; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.MainFormOnTaskbar := True; 13 | Application.CreateForm(TFormDescrAttr, FormDescrAttr); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /DelphiLanguageSession/07_DescriptionAttribute/DescriptionAttribute.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/07_DescriptionAttribute/DescriptionAttribute.res -------------------------------------------------------------------------------- /DelphiLanguageSession/07_DescriptionAttribute/DescriptionAttribute_MainForm.dfm: -------------------------------------------------------------------------------- 1 | object FormDescrAttr: TFormDescrAttr 2 | Left = 0 3 | Top = 0 4 | Caption = 'DescriptionAttributes' 5 | ClientHeight = 201 6 | ClientWidth = 578 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnCreate = FormCreate 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | object ListView1: TListView 18 | Left = 24 19 | Top = 16 20 | Width = 537 21 | Height = 169 22 | Columns = < 23 | item 24 | Caption = 'ID' 25 | Width = 150 26 | end 27 | item 28 | AutoSize = True 29 | Caption = 'Description' 30 | end> 31 | TabOrder = 0 32 | ViewStyle = vsReport 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /DelphiLanguageSession/08_DynamicScripting/ExternalDsl.dpr: -------------------------------------------------------------------------------- 1 | program ExternalDsl; 2 | 3 | uses 4 | Forms, 5 | ExternalDslMainForm in 'ExternalDslMainForm.pas' {Form39}, 6 | EdslScripting in 'EdslScripting.pas', 7 | ClassicAppointment in 'ClassicAppointment.pas'; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | Application.CreateForm(TForm39, Form39); 15 | Application.Run; 16 | end. 17 | -------------------------------------------------------------------------------- /DelphiLanguageSession/08_DynamicScripting/ExternalDsl.otares: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/08_DynamicScripting/ExternalDsl.otares -------------------------------------------------------------------------------- /DelphiLanguageSession/08_DynamicScripting/ExternalDsl.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/08_DynamicScripting/ExternalDsl.res -------------------------------------------------------------------------------- /DelphiLanguageSession/08_DynamicScripting/dates.txt: -------------------------------------------------------------------------------- 1 | let a = TStdAppointment.Create() 2 | a.At = 'Rome' 3 | a.Description = 'Delphi Meeting' 4 | a.ToString -------------------------------------------------------------------------------- /DelphiLanguageSession/08_DynamicScripting/formwithbutton.txt: -------------------------------------------------------------------------------- 1 | let x = TForm.Create(nil) 2 | x.Caption = 'Hello there' 3 | x.FName = 'Foo' 4 | x.ShowModal 5 | 6 | let b = TButton.Create(x) 7 | b.Parent = x 8 | b.Caption = 'Click Me!' 9 | b.ModalResult = 42 10 | 11 | x.ShowModal -------------------------------------------------------------------------------- /DelphiLanguageSession/09_InterceptBaseClass/InterceptBaseClass.dpr: -------------------------------------------------------------------------------- 1 | program InterceptBaseClass; 2 | 3 | uses 4 | Forms, 5 | InterceptBaseClass_MainForm in 'InterceptBaseClass_MainForm.pas' {FormIntercept}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TFormIntercept, FormIntercept); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageSession/09_InterceptBaseClass/InterceptBaseClass.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/09_InterceptBaseClass/InterceptBaseClass.res -------------------------------------------------------------------------------- /DelphiLanguageSession/10_SimpleTypeHelpers/SimpleHelpers.dpr: -------------------------------------------------------------------------------- 1 | program SimpleHelpers; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit1 in 'Unit1.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageSession/10_SimpleTypeHelpers/SimpleHelpers.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/10_SimpleTypeHelpers/SimpleHelpers.res -------------------------------------------------------------------------------- /DelphiLanguageSession/10_SimpleTypeHelpers/Unit1.dfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form1' 5 | ClientHeight = 135 6 | ClientWidth = 288 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Button1: TButton 17 | Left = 56 18 | Top = 38 19 | Width = 75 20 | Height = 25 21 | Caption = 'Button1' 22 | TabOrder = 0 23 | OnClick = Button1Click 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /DelphiLanguageSession/10_SimpleTypeHelpers/Unit1.pas: -------------------------------------------------------------------------------- 1 | unit Unit1; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; 8 | 9 | type 10 | TForm1 = class(TForm) 11 | Button1: TButton; 12 | procedure Button1Click(Sender: TObject); 13 | private 14 | { Private declarations } 15 | public 16 | { Public declarations } 17 | end; 18 | 19 | var 20 | Form1: TForm1; 21 | 22 | implementation 23 | 24 | {$R *.dfm} 25 | 26 | procedure TForm1.Button1Click(Sender: TObject); 27 | var s: string; i: integer; 28 | begin 29 | i := 10; 30 | s := i.ToString; 31 | ShowMessage(s); 32 | 33 | s := 5.ToString; 34 | ShowMessage(s); 35 | end; 36 | 37 | end. 38 | -------------------------------------------------------------------------------- /DelphiLanguageSession/11_ArcExperiments/ArcExperiments.dpr: -------------------------------------------------------------------------------- 1 | program ArcExperiments; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | ArcExperiments_MainForm in 'ArcExperiments_MainForm.pas' {Form3}, 7 | Arc_MoreClasses in 'Arc_MoreClasses.pas'; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.CreateForm(TForm3, Form3); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /DelphiLanguageSession/11_ArcExperiments/ArcExperiments.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/11_ArcExperiments/ArcExperiments.res -------------------------------------------------------------------------------- /DelphiLanguageSession/12_ArcWeakUnsafe/ArcWeakUnsafe.dpr: -------------------------------------------------------------------------------- 1 | program ArcWeakUnsafe; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | ArcWeakUnsafe_Form in 'ArcWeakUnsafe_Form.pas' {Form25}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm25, Form25); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageSession/12_ArcWeakUnsafe/ArcWeakUnsafe.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/12_ArcWeakUnsafe/ArcWeakUnsafe.res -------------------------------------------------------------------------------- /DelphiLanguageSession/13_ClassOperators/ClassOpMainForm.fmx: -------------------------------------------------------------------------------- 1 | object Form3: TForm3 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form3' 5 | ClientHeight = 460 6 | ClientWidth = 320 7 | FormFactor.Width = 1440 8 | FormFactor.Height = 900 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 2 11 | object Button1: TButton 12 | Position.X = 56.000000000000000000 13 | Position.Y = 24.000000000000000000 14 | Size.Width = 73.000000000000000000 15 | Size.Height = 44.000000000000000000 16 | Size.PlatformDefault = False 17 | TabOrder = 0 18 | Text = 'Button1' 19 | OnClick = Button1Click 20 | end 21 | object Memo1: TMemo 22 | DataDetectorTypes = [] 23 | Position.X = 64.000000000000000000 24 | Position.Y = 120.000000000000000000 25 | Size.Width = 209.000000000000000000 26 | Size.Height = 145.000000000000000000 27 | Size.PlatformDefault = False 28 | TabOrder = 1 29 | Viewport.Width = 201.000000000000000000 30 | Viewport.Height = 137.000000000000000000 31 | end 32 | end 33 | -------------------------------------------------------------------------------- /DelphiLanguageSession/13_ClassOperators/ClassOperators.dpr: -------------------------------------------------------------------------------- 1 | program ClassOperators; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | ClassOpMainForm in 'ClassOpMainForm.pas' {Form3}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm3, Form3); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageSession/13_ClassOperators/ClassOperators.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/13_ClassOperators/ClassOperators.res -------------------------------------------------------------------------------- /DelphiLanguageSession/14_WeakIntfRef/WeakIntfRef.dpr: -------------------------------------------------------------------------------- 1 | program WeakIntfRef; 2 | 3 | uses 4 | Vcl.Forms, 5 | WeakIntfRef_Form in 'WeakIntfRef_Form.pas' {Form3}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm3, Form3); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageSession/14_WeakIntfRef/WeakIntfRef.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/14_WeakIntfRef/WeakIntfRef.res -------------------------------------------------------------------------------- /DelphiLanguageSession/14_WeakIntfRef/WeakIntfRef_Form.dfm: -------------------------------------------------------------------------------- 1 | object Form3: TForm3 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form3' 5 | ClientHeight = 198 6 | ClientWidth = 437 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Button1: TButton 17 | Left = 48 18 | Top = 32 19 | Width = 75 20 | Height = 25 21 | Caption = 'Weak Ref' 22 | TabOrder = 0 23 | OnClick = Button1Click 24 | end 25 | object Button2: TButton 26 | Left = 48 27 | Top = 64 28 | Width = 75 29 | Height = 25 30 | Caption = 'Unsafe Ref' 31 | TabOrder = 1 32 | OnClick = Button2Click 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /DelphiLanguageSession/15_DynamicArrays/DynamicArraysForm.dfm: -------------------------------------------------------------------------------- 1 | object FormDynArray: TFormDynArray 2 | Left = 0 3 | Top = 0 4 | Caption = 'FormDynArray' 5 | ClientHeight = 429 6 | ClientWidth = 485 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object btnArrayInit: TButton 17 | Left = 48 18 | Top = 32 19 | Width = 129 20 | Height = 41 21 | Caption = 'btnArrayInit' 22 | TabOrder = 0 23 | OnClick = btnArrayInitClick 24 | end 25 | object btnArrayRTL: TButton 26 | Left = 48 27 | Top = 88 28 | Width = 129 29 | Height = 41 30 | Caption = 'btnArrayRTL' 31 | TabOrder = 1 32 | OnClick = btnArrayRTLClick 33 | end 34 | object Memo1: TMemo 35 | Left = 48 36 | Top = 152 37 | Width = 265 38 | Height = 233 39 | TabOrder = 2 40 | end 41 | object btnButtonsArray: TButton 42 | Left = 208 43 | Top = 32 44 | Width = 105 45 | Height = 41 46 | Caption = 'btnButtonsArray' 47 | TabOrder = 3 48 | OnClick = btnButtonsArrayClick 49 | end 50 | end 51 | -------------------------------------------------------------------------------- /DelphiLanguageSession/15_DynamicArrays/DynamicArraysVCL.dpr: -------------------------------------------------------------------------------- 1 | program DynamicArraysVCL; 2 | 3 | uses 4 | Vcl.Forms, 5 | DynamicArraysForm in 'DynamicArraysForm.pas' {FormDynArray}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TFormDynArray, FormDynArray); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /DelphiLanguageSession/15_DynamicArrays/DynamicArraysVCL.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/DelphiLanguageSession/15_DynamicArrays/DynamicArraysVCL.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/01_RttiAccess/RttiAccess.dpr: -------------------------------------------------------------------------------- 1 | program RttiAccess; 2 | 3 | uses 4 | Forms, 5 | RttiAccessMainForm in 'RttiAccessMainForm.pas' {Form39}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm39, Form39); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/01_RttiAccess/RttiAccess.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/01_RttiAccess/RttiAccess.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/02_Bindings101/Bindings101.dpr: -------------------------------------------------------------------------------- 1 | program Bindings101; 2 | 3 | uses 4 | Vcl.Forms, 5 | Bindings101_MainForm in 'Bindings101_MainForm.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TFormBindings, FormBindings); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/02_Bindings101/Bindings101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/02_Bindings101/Bindings101.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/02_CurrencyConverter/CurrencyConverter.dpr: -------------------------------------------------------------------------------- 1 | program CurrencyConverter; 2 | 3 | uses 4 | Vcl.Forms, 5 | mainformu in 'mainformu.pas' {Form1}, 6 | converteru in 'converteru.pas'; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.MainFormOnTaskbar := True; 13 | Application.CreateForm(TForm1, Form1); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/02_CurrencyConverter/CurrencyConverter.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/02_CurrencyConverter/CurrencyConverter.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/02_CurrencyConverter/mainformu.pas: -------------------------------------------------------------------------------- 1 | unit mainformu; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.Bind.EngExt, Vcl.Bind.DBEngExt, 8 | Data.Bind.Components, Vcl.StdCtrls, System.Rtti, System.Bindings.Outputs, 9 | Vcl.Bind.Editors, converteru; 10 | 11 | type 12 | TForm1 = class(TForm) 13 | Label1: TLabel; 14 | Label2: TLabel; 15 | DollarsEdit: TEdit; 16 | EurosEdit: TEdit; 17 | BindingsList1: TBindingsList; 18 | BindExprItemsDollarsEdit1: TBindExprItems; 19 | procedure OnChange(Sender: TObject); 20 | procedure FormCreate(Sender: TObject); 21 | private 22 | 23 | public 24 | { Public declarations } 25 | Converter: TConvertor; 26 | end; 27 | 28 | var 29 | Form1: TForm1; 30 | 31 | implementation 32 | 33 | {$R *.dfm} 34 | 35 | procedure TForm1.FormCreate(Sender: TObject); 36 | begin 37 | Converter := TConvertor.Create(Self); 38 | end; 39 | 40 | procedure TForm1.OnChange(Sender: TObject); 41 | begin 42 | BindingsList1.Notify(Sender, ''); 43 | end; 44 | 45 | end. 46 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/03_BindingExpressions/BindingExpressions.dpr: -------------------------------------------------------------------------------- 1 | program BindingExpressions; 2 | 3 | uses 4 | Vcl.Forms, 5 | BindingExpressions_MainForm in 'BindingExpressions_MainForm.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TFormBindings, FormBindings); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/03_BindingExpressions/BindingExpressions.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/03_BindingExpressions/BindingExpressions.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/03_BindingsExpr/BindingsExpr.dpr: -------------------------------------------------------------------------------- 1 | program BindingsExpr; 2 | 3 | uses 4 | Vcl.Forms, 5 | BindingsExpr_MainForm in 'BindingsExpr_MainForm.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/03_BindingsExpr/BindingsExpr.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/03_BindingsExpr/BindingsExpr.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/03_BindingsExpr/BindingsExpr_MainForm.dfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 0 3 | Top = 0 4 | Caption = 'BindingsExpr' 5 | ClientHeight = 514 6 | ClientWidth = 604 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -13 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 120 15 | TextHeight = 16 16 | object MemoExpr: TMemo 17 | Left = 32 18 | Top = 24 19 | Width = 545 20 | Height = 201 21 | Lines.Strings = ( 22 | 'person.name + " is " + fn.ToStr(person.age) + " years old."') 23 | TabOrder = 0 24 | end 25 | object btnEval: TButton 26 | Left = 248 27 | Top = 247 28 | Width = 75 29 | Height = 25 30 | Caption = 'btnEval' 31 | TabOrder = 1 32 | OnClick = btnEvalClick 33 | end 34 | object MemoOut: TMemo 35 | Left = 40 36 | Top = 288 37 | Width = 537 38 | Height = 185 39 | TabOrder = 2 40 | end 41 | end 42 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/03_SimpleVCLLiveBindingsExample/SimpleVCLLiveBindingsExample.dpr: -------------------------------------------------------------------------------- 1 | program SimpleVCLLiveBindingsExample; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit1 in 'Unit1.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/03_SimpleVCLLiveBindingsExample/SimpleVCLLiveBindingsExample.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/03_SimpleVCLLiveBindingsExample/SimpleVCLLiveBindingsExample.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/03_SimpleVCLLiveBindingsExample/Unit1.dfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form1' 5 | ClientHeight = 277 6 | ClientWidth = 587 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -22 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OnResize = FormResize 14 | PixelsPerInch = 96 15 | TextHeight = 27 16 | object StatusBar1: TStatusBar 17 | Left = 0 18 | Top = 258 19 | Width = 587 20 | Height = 19 21 | Panels = <> 22 | SimplePanel = True 23 | ExplicitTop = 224 24 | ExplicitWidth = 527 25 | end 26 | object BindingsList1: TBindingsList 27 | Methods = <> 28 | OutputConverters = <> 29 | Left = 20 30 | Top = 5 31 | object BindExpressionStatusBar11: TBindExpression 32 | Category = 'Binding Expressions' 33 | ControlComponent = StatusBar1 34 | SourceComponent = Owner 35 | SourceExpression = #39'Width: '#39' + ToStr(Width) + '#39', Height: '#39' + ToStr(Height)' 36 | ControlExpression = 'SimpleText' 37 | NotifyOutputs = False 38 | Direction = dirSourceToControl 39 | end 40 | end 41 | end 42 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/03_SimpleVCLLiveBindingsExample/Unit1.pas: -------------------------------------------------------------------------------- 1 | unit Unit1; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.Bind.EngExt, Vcl.Bind.DBEngExt, 8 | System.Rtti, System.Bindings.Outputs, Vcl.Bind.Editors, Vcl.ComCtrls, 9 | Data.Bind.Components; 10 | 11 | type 12 | TForm1 = class(TForm) 13 | StatusBar1: TStatusBar; 14 | BindingsList1: TBindingsList; 15 | BindExpressionStatusBar11: TBindExpression; 16 | procedure FormResize(Sender: TObject); 17 | private 18 | { Private declarations } 19 | public 20 | { Public declarations } 21 | end; 22 | 23 | var 24 | Form1: TForm1; 25 | 26 | implementation 27 | 28 | {$R *.dfm} 29 | 30 | procedure TForm1.FormResize(Sender: TObject); 31 | begin 32 | BindingsList1.Notify(Sender, ''); 33 | end; 34 | 35 | end. 36 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/04_BindindList101/BindindList101.dpr: -------------------------------------------------------------------------------- 1 | program BindindList101; 2 | 3 | uses 4 | Vcl.Forms, 5 | Binfings101BindingsList_MainForm in 'Binfings101BindingsList_MainForm.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TFormBindings, FormBindings); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/04_BindindList101/BindindList101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/04_BindindList101/BindindList101.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/04_BindingsList/BindingsList.dpr: -------------------------------------------------------------------------------- 1 | program BindingsList; 2 | 3 | uses 4 | Vcl.Forms, 5 | BindingsList_MainForm in 'BindingsList_MainForm.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/04_BindingsList/BindingsList.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/04_BindingsList/BindingsList.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/05_LiveBindings101/LiveBindings101.dpr: -------------------------------------------------------------------------------- 1 | program LiveBindings101; 2 | 3 | uses 4 | Vcl.Forms, 5 | LiveBindings101_MainForm in 'LiveBindings101_MainForm.pas' {Form3}, 6 | Unit1 in 'Unit1.pas' {Form1}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.MainFormOnTaskbar := True; 13 | Application.CreateForm(TForm3, Form3); 14 | Application.CreateForm(TForm1, Form1); 15 | Application.Run; 16 | end. 17 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/05_LiveBindings101/LiveBindings101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/05_LiveBindings101/LiveBindings101.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/05_LiveBindings101/LiveBindings101_MainForm.pas: -------------------------------------------------------------------------------- 1 | unit LiveBindings101_MainForm; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.Bind.EngExt, Vcl.Bind.DBEngExt, 8 | System.Rtti, System.Bindings.Outputs, Vcl.Bind.Editors, 9 | Vcl.Samples.Bind.Editors, Data.Bind.Components, Vcl.ComCtrls, 10 | Vcl.Samples.Spin, Vcl.StdCtrls, Vcl.ExtCtrls, Vcl.NumberBox; 11 | 12 | type 13 | TForm3 = class(TForm) 14 | BindingsList1: TBindingsList; 15 | Shape1: TShape; 16 | ColorBox1: TColorBox; 17 | LinkControlToPropertyBrushColor: TLinkControlToProperty; 18 | NumberBox1: TNumberBox; 19 | ProgressBar1: TProgressBar; 20 | LinkControlToPropertyPosition: TLinkControlToProperty; 21 | procedure Edit1Change(Sender: TObject); 22 | private 23 | { Private declarations } 24 | public 25 | { Public declarations } 26 | end; 27 | 28 | var 29 | Form3: TForm3; 30 | 31 | implementation 32 | 33 | uses 34 | System.Bindings.Helper; 35 | 36 | {$R *.dfm} 37 | 38 | procedure TForm3.Edit1Change(Sender: TObject); 39 | begin 40 | TBindings.Notify(Sender, 'Text'); 41 | end; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/05_LiveBindings101/LiveBindings101_MainForm.vlb: -------------------------------------------------------------------------------- 1 | [BindingsList1] 2 | Coordinates=109,97,82,33 3 | 4 | [] 5 | Coordinates=0,0,64,51 6 | ExplicitSubNodes=Position 7 | 8 | [Shape1] 9 | Coordinates=200,100,60,51 10 | ExplicitSubNodes=Brush.Color 11 | 12 | [ColorBox1] 13 | Coordinates=50,100,66,51 14 | 15 | [NumberBox1] 16 | Coordinates=40,20,78,51 17 | 18 | [ProgressBar1] 19 | Coordinates=180,20,81,51 20 | 21 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/05_LiveBindings101/Unit1.vlb: -------------------------------------------------------------------------------- 1 | [NumberBox1] 2 | Coordinates=0,0,89,58 3 | 4 | [ProgressBar1] 5 | Coordinates=160,0,93,58 6 | 7 | [BindingsList1] 8 | Coordinates=97,70,91,36 9 | 10 | [SpinEdit1] 11 | Coordinates=108,77,70,58 12 | 13 | [ProgressBar2] 14 | Coordinates=330,80,93,58 15 | 16 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/06_BindingsDB/BindingsDB.dpr: -------------------------------------------------------------------------------- 1 | program BindingsDB; 2 | 3 | uses 4 | Vcl.Forms, 5 | BindingsDB_MainForm in 'BindingsDB_MainForm.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/06_BindingsDB/BindingsDB.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/06_BindingsDB/BindingsDB.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/06_BindingsDB/BindingsDB_MainForm.vlb: -------------------------------------------------------------------------------- 1 | [DataSource1] 2 | Visible=False 3 | Coordinates=297,141,77,33 4 | 5 | [BindScopeDB1] 6 | Coordinates=68,1,88,195 7 | 8 | [Edit1] 9 | Coordinates=410,140,40,51 10 | 11 | [Edit2] 12 | Coordinates=300,150,40,51 13 | 14 | [DBNavigator1] 15 | Coordinates=175,213,82,51 16 | 17 | [ClientDataSet1] 18 | Coordinates=60,330,87,51 19 | 20 | [Edit4] 21 | Coordinates=390,230,40,51 22 | 23 | [Edit3] 24 | Coordinates=37,234,40,51 25 | 26 | [Image1] 27 | Coordinates=0,0,49,51 28 | 29 | [BindingsList1] 30 | Coordinates=297,193,82,33 31 | 32 | [TrackBar1] 33 | Coordinates=330,10,64,51 34 | 35 | [ListBox1] 36 | Coordinates=520,30,84,123 37 | 38 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/06_BindingsDB/biolife.cds: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/06_BindingsDB/biolife.cds -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/07_TListViewObjects/ListViewObjectsForm.vlb: -------------------------------------------------------------------------------- 1 | [ListView1] 2 | Coordinates=0,0,116,278 3 | 4 | [PrototypeBindSource1] 5 | Coordinates=380,20,143,168 6 | 7 | [BindingsList1] 8 | Coordinates=116,124,82,33 9 | 10 | [] 11 | Coordinates=116,124,87,141 12 | 13 | [Label1] 14 | Coordinates=410,20,46,51 15 | Visible=False 16 | 17 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/07_TListViewObjects/VLBDemo_VCLListView_Objs1.dpr: -------------------------------------------------------------------------------- 1 | program VLBDemo_VCLListView_Objs1; 2 | 3 | uses 4 | Vcl.Forms, 5 | ListViewObjectsForm in 'ListViewObjectsForm.pas' {Form4}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm4, Form4); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/07_TListViewObjects/VLBDemo_VCLListView_Objs1.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/07_TListViewObjects/VLBDemo_VCLListView_Objs1.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/08_ControlListLiveBinding/ControlListLiveBindingDemo.dpr: -------------------------------------------------------------------------------- 1 | program ControlListLiveBindingDemo; 2 | 3 | uses 4 | Vcl.Forms, 5 | ControlListLiveBindingUnit1 in 'ControlListLiveBindingUnit1.pas' {frmCtrlListDemo3}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TfrmCtrlListDemo3, frmCtrlListDemo3); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/08_ControlListLiveBinding/ControlListLiveBindingDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Expressions_Bindings/08_ControlListLiveBinding/ControlListLiveBindingDemo.res -------------------------------------------------------------------------------- /EKON25_Expressions_Bindings/BindingsGroup.groupproj.local: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 2021/11/09 00:52:38.000.279,C:\Users\MarcoCantù\Documents\Embarcadero\Studio\Projects\ProjectGroup2.groupproj=C:\code_2021\Expressions_Bindings\BindingsGroup.groupproj 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/ControlListLiveBinding/ControlListLiveBindingDemo.dpr: -------------------------------------------------------------------------------- 1 | program ControlListLiveBindingDemo; 2 | 3 | uses 4 | Vcl.Forms, 5 | ControlListLiveBindingUnit1 in 'ControlListLiveBindingUnit1.pas' {frmCtrlListDemo3}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TfrmCtrlListDemo3, frmCtrlListDemo3); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/ControlListLiveBinding/ControlListLiveBindingDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Win11_Delphi11/ControlListLiveBinding/ControlListLiveBindingDemo.res -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/Dynamic_Per_Conrol_Styles/DynamicStyles.dpr: -------------------------------------------------------------------------------- 1 | program DynamicStyles; 2 | 3 | uses 4 | Vcl.Forms, 5 | Vcl.Themes, 6 | Vcl.Styles, 7 | DynamicStylesMain in 'DynamicStylesMain.pas' {Form1}; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | Application.HelpFile := 'No help for you'; 15 | Application.Title := 'Warning, may induce seizures!'; 16 | Application.CreateForm(TForm1, Form1); 17 | TStyleManager.TrySetStyle('Aqua Light Slate'); 18 | Application.Run; 19 | end. 20 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/Dynamic_Per_Conrol_Styles/DynamicStyles.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Win11_Delphi11/Dynamic_Per_Conrol_Styles/DynamicStyles.res -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/Edge101/Edge101.dpr: -------------------------------------------------------------------------------- 1 | program Edge101; 2 | 3 | uses 4 | Vcl.Forms, 5 | Edge101form in 'Edge101form.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/Edge101/Edge101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Win11_Delphi11/Edge101/Edge101.res -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/Edge101/Edge101form.dfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form1' 5 | ClientHeight = 299 6 | ClientWidth = 635 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | PixelsPerInch = 96 14 | DesignSize = ( 15 | 635 16 | 299) 17 | TextHeight = 13 18 | object EdgeBrowser1: TEdgeBrowser 19 | Left = 16 20 | Top = 39 21 | Width = 577 22 | Height = 241 23 | Anchors = [akLeft, akTop, akRight, akBottom] 24 | TabOrder = 0 25 | end 26 | object Button1: TButton 27 | Left = 16 28 | Top = 8 29 | Width = 75 30 | Height = 25 31 | Caption = 'Go' 32 | TabOrder = 1 33 | OnClick = Button1Click 34 | end 35 | end 36 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/Edge101/Edge101form.pas: -------------------------------------------------------------------------------- 1 | unit Edge101form; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, WebView2, Winapi.ActiveX, Vcl.StdCtrls, 8 | Vcl.Edge; 9 | 10 | type 11 | TForm1 = class(TForm) 12 | EdgeBrowser1: TEdgeBrowser; 13 | Button1: TButton; 14 | procedure Button1Click(Sender: TObject); 15 | private 16 | { Private declarations } 17 | public 18 | { Public declarations } 19 | end; 20 | 21 | var 22 | Form1: TForm1; 23 | 24 | implementation 25 | 26 | {$R *.dfm} 27 | 28 | procedure TForm1.Button1Click(Sender: TObject); 29 | begin 30 | EdgeBrowser1.Navigate('https://www.embarcadero.com'); 31 | end; 32 | 33 | end. 34 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/HighDPIImageList/HighDPIImageList.dpr: -------------------------------------------------------------------------------- 1 | program HighDPIImageList; 2 | 3 | uses 4 | Vcl.Forms, 5 | DpiImageForm in 'DpiImageForm.pas' {Form2}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm2, Form2); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/HighDPIImageList/HighDPIImageList.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Win11_Delphi11/HighDPIImageList/HighDPIImageList.res -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/NumberBoxDemo/NumberBoxDemo.dpr: -------------------------------------------------------------------------------- 1 | program NumberBoxDemo; 2 | 3 | uses 4 | Vcl.Forms, 5 | NumberBoxDemo_Unit1 in 'NumberBoxDemo_Unit1.pas' {NumBoxDemo}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | TStyleManager.TrySetStyle('Glow'); 15 | Application.CreateForm(TNumBoxDemo, NumBoxDemo); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/NumberBoxDemo/NumberBoxDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Win11_Delphi11/NumberBoxDemo/NumberBoxDemo.res -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/SystemMetrics/SystemMetrics.dpr: -------------------------------------------------------------------------------- 1 | program SystemMetrics; 2 | 3 | uses 4 | Vcl.Forms, 5 | SystemMetricsForm in 'SystemMetricsForm.pas' {frmSystemMetrics}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TfrmSystemMetrics, frmSystemMetrics); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/SystemMetrics/SystemMetrics.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Win11_Delphi11/SystemMetrics/SystemMetrics.res -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/SystemMetrics/SystemMetricsForm.dfm: -------------------------------------------------------------------------------- 1 | object frmSystemMetrics: TfrmSystemMetrics 2 | Left = 0 3 | Top = 0 4 | Caption = 'SystemMetrics' 5 | ClientHeight = 299 6 | ClientWidth = 388 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnCreate = FormCreate 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | object Label1: TLabel 18 | Left = 96 19 | Top = 40 20 | Width = 31 21 | Height = 13 22 | Caption = 'Label1' 23 | end 24 | object Label2: TLabel 25 | Left = 96 26 | Top = 72 27 | Width = 31 28 | Height = 13 29 | Caption = 'Label2' 30 | end 31 | object btnRefresh: TButton 32 | Left = 96 33 | Top = 104 34 | Width = 75 35 | Height = 25 36 | Caption = 'Refresh' 37 | TabOrder = 0 38 | OnClick = btnRefreshClick 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/SystemMetrics/SystemMetricsForm.pas: -------------------------------------------------------------------------------- 1 | unit SystemMetricsForm; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls; 8 | 9 | type 10 | TfrmSystemMetrics = class(TForm) 11 | Label1: TLabel; 12 | Label2: TLabel; 13 | btnRefresh: TButton; 14 | procedure FormCreate(Sender: TObject); 15 | procedure btnRefreshClick(Sender: TObject); 16 | private 17 | { Private declarations } 18 | public 19 | { Public declarations } 20 | end; 21 | 22 | var 23 | frmSystemMetrics: TfrmSystemMetrics; 24 | 25 | implementation 26 | 27 | {$R *.dfm} 28 | 29 | procedure TfrmSystemMetrics.btnRefreshClick(Sender: TObject); 30 | begin 31 | Label2.Caption := 'Current: ' + 32 | GetSystemMetrics (SM_CXVSCROLL).ToString; 33 | end; 34 | 35 | procedure TfrmSystemMetrics.FormCreate(Sender: TObject); 36 | begin 37 | Label1.Caption := 'Initial: ' + 38 | GetSystemMetrics (SM_CXVSCROLL).ToString; 39 | Label2.Caption := 'Current: ' + 40 | GetSystemMetrics (SM_CXVSCROLL).ToString; 41 | end; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/VCLControlColorsB/VCLColorButtonsUnit1.pas: -------------------------------------------------------------------------------- 1 | unit VCLColorButtonsUnit1; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.WinXCtrls, 8 | Vcl.StdCtrls, Vcl.Imaging.jpeg; 9 | 10 | type 11 | TForm1 = class(TForm) 12 | Button1: TButton; 13 | Button2: TButton; 14 | Button3: TButton; 15 | Button4: TButton; 16 | Button5: TButton; 17 | Button6: TButton; 18 | Button7: TButton; 19 | Button8: TButton; 20 | RelativePanel1: TRelativePanel; 21 | Image1: TImage; 22 | Button9: TButton; 23 | Button10: TButton; 24 | Button11: TButton; 25 | Label1: TLabel; 26 | private 27 | { Private declarations } 28 | public 29 | { Public declarations } 30 | end; 31 | 32 | var 33 | Form1: TForm1; 34 | 35 | implementation 36 | 37 | {$R *.dfm} 38 | 39 | end. 40 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/VCLControlColorsB/VCLControlColorsB.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Win11_Delphi11/VCLControlColorsB/VCLControlColorsB.res -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/VCLControlColorsB/VCLControlColorsButtons.dpr: -------------------------------------------------------------------------------- 1 | program VCLControlColorsButtons; 2 | 3 | uses 4 | Vcl.Forms, 5 | VCLColorButtonsUnit1 in 'VCLColorButtonsUnit1.pas' {Form1}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | TStyleManager.TrySetStyle('Windows10 SlateGray'); 15 | Application.CreateForm(TForm1, Form1); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/VCLControlColorsB/VCLControlColorsButtons.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Win11_Delphi11/VCLControlColorsB/VCLControlColorsButtons.res -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/VirtualImage_Demo/VirtualImgDemo.dpr: -------------------------------------------------------------------------------- 1 | program VirtualImgDemo; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit1 in 'Unit1.pas' {Form1}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | Application.CreateForm(TForm1, Form1); 15 | Application.Run; 16 | end. 17 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/VirtualImage_Demo/VirtualImgDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Win11_Delphi11/VirtualImage_Demo/VirtualImgDemo.res -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/Win11Round/TitleBar_Form.pas: -------------------------------------------------------------------------------- 1 | unit TitleBar_Form; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.TitleBarCtrls, Win11Forms; 8 | 9 | type 10 | TForm1 = class(TForm) 11 | TitleBarPanel1: TTitleBarPanel; 12 | Edit1: TEdit; 13 | private 14 | { Private declarations } 15 | public 16 | { Public declarations } 17 | end; 18 | 19 | var 20 | Form1: TForm1; 21 | 22 | implementation 23 | 24 | {$R *.dfm} 25 | 26 | end. 27 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/Win11Round/Win11_DemoForm.pas: -------------------------------------------------------------------------------- 1 | unit Win11_DemoForm; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Win11Forms; 8 | 9 | type 10 | TForm6 = class(TForm) 11 | Button1: TButton; 12 | ListBox1: TListBox; 13 | ListBox2: TListBox; 14 | procedure Button1Click(Sender: TObject); 15 | procedure ListBox2Click(Sender: TObject); 16 | private 17 | { Private declarations } 18 | public 19 | { Public declarations } 20 | end; 21 | 22 | var 23 | Form6: TForm6; 24 | 25 | implementation 26 | 27 | {$R *.dfm} 28 | 29 | uses 30 | System.DateUtils, Winapi.UxTheme, Winapi.Dwmapi, TitleBar_Form; 31 | 32 | procedure TForm6.Button1Click(Sender: TObject); 33 | begin 34 | ListBox1.Items.Add(Now.Format('hh:mm:ss')); 35 | end; 36 | 37 | procedure TForm6.ListBox2Click(Sender: TObject); 38 | begin 39 | case ListBox2.ItemIndex of 40 | 0: RoundedCorners := rcDefault; 41 | 1: RoundedCorners := rcOff; 42 | 2: RoundedCorners := rcOn; 43 | 3: RoundedCorners := rcSmall; 44 | end; 45 | 46 | TitleBar_Form.Form1.RoundedCorners := self.RoundedCorners; 47 | end; 48 | 49 | initialization 50 | TForm.DefaultRoundedCorners := rcOff; 51 | 52 | end. 53 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/Win11Round/Win11_DemoProject.dpr: -------------------------------------------------------------------------------- 1 | program Win11_DemoProject; 2 | 3 | uses 4 | Vcl.Forms, 5 | Win11_DemoForm in 'Win11_DemoForm.pas' {Form6}, 6 | Win11Forms in 'Win11Forms.pas', 7 | TitleBar_Form in 'TitleBar_Form.pas' {Form1}; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | Application.CreateForm(TForm6, Form6); 15 | Application.CreateForm(TForm1, Form1); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/Win11Round/Win11_DemoProject.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Win11_Delphi11/Win11Round/Win11_DemoProject.res -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/multistyle_101/multi_style.dpr: -------------------------------------------------------------------------------- 1 | program multi_style; 2 | 3 | uses 4 | Vcl.Forms, 5 | multi_style_form in 'multi_style_form.pas' {Form2}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | TStyleManager.TrySetStyle('Sky'); 15 | Application.CreateForm(TForm2, Form2); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/multistyle_101/multi_style.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Win11_Delphi11/multistyle_101/multi_style.res -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/multistyle_101/multi_style_form.pas: -------------------------------------------------------------------------------- 1 | unit multi_style_form; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, 8 | Vcl.BaseImageCollection, Vcl.ImageCollection, Vcl.VirtualImage; 9 | 10 | type 11 | TForm2 = class(TForm) 12 | Panel1: TPanel; 13 | Button1: TButton; 14 | Button3: TButton; 15 | Button2: TButton; 16 | Button4: TButton; 17 | Button5: TButton; 18 | private 19 | { Private declarations } 20 | public 21 | { Public declarations } 22 | end; 23 | 24 | var 25 | Form2: TForm2; 26 | 27 | implementation 28 | 29 | {$R *.dfm} 30 | 31 | end. 32 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/multistyle_101/multistyle.dpr: -------------------------------------------------------------------------------- 1 | program multistyle; 2 | 3 | uses 4 | Vcl.Forms, 5 | multi_style_form in 'multi_style_form.pas' {Form2}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | TStyleManager.TrySetStyle('Sky'); 15 | Application.CreateForm(TForm2, Form2); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /EKON25_Win11_Delphi11/multistyle_101/multistyle.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/EKON25_Win11_Delphi11/multistyle_101/multistyle.res -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/01_FMtoGPUcalls/FMtoGPUcalls.dpr: -------------------------------------------------------------------------------- 1 | program FMtoGPUcalls; 2 | 3 | uses 4 | FMX.Forms, FMX.Types, 5 | FMtoGPUcalls_mainform in 'FMtoGPUcalls_mainform.pas' {FormFMtoGPU}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | // FMX.Types.GlobalUseGPUCanvas := True; 11 | // FMX.Types.GlobalUseDirect2D := False; 12 | Application.Initialize; 13 | Application.CreateForm(TFormFMtoGPU, FormFMtoGPU); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/01_FMtoGPUcalls/FMtoGPUcalls.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/01_FMtoGPUcalls/FMtoGPUcalls.res -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/01_FMtoGPUcalls/FMtoGPUcalls_mainform.fmx: -------------------------------------------------------------------------------- 1 | object FormFMtoGPU: TFormFMtoGPU 2 | Left = 0 3 | Top = 0 4 | Caption = 'FMtoGPUcalls' 5 | ClientHeight = 234 6 | ClientWidth = 778 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop, iPhone, iPad] 10 | OnPaint = FormPaint 11 | DesignerMasterStyle = 0 12 | end 13 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/01_FMtoGPUcalls/FMtoGPUcalls_mainform.pas: -------------------------------------------------------------------------------- 1 | unit FMtoGPUcalls_mainform; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Graphics; 8 | 9 | type 10 | TFormFMtoGPU = class(TForm) 11 | procedure FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); 12 | private 13 | { Private declarations } 14 | public 15 | { Public declarations } 16 | end; 17 | 18 | var 19 | FormFMtoGPU: TFormFMtoGPU; 20 | 21 | implementation 22 | 23 | {$R *.fmx} 24 | 25 | procedure TFormFMtoGPU.FormPaint(Sender: TObject; 26 | Canvas: TCanvas; const ARect: TRectF); 27 | begin 28 | Canvas.Fill.Color := TAlphaColorRec.Blue; 29 | Canvas.Font.Size := Height div 3; 30 | Canvas.FillText ( 31 | ARect, Canvas.ClassName, True, 1, 32 | [], TTextAlign.taCenter); 33 | end; 34 | 35 | initialization 36 | // GlobalUseDirect2D := False; 37 | // GlobalUseGPUCanvas := True; 38 | // GlobalUseMetal := True; 39 | 40 | 41 | end. 42 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/02_CanvasPaint/CanvasPaint.dpr: -------------------------------------------------------------------------------- 1 | program CanvasPaint; 2 | 3 | uses 4 | FMX.Forms, 5 | CanvasPaint_MainForm in 'CanvasPaint_MainForm.pas' {CanvasPaintForm}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.CreateForm(TCanvasPaintForm, CanvasPaintForm); 12 | Application.Run; 13 | end. 14 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/02_CanvasPaint/CanvasPaint.otares: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/02_CanvasPaint/CanvasPaint.otares -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/02_CanvasPaint/CanvasPaint.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/02_CanvasPaint/CanvasPaint.res -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/02_CanvasPaint/CanvasPaint_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/02_CanvasPaint/CanvasPaint_Icon.ico -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/02_CanvasPaint/CanvasPaint_MainForm.fmx: -------------------------------------------------------------------------------- 1 | object CanvasPaintForm: TCanvasPaintForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'CanvasPaint' 5 | ClientHeight = 383 6 | ClientWidth = 786 7 | FormFactor.Width = 1280 8 | FormFactor.Height = 1024 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 0 11 | object PaintBox1: TPaintBox 12 | Position.X = 16.000000000000000000 13 | Position.Y = 8.000000000000000000 14 | Size.Width = 753.000000000000000000 15 | Size.Height = 161.000000000000000000 16 | Size.PlatformDefault = False 17 | OnPaint = PaintBox1Paint 18 | end 19 | object Label1: TLabel 20 | Position.X = 16.000000000000000000 21 | Position.Y = 184.000000000000000000 22 | Size.Width = 753.000000000000000000 23 | Size.Height = 177.000000000000000000 24 | Size.PlatformDefault = False 25 | Text = 'Label1' 26 | OnPaint = Label1Paint 27 | end 28 | object Button1: TButton 29 | Position.X = 296.000000000000000000 30 | Position.Y = 240.000000000000000000 31 | Size.Width = 137.000000000000000000 32 | Size.Height = 41.000000000000000000 33 | Size.PlatformDefault = False 34 | TabOrder = 2 35 | Text = 'Button1' 36 | OnClick = Button1Click 37 | end 38 | end 39 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/03_PrimitivePaint/PrimitivePaint.dpr: -------------------------------------------------------------------------------- 1 | program PrimitivePaint; 2 | 3 | uses 4 | FMX.Forms, 5 | PrimitivePaint_MainForm in 'PrimitivePaint_MainForm.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.CreateForm(TForm1, Form1); 12 | Application.Run; 13 | end. 14 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/03_PrimitivePaint/PrimitivePaint.otares: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/03_PrimitivePaint/PrimitivePaint.otares -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/03_PrimitivePaint/PrimitivePaint.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/03_PrimitivePaint/PrimitivePaint.res -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/03_PrimitivePaint/PrimitivePaint_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/03_PrimitivePaint/PrimitivePaint_Icon.ico -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/03_PrimitivePaint/PrimitivePaint_MainForm.pas: -------------------------------------------------------------------------------- 1 | unit PrimitivePaint_MainForm; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Objects, FMX.Layouts, 8 | FMX.StdCtrls, FMX.Controls.Presentation; 9 | 10 | type 11 | TForm1 = class(TForm) 12 | Layout1: TLayout; 13 | Rectangle1: TRectangle; 14 | Rectangle2: TRectangle; 15 | Label1: TLabel; 16 | Button1: TButton; 17 | Path1: TPath; 18 | procedure Button1Click(Sender: TObject); 19 | private 20 | { Private declarations } 21 | public 22 | { Public declarations } 23 | end; 24 | 25 | var 26 | Form1: TForm1; 27 | 28 | implementation 29 | 30 | {$R *.fmx} 31 | 32 | procedure TForm1.Button1Click(Sender: TObject); 33 | begin 34 | Button1.Opacity := Button1.Opacity - 0.2; 35 | end; 36 | 37 | end. 38 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/04_ButtonStyle/ButtonStyle.dpr: -------------------------------------------------------------------------------- 1 | program ButtonStyle; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | ButtonStyleForm in 'ButtonStyleForm.pas' {Form25}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm25, Form25); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/04_ButtonStyle/ButtonStyle.otares: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/04_ButtonStyle/ButtonStyle.otares -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/04_ButtonStyle/ButtonStyle.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/04_ButtonStyle/ButtonStyle.res -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/04_ButtonStyle/ButtonStyleForm.pas: -------------------------------------------------------------------------------- 1 | unit ButtonStyleForm; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, 8 | FMX.Controls.Presentation; 9 | 10 | type 11 | TForm25 = class(TForm) 12 | Button1: TButton; 13 | CheckBox1: TCheckBox; 14 | StyleBook1: TStyleBook; 15 | private 16 | { Private declarations } 17 | public 18 | { Public declarations } 19 | end; 20 | 21 | var 22 | Form25: TForm25; 23 | 24 | implementation 25 | 26 | {$R *.fmx} 27 | 28 | end. 29 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/04_ButtonStyle/ButtonStyle_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/04_ButtonStyle/ButtonStyle_Icon.ico -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/05_FMStyles101/FMStyles101.dpr: -------------------------------------------------------------------------------- 1 | program FMStyles101; 2 | 3 | uses 4 | FMX.Forms, 5 | FMStyles101_MainForm in 'FMStyles101_MainForm.pas' {FMStylesForm}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.CreateForm(TFMStylesForm, FMStylesForm); 12 | Application.Run; 13 | end. 14 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/05_FMStyles101/FMStyles101.otares: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/05_FMStyles101/FMStyles101.otares -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/05_FMStyles101/FMStyles101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/05_FMStyles101/FMStyles101.res -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/05_FMStyles101/FMStyles101_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/05_FMStyles101/FMStyles101_Icon.ico -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/05_FMStyles101/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/05_FMStyles101/head.png -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/06_LedDemo/LedDemo.dpr: -------------------------------------------------------------------------------- 1 | program LedDemo; 2 | 3 | uses 4 | FMX.Forms, 5 | LedDemo_MainForm in 'LedDemo_MainForm.pas' {LedDemoForm}, 6 | LedComponent in '..\Components\LedComponent.pas', 7 | StyledLedComponent in '..\Components\StyledLedComponent.pas'; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.CreateForm(TLedDemoForm, LedDemoForm); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/06_LedDemo/LedDemo.otares: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/06_LedDemo/LedDemo.otares -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/06_LedDemo/LedDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/06_LedDemo/LedDemo.res -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/06_LedDemo/LedDemo_Icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/06_LedDemo/LedDemo_Icon.ico -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/06_LedDemo/LedDemo_MainForm.pas: -------------------------------------------------------------------------------- 1 | unit LedDemo_MainForm; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Objects, LedComponent, 8 | StyledLedComponent; 9 | 10 | type 11 | TLedDemoForm = class(TForm) 12 | CntLed1: TCntLed; 13 | StyleBook1: TStyleBook; 14 | CntStyledLed1: TCntStyledLed; 15 | private 16 | { Private declarations } 17 | public 18 | { Public declarations } 19 | end; 20 | 21 | var 22 | LedDemoForm: TLedDemoForm; 23 | 24 | implementation 25 | 26 | {$R *.fmx} 27 | 28 | end. 29 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/06_LedDemo/Unit19.fmx: -------------------------------------------------------------------------------- 1 | object Form19: TForm19 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form19' 5 | ClientHeight = 480 6 | ClientWidth = 640 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 0 11 | object CntLed1: TCntLed 12 | Position.X = 120.000000000000000000 13 | Position.Y = 80.000000000000000000 14 | end 15 | object CntStyledLed1: TCntStyledLed 16 | Position.X = 304.000000000000000000 17 | Position.Y = 184.000000000000000000 18 | end 19 | end 20 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/06_LedDemo/Unit19.pas: -------------------------------------------------------------------------------- 1 | unit Unit19; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Objects, 8 | LedComponent, StyledLedComponent; 9 | 10 | type 11 | TForm19 = class(TForm) 12 | CntLed1: TCntLed; 13 | CntStyledLed1: TCntStyledLed; 14 | private 15 | { Private declarations } 16 | public 17 | { Public declarations } 18 | end; 19 | 20 | var 21 | Form19: TForm19; 22 | 23 | implementation 24 | 25 | {$R *.fmx} 26 | 27 | end. 28 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/07_PlatformServices/PlatformDialog.dpr: -------------------------------------------------------------------------------- 1 | program PlatformDialog; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | PlatformDialog_Form in 'PlatformDialog_Form.pas' {Form41}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm41, Form41); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/07_PlatformServices/PlatformDialog.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/07_PlatformServices/PlatformDialog.res -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/07_PlatformServices/PlatformDialog_Form.fmx: -------------------------------------------------------------------------------- 1 | object Form41: TForm41 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form41' 5 | ClientHeight = 480 6 | ClientWidth = 640 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 0 11 | object Button1: TButton 12 | Position.X = 88.000000000000000000 13 | Position.Y = 64.000000000000000000 14 | TabOrder = 1 15 | Text = 'Button1' 16 | OnClick = Button1Click 17 | end 18 | object Button2: TButton 19 | Position.X = 104.000000000000000000 20 | Position.Y = 168.000000000000000000 21 | TabOrder = 2 22 | Text = 'Button2' 23 | OnClick = Button2Click 24 | end 25 | end 26 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/08_PlatformControls/PlatformControls.dpr: -------------------------------------------------------------------------------- 1 | program PlatformControls; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | PlatformControls_Form in 'PlatformControls_Form.pas' {Form42}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm42, Form42); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/08_PlatformControls/PlatformControls.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/08_PlatformControls/PlatformControls.res -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/08_PlatformControls/PlatformControls_Form.fmx: -------------------------------------------------------------------------------- 1 | object Form42: TForm42 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form42' 5 | ClientHeight = 316 6 | ClientWidth = 634 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 0 11 | object Button1: TButton 12 | Position.X = 304.000000000000000000 13 | Position.Y = 128.000000000000000000 14 | Size.Width = 121.000000000000000000 15 | Size.Height = 49.000000000000000000 16 | Size.PlatformDefault = False 17 | TabOrder = 1 18 | Text = 'Button1' 19 | end 20 | object Edit1: TEdit 21 | Touch.InteractiveGestures = [LongTap, DoubleTap] 22 | TabOrder = 2 23 | ControlType = Platform 24 | Position.X = 87.000000000000000000 25 | Position.Y = 69.000000000000000000 26 | Size.Width = 177.000000000000000000 27 | Size.Height = 49.000000000000000000 28 | Size.PlatformDefault = False 29 | end 30 | object Button2: TButton 31 | ControlType = Platform 32 | Position.X = 136.000000000000000000 33 | Position.Y = 168.000000000000000000 34 | Size.Width = 137.000000000000000000 35 | Size.Height = 57.000000000000000000 36 | Size.PlatformDefault = False 37 | TabOrder = 3 38 | Text = 'Button2' 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/08_PlatformControls/PlatformControls_Form.pas: -------------------------------------------------------------------------------- 1 | unit PlatformControls_Form; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, 8 | FMX.Controls.Presentation, FMX.Edit; 9 | 10 | type 11 | TForm42 = class(TForm) 12 | Edit1: TEdit; 13 | Button1: TButton; 14 | Button2: TButton; 15 | private 16 | { Private declarations } 17 | public 18 | { Public declarations } 19 | end; 20 | 21 | var 22 | Form42: TForm42; 23 | 24 | implementation 25 | 26 | {$R *.fmx} 27 | 28 | end. 29 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/Components/CntFireMonkeyComps.dpk: -------------------------------------------------------------------------------- 1 | package CntFireMonkeyComps; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO ON} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$IMPLICITBUILD ON} 29 | 30 | requires 31 | rtl, 32 | fmx; 33 | 34 | contains 35 | LedComponent in 'LedComponent.pas', 36 | StyledLedComponent in 'StyledLedComponent.pas'; 37 | 38 | end. 39 | -------------------------------------------------------------------------------- /Ekon24FMXArchitecture/Components/CntFireMonkeyComps.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24FMXArchitecture/Components/CntFireMonkeyComps.res -------------------------------------------------------------------------------- /Ekon24RADServerLinux/Linux101/linux101.dpr: -------------------------------------------------------------------------------- 1 | program linux101; 2 | 3 | {$APPTYPE CONSOLE} 4 | 5 | {$R *.res} 6 | 7 | uses 8 | System.SysUtils; 9 | 10 | begin 11 | try 12 | Writeln('Hello EKON 24'); 13 | except 14 | on E: Exception do 15 | Writeln(E.ClassName, ': ', E.Message); 16 | end; 17 | end. 18 | -------------------------------------------------------------------------------- /Ekon24RADServerLinux/Linux101/linux101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24RADServerLinux/Linux101/linux101.res -------------------------------------------------------------------------------- /Ekon24RADServerLinux/ekon24RSEmployee/SimpleClient.dpr: -------------------------------------------------------------------------------- 1 | program SimpleClient; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | SimpleClient_Form in 'SimpleClient_Form.pas' {Form41}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm41, Form41); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Ekon24RADServerLinux/ekon24RSEmployee/SimpleClient.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24RADServerLinux/ekon24RSEmployee/SimpleClient.res -------------------------------------------------------------------------------- /Ekon24RADServerLinux/ekon24RSEmployee/ek24rs_datamodule.dfm: -------------------------------------------------------------------------------- 1 | object EkonResource1: TEkonResource1 2 | OldCreateOrder = False 3 | OnCreate = DataModuleCreate 4 | Height = 300 5 | Width = 600 6 | object FDConnection1: TFDConnection 7 | Params.Strings = ( 8 | 'Server=192.168.198.130' 9 | 'User_Name=SYSDBA' 10 | 'Password=masterkey' 11 | 'Database=/opt/interbase/examples/employee.gdb' 12 | 'DriverID=IB') 13 | LoginPrompt = False 14 | Left = 38 15 | Top = 16 16 | end 17 | object qryEMPLOYEE: TFDQuery 18 | Connection = FDConnection1 19 | SQL.Strings = ( 20 | 'select * from EMPLOYEE') 21 | Left = 130 22 | Top = 16 23 | end 24 | object dsrEMPLOYEE: TEMSDataSetResource 25 | AllowedActions = [List, Get, Post, Put, Delete] 26 | DataSet = qryEMPLOYEE 27 | PageSize = 5 28 | Left = 130 29 | Top = 72 30 | end 31 | object EmployeeConnectionWin: TFDConnection 32 | Params.Strings = ( 33 | 'ConnectionDef=EMPLOYEE') 34 | LoginPrompt = False 35 | Left = 69 36 | Top = 141 37 | end 38 | end 39 | -------------------------------------------------------------------------------- /Ekon24RADServerLinux/ekon24RSEmployee/ek24rsemployee.dpk: -------------------------------------------------------------------------------- 1 | package ek24rsemployee; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$RUNONLY} 29 | {$IMPLICITBUILD ON} 30 | 31 | requires 32 | rtl, 33 | emsserverapi, 34 | dbrtl, 35 | emsserverresource, 36 | FireDACCommonDriver, 37 | FireDACCommon, 38 | FireDAC, 39 | FireDACIBDriver; 40 | 41 | contains 42 | ek24rs_datamodule in 'ek24rs_datamodule.pas' {EkonResource1: TDataModule}; 43 | 44 | end. 45 | -------------------------------------------------------------------------------- /Ekon24RADServerLinux/ekon24RSEmployee/ek24rsemployee.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon24RADServerLinux/ekon24RSEmployee/ek24rsemployee.res -------------------------------------------------------------------------------- /Ekon26_RestClients/Apilayer_RestCountries/RestCountriesVCL.dpr: -------------------------------------------------------------------------------- 1 | program RestCountriesVCL; 2 | 3 | uses 4 | Vcl.Forms, 5 | RestCountries_Form in 'RestCountries_Form.pas' {Form43}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm43, Form43); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Ekon26_RestClients/Apilayer_RestCountries/RestCountriesVCL.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon26_RestClients/Apilayer_RestCountries/RestCountriesVCL.res -------------------------------------------------------------------------------- /Ekon26_RestClients/Apilayer_geocoding/GeoCoding.dpr: -------------------------------------------------------------------------------- 1 | program GeoCoding; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | GeoCodingForm in 'GeoCodingForm.pas' {Form41}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm41, Form41); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Ekon26_RestClients/Apilayer_geocoding/GeoCoding.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon26_RestClients/Apilayer_geocoding/GeoCoding.res -------------------------------------------------------------------------------- /Ekon26_RestClients/Apilayer_geocoding/GeoCodingForm.vlb: -------------------------------------------------------------------------------- 1 | [RESTResponse1] 2 | Coordinates=10,10,96,303 3 | 4 | [RESTResponseDataSetAdapter1] 5 | Coordinates=240,1,174,33 6 | 7 | [RESTClient1] 8 | Coordinates=260,10,76,69 9 | 10 | [RESTRequest1] 11 | Coordinates=133,10,98,123 12 | 13 | [FDMemTable1] 14 | Coordinates=449,10,84,33 15 | Visible=False 16 | 17 | [] 18 | Coordinates=359,10,80,58 19 | Visible=True 20 | 21 | [BindSourceDB1] 22 | Coordinates=449,10,96,393 23 | 24 | [BindingsList1] 25 | Coordinates=142,175,82,33 26 | 27 | [Grid1] 28 | Coordinates=142,175,41,51 29 | 30 | [Button1] 31 | Coordinates=142,329,53,51 32 | 33 | [edLocation] 34 | Coordinates=142,252,40,51 35 | 36 | -------------------------------------------------------------------------------- /Ekon26_RestClients/Apilayer_geocoding/Unit13.fmx: -------------------------------------------------------------------------------- 1 | object Form13: TForm13 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form13' 5 | ClientHeight = 480 6 | ClientWidth = 640 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 0 11 | end 12 | -------------------------------------------------------------------------------- /Ekon26_RestClients/Apilayer_geocoding/Unit13.pas: -------------------------------------------------------------------------------- 1 | unit Unit13; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs; 8 | 9 | type 10 | TForm13 = class(TForm) 11 | private 12 | { Private declarations } 13 | public 14 | { Public declarations } 15 | end; 16 | 17 | var 18 | Form13: TForm13; 19 | 20 | implementation 21 | 22 | {$R *.fmx} 23 | 24 | end. 25 | -------------------------------------------------------------------------------- /Ekon26_RestClients/HTTPvsREST/HTTPvsREST.dpr: -------------------------------------------------------------------------------- 1 | program HTTPvsREST; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit13 in 'Unit13.pas' {Form13}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm13, Form13); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Ekon26_RestClients/HTTPvsREST/HTTPvsREST.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon26_RestClients/HTTPvsREST/HTTPvsREST.res -------------------------------------------------------------------------------- /Ekon26_RestClients/HTTPvsREST/Unit13.pas: -------------------------------------------------------------------------------- 1 | unit Unit13; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, System.Net.URLClient, 8 | System.Net.HttpClient, System.Net.HttpClientComponent, Vcl.StdCtrls, 9 | REST.Types, REST.Client, Data.Bind.Components, Data.Bind.ObjectScope; 10 | 11 | type 12 | TForm13 = class(TForm) 13 | NetHTTPClient1: TNetHTTPClient; 14 | NetHTTPRequest1: TNetHTTPRequest; 15 | Button1: TButton; 16 | Memo1: TMemo; 17 | RESTClient1: TRESTClient; 18 | RESTRequest1: TRESTRequest; 19 | RESTResponse1: TRESTResponse; 20 | Button2: TButton; 21 | procedure Button1Click(Sender: TObject); 22 | procedure Button2Click(Sender: TObject); 23 | private 24 | { Private declarations } 25 | public 26 | { Public declarations } 27 | end; 28 | 29 | var 30 | Form13: TForm13; 31 | 32 | implementation 33 | 34 | {$R *.dfm} 35 | 36 | procedure TForm13.Button1Click(Sender: TObject); 37 | begin 38 | var resp := NetHTTPRequest1.Execute(); 39 | Memo1.Lines.Text := resp.ContentAsString(); 40 | end; 41 | 42 | procedure TForm13.Button2Click(Sender: TObject); 43 | begin 44 | RESTRequest1.Execute; 45 | Memo1.Lines.Text := RESTResponse1.Content; 46 | end; 47 | 48 | end. 49 | -------------------------------------------------------------------------------- /Ekon26_RestClients/WeatherClient/WeatherClient.dpr: -------------------------------------------------------------------------------- 1 | program WeatherClient; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | WeatherClient_Form in 'WeatherClient_Form.pas' {Form13}, 7 | WeatherClient_Module in 'WeatherClient_Module.pas' {DataModule14: TDataModule}; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.CreateForm(TForm13, Form13); 14 | Application.CreateForm(TDataModule14, DataModule14); 15 | Application.Run; 16 | end. 17 | -------------------------------------------------------------------------------- /Ekon26_RestClients/WeatherClient/WeatherClient.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Ekon26_RestClients/WeatherClient/WeatherClient.res -------------------------------------------------------------------------------- /Ekon26_RestClients/WeatherClient/WeatherClient_Form.pas: -------------------------------------------------------------------------------- 1 | unit WeatherClient_Form; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Edit, 8 | FMX.Controls.Presentation, FMX.StdCtrls, Data.Bind.EngExt, Fmx.Bind.DBEngExt, 9 | System.Rtti, System.Bindings.Outputs, Fmx.Bind.Editors, Data.Bind.Components, 10 | Data.Bind.DBScope; 11 | 12 | type 13 | TForm13 = class(TForm) 14 | BtnRefresh: TButton; 15 | EditCurrent: TEdit; 16 | BindSourceDB1: TBindSourceDB; 17 | BindingsList1: TBindingsList; 18 | EditLocation: TEdit; 19 | LinkControlToField1: TLinkControlToField; 20 | LinkControlToField2: TLinkControlToField; 21 | procedure BtnRefreshClick(Sender: TObject); 22 | private 23 | { Private declarations } 24 | public 25 | { Public declarations } 26 | end; 27 | 28 | var 29 | Form13: TForm13; 30 | 31 | implementation 32 | 33 | {$R *.fmx} 34 | 35 | uses WeatherClient_Module; 36 | 37 | procedure TForm13.BtnRefreshClick(Sender: TObject); 38 | begin 39 | // DataModule14.RESTRequest1.Params[1].Value := EditLocation.Text; 40 | DataModule14.RESTRequest1.Execute(); 41 | // EditCurrent.Text := DataModule14.FDMemTable1.FieldByName('temperature').AsString; 42 | end; 43 | 44 | end. 45 | -------------------------------------------------------------------------------- /Ekon26_RestClients/WeatherClient/WeatherClient_Form.vlb: -------------------------------------------------------------------------------- 1 | [DataModule14.FDMemTable1] 2 | Coordinates=10,386,156,33 3 | Visible=False 4 | 5 | [BtnRefresh] 6 | Coordinates=460,260,69,51 7 | 8 | [DataModule14.RESTClient1] 9 | Coordinates=420,10,148,69 10 | 11 | [DataModule14.RESTRequest1] 12 | Coordinates=220,10,160,123 13 | 14 | [EditCurrent] 15 | Coordinates=850,40,70,51 16 | 17 | [DataModule14.RESTResponse1] 18 | Coordinates=10,10,169,303 19 | 20 | [BindSourceDB1] 21 | Coordinates=640,20,144,357 22 | 23 | [BindingsList1] 24 | Coordinates=198,152,82,33 25 | 26 | [EditLocation] 27 | Coordinates=220,160,76,51 28 | 29 | -------------------------------------------------------------------------------- /Ekon26_RestClients/WeatherClient/WeatherClient_Module.pas: -------------------------------------------------------------------------------- 1 | unit WeatherClient_Module; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Classes, REST.Types, FireDAC.Stan.Intf, 7 | FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, 8 | FireDAC.Phys.Intf, FireDAC.DApt.Intf, Data.DB, FireDAC.Comp.DataSet, 9 | FireDAC.Comp.Client, REST.Response.Adapter, REST.Client, Data.Bind.Components, 10 | Data.Bind.ObjectScope; 11 | 12 | type 13 | TDataModule14 = class(TDataModule) 14 | RESTClient1: TRESTClient; 15 | RESTRequest1: TRESTRequest; 16 | RESTResponse1: TRESTResponse; 17 | RESTResponseDataSetAdapter1: TRESTResponseDataSetAdapter; 18 | FDMemTable1: TFDMemTable; 19 | private 20 | { Private declarations } 21 | public 22 | { Public declarations } 23 | end; 24 | 25 | var 26 | DataModule14: TDataModule14; 27 | 28 | implementation 29 | 30 | {%CLASSGROUP 'FMX.Controls.TControl'} 31 | 32 | {$R *.dfm} 33 | 34 | end. 35 | -------------------------------------------------------------------------------- /Ekon26_RestClients/WeatherClient/WeatherClient_Module.vlb: -------------------------------------------------------------------------------- 1 | [RESTResponseDataSetAdapter1] 2 | Coordinates=232,71,174,33 3 | 4 | [RESTClient1] 5 | Coordinates=224,10,76,69 6 | 7 | [FDMemTable1] 8 | Coordinates=310,10,103,339 9 | 10 | [RESTResponse1] 11 | Coordinates=10,10,96,303 12 | 13 | [RESTRequest1] 14 | Coordinates=116,10,98,123 15 | 16 | -------------------------------------------------------------------------------- /FireDACMemTable/04_StringListVsDictionary/StringListVsDictionaryVsMemTable.dpr: -------------------------------------------------------------------------------- 1 | program StringListVsDictionaryVsMemTable; 2 | 3 | uses 4 | Vcl.Forms, 5 | ListDictionary_MainForm in 'ListDictionary_MainForm.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /FireDACMemTable/04_StringListVsDictionary/StringListVsDictionaryVsMemTable.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireDACMemTable/04_StringListVsDictionary/StringListVsDictionaryVsMemTable.res -------------------------------------------------------------------------------- /FireDACMemTable/BatchMoveJSON_102Tokyo/TableToJSON.dpr: -------------------------------------------------------------------------------- 1 | program TableToJSON; 2 | 3 | uses 4 | Vcl.Forms, 5 | TableToJsonForm in 'TableToJsonForm.pas' {Form5}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm5, Form5); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /FireDACMemTable/BatchMoveJSON_102Tokyo/TableToJSON.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireDACMemTable/BatchMoveJSON_102Tokyo/TableToJSON.res -------------------------------------------------------------------------------- /FireDACMemTable/DesignTimeFields/DesignTimeFields.dpr: -------------------------------------------------------------------------------- 1 | program DesignTimeFields; 2 | 3 | uses 4 | Vcl.Forms, 5 | DesignTimeFields_Form in 'DesignTimeFields_Form.pas' {Form26}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm26, Form26); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /FireDACMemTable/DesignTimeFields/DesignTimeFields.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireDACMemTable/DesignTimeFields/DesignTimeFields.res -------------------------------------------------------------------------------- /FireDACMemTable/DesignTimeFields/DesignTimeFields_Form.pas: -------------------------------------------------------------------------------- 1 | unit DesignTimeFields_Form; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, FireDAC.Stan.Intf, FireDAC.Stan.Option, 8 | FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, 9 | FireDAC.DApt.Intf, FireDAC.Stan.StorageBin, Data.DB, Vcl.Grids, Vcl.DBGrids, 10 | FireDAC.Comp.DataSet, FireDAC.Comp.Client; 11 | 12 | type 13 | TForm26 = class(TForm) 14 | FDMemTable1: TFDMemTable; 15 | FDMemTable1ID: TIntegerField; 16 | FDMemTable1Name: TStringField; 17 | FDMemTable1Enabled: TBooleanField; 18 | DataSource1: TDataSource; 19 | DBGrid1: TDBGrid; 20 | FDMemTable2: TFDMemTable; 21 | DataSource2: TDataSource; 22 | DBGrid2: TDBGrid; 23 | procedure FormCreate(Sender: TObject); 24 | private 25 | { Private declarations } 26 | public 27 | { Public declarations } 28 | end; 29 | 30 | var 31 | Form26: TForm26; 32 | 33 | implementation 34 | 35 | {$R *.dfm} 36 | 37 | procedure TForm26.FormCreate(Sender: TObject); 38 | begin 39 | FDMemTable2.CloneCursor(FDMemTable1); 40 | end; 41 | 42 | end. 43 | -------------------------------------------------------------------------------- /FireDACMemTable/FireDACMemTable/FireDACMemTable.dpr: -------------------------------------------------------------------------------- 1 | program FireDACMemTable; 2 | 3 | uses 4 | Vcl.Forms, 5 | FireDACMemTableForm in 'FireDACMemTableForm.pas' {Form7}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm7, Form7); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /FireDACMemTable/FireDACMemTable/FireDACMemTable.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireDACMemTable/FireDACMemTable/FireDACMemTable.res -------------------------------------------------------------------------------- /FireDACMemTable/FireDACMemTable/FireDACMemTableForm.vlb: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /FireDACMemTable/FireDAC_Demo101/FireDAC_Demo101.dpr: -------------------------------------------------------------------------------- 1 | program FireDAC_Demo101; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit7 in 'Unit7.pas' {Form7}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm7, Form7); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /FireDACMemTable/FireDAC_Demo101/FireDAC_Demo101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireDACMemTable/FireDAC_Demo101/FireDAC_Demo101.res -------------------------------------------------------------------------------- /FireDACMemTable/LocalSQL_101/LocalSQL_101.dpr: -------------------------------------------------------------------------------- 1 | program LocalSQL_101; 2 | 3 | uses 4 | Vcl.Forms, 5 | LocalSQL_Form in 'LocalSQL_Form.pas' {Form13}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm13, Form13); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /FireDACMemTable/LocalSQL_101/LocalSQL_101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireDACMemTable/LocalSQL_101/LocalSQL_101.res -------------------------------------------------------------------------------- /FireDACMemTable/NoCompsMemTable/NoCompsMemTable.dpr: -------------------------------------------------------------------------------- 1 | program NoCompsMemTable; 2 | 3 | uses 4 | Vcl.Forms, 5 | NoComps_Form in 'NoComps_Form.pas' {Form13}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm13, Form13); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /FireDACMemTable/NoCompsMemTable/NoCompsMemTable.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireDACMemTable/NoCompsMemTable/NoCompsMemTable.res -------------------------------------------------------------------------------- /FireDACMemTable/TableAdapter/TableAdapter.dpr: -------------------------------------------------------------------------------- 1 | program TableAdapter; 2 | 3 | uses 4 | Vcl.Forms, 5 | TableAdapterForm in 'TableAdapterForm.pas' {Form26}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm26, Form26); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /FireDACMemTable/TableAdapter/TableAdapter.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireDACMemTable/TableAdapter/TableAdapter.res -------------------------------------------------------------------------------- /FireMonkeyStyles/01_FMtoGPUcalls/FMtoGPUcalls.dpr: -------------------------------------------------------------------------------- 1 | program FMtoGPUcalls; 2 | 3 | uses 4 | FMX.Forms, FMX.Types, 5 | FMX.Skia, 6 | FMtoGPUcalls_mainform in 'FMtoGPUcalls_mainform.pas' {FormFMtoGPU}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | GlobalUseSkia := True; 12 | // FMX.Types.GlobalUseGPUCanvas := True; 13 | // FMX.Types.GlobalUseDirect2D := False; 14 | Application.Initialize; 15 | Application.CreateForm(TFormFMtoGPU, FormFMtoGPU); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /FireMonkeyStyles/01_FMtoGPUcalls/FMtoGPUcalls.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireMonkeyStyles/01_FMtoGPUcalls/FMtoGPUcalls.res -------------------------------------------------------------------------------- /FireMonkeyStyles/01_FMtoGPUcalls/FMtoGPUcalls_mainform.fmx: -------------------------------------------------------------------------------- 1 | object FormFMtoGPU: TFormFMtoGPU 2 | Left = 0 3 | Top = 0 4 | Caption = 'FMtoGPUcalls' 5 | ClientHeight = 234 6 | ClientWidth = 778 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop, iPhone, iPad] 10 | OnPaint = FormPaint 11 | DesignerMasterStyle = 0 12 | end 13 | -------------------------------------------------------------------------------- /FireMonkeyStyles/01_FMtoGPUcalls/FMtoGPUcalls_mainform.pas: -------------------------------------------------------------------------------- 1 | unit FMtoGPUcalls_mainform; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Graphics; 8 | 9 | type 10 | TFormFMtoGPU = class(TForm) 11 | procedure FormPaint(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); 12 | private 13 | { Private declarations } 14 | public 15 | { Public declarations } 16 | end; 17 | 18 | var 19 | FormFMtoGPU: TFormFMtoGPU; 20 | 21 | implementation 22 | 23 | {$R *.fmx} 24 | 25 | procedure TFormFMtoGPU.FormPaint(Sender: TObject; 26 | Canvas: TCanvas; const ARect: TRectF); 27 | begin 28 | Canvas.Fill.Color := TAlphaColorRec.Blue; 29 | Canvas.Font.Size := Height div 3; 30 | Canvas.FillText ( 31 | ARect, Canvas.ClassName, True, 1, 32 | [], TTextAlign.Center); 33 | end; 34 | 35 | end. 36 | -------------------------------------------------------------------------------- /FireMonkeyStyles/02_CanvasPaint/CanvasPaint.dpr: -------------------------------------------------------------------------------- 1 | program CanvasPaint; 2 | 3 | uses 4 | FMX.Forms, 5 | CanvasPaint_MainForm in 'CanvasPaint_MainForm.pas' {CanvasPaintForm}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.CreateForm(TCanvasPaintForm, CanvasPaintForm); 12 | Application.Run; 13 | end. 14 | -------------------------------------------------------------------------------- /FireMonkeyStyles/02_CanvasPaint/CanvasPaint.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireMonkeyStyles/02_CanvasPaint/CanvasPaint.res -------------------------------------------------------------------------------- /FireMonkeyStyles/02_CanvasPaint/CanvasPaint_MainForm.fmx: -------------------------------------------------------------------------------- 1 | object CanvasPaintForm: TCanvasPaintForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'CanvasPaint' 5 | ClientHeight = 383 6 | ClientWidth = 786 7 | FormFactor.Width = 1280 8 | FormFactor.Height = 1024 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 0 11 | object PaintBox1: TPaintBox 12 | Position.X = 16.000000000000000000 13 | Position.Y = 8.000000000000000000 14 | Size.Width = 753.000000000000000000 15 | Size.Height = 161.000000000000000000 16 | Size.PlatformDefault = False 17 | OnPaint = PaintBox1Paint 18 | end 19 | object Label1: TLabel 20 | Position.X = 16.000000000000000000 21 | Position.Y = 184.000000000000000000 22 | Size.Width = 753.000000000000000000 23 | Size.Height = 177.000000000000000000 24 | Size.PlatformDefault = False 25 | Text = 'Label1' 26 | TabOrder = 1 27 | OnPaint = Label1Paint 28 | end 29 | object Button1: TButton 30 | Position.X = 296.000000000000000000 31 | Position.Y = 240.000000000000000000 32 | Size.Width = 137.000000000000000000 33 | Size.Height = 41.000000000000000000 34 | Size.PlatformDefault = False 35 | TabOrder = 2 36 | Text = 'Button1' 37 | TextSettings.Trimming = None 38 | OnClick = Button1Click 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /FireMonkeyStyles/03_PrimitivePaint/PrimitivePaint.dpr: -------------------------------------------------------------------------------- 1 | program PrimitivePaint; 2 | 3 | uses 4 | FMX.Forms, 5 | PrimitivePaint_MainForm in 'PrimitivePaint_MainForm.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.CreateForm(TForm1, Form1); 12 | Application.Run; 13 | end. 14 | -------------------------------------------------------------------------------- /FireMonkeyStyles/03_PrimitivePaint/PrimitivePaint.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireMonkeyStyles/03_PrimitivePaint/PrimitivePaint.res -------------------------------------------------------------------------------- /FireMonkeyStyles/03_PrimitivePaint/PrimitivePaint_MainForm.pas: -------------------------------------------------------------------------------- 1 | unit PrimitivePaint_MainForm; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Objects, FMX.Layouts, 8 | FMX.StdCtrls, FMX.Controls.Presentation; 9 | 10 | type 11 | TForm1 = class(TForm) 12 | Layout1: TLayout; 13 | Rectangle1: TRectangle; 14 | Rectangle2: TRectangle; 15 | Label1: TLabel; 16 | Button1: TButton; 17 | Path1: TPath; 18 | procedure Button1Click(Sender: TObject); 19 | private 20 | { Private declarations } 21 | public 22 | { Public declarations } 23 | end; 24 | 25 | var 26 | Form1: TForm1; 27 | 28 | implementation 29 | 30 | {$R *.fmx} 31 | 32 | procedure TForm1.Button1Click(Sender: TObject); 33 | begin 34 | Button1.Opacity := Button1.Opacity - 0.2; 35 | end; 36 | 37 | end. 38 | -------------------------------------------------------------------------------- /FireMonkeyStyles/04_ButtonStyle/ButtonStyle.dpr: -------------------------------------------------------------------------------- 1 | program ButtonStyle; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | ButtonStyleForm in 'ButtonStyleForm.pas' {Form25}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm25, Form25); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /FireMonkeyStyles/04_ButtonStyle/ButtonStyle.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireMonkeyStyles/04_ButtonStyle/ButtonStyle.res -------------------------------------------------------------------------------- /FireMonkeyStyles/04_ButtonStyle/ButtonStyleForm.pas: -------------------------------------------------------------------------------- 1 | unit ButtonStyleForm; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, 8 | FMX.Controls.Presentation; 9 | 10 | type 11 | TForm25 = class(TForm) 12 | Button1: TButton; 13 | CheckBox1: TCheckBox; 14 | StyleBook1: TStyleBook; 15 | Button2: TButton; 16 | procedure Button2Click(Sender: TObject); 17 | private 18 | { Private declarations } 19 | public 20 | { Public declarations } 21 | end; 22 | 23 | var 24 | Form25: TForm25; 25 | 26 | implementation 27 | 28 | {$R *.fmx} 29 | 30 | procedure TForm25.Button2Click(Sender: TObject); 31 | begin 32 | Button2.StyleLookup := 'Button1Style1'; 33 | Button2.ApplyStyleLookup; 34 | end; 35 | 36 | end. 37 | -------------------------------------------------------------------------------- /FireMonkeyStyles/05_FMStyles101/FMStyles101.dpr: -------------------------------------------------------------------------------- 1 | program FMStyles101; 2 | 3 | uses 4 | FMX.Forms, 5 | FMX.Skia, 6 | FMStyles101_MainForm in 'FMStyles101_MainForm.pas' {FMStylesForm}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | GlobalUseSkia := True; 12 | Application.Initialize; 13 | Application.CreateForm(TFMStylesForm, FMStylesForm); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /FireMonkeyStyles/05_FMStyles101/FMStyles101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireMonkeyStyles/05_FMStyles101/FMStyles101.res -------------------------------------------------------------------------------- /FireMonkeyStyles/05_FMStyles101/Win32/Debug/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireMonkeyStyles/05_FMStyles101/Win32/Debug/head.png -------------------------------------------------------------------------------- /FireMonkeyStyles/05_FMStyles101/head.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireMonkeyStyles/05_FMStyles101/head.png -------------------------------------------------------------------------------- /FireMonkeyStyles/06_LedDemo/NewLedDemo.dpr: -------------------------------------------------------------------------------- 1 | program NewLedDemo; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | NewLedDemoForm in 'NewLedDemoForm.pas' {Form25}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm25, Form25); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /FireMonkeyStyles/06_LedDemo/NewLedDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireMonkeyStyles/06_LedDemo/NewLedDemo.res -------------------------------------------------------------------------------- /FireMonkeyStyles/06_LedDemo/NewLedDemoForm.pas: -------------------------------------------------------------------------------- 1 | unit NewLedDemoForm; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, 8 | StyledLedComponent, FMX.Objects, LedComponent; 9 | 10 | type 11 | TForm25 = class(TForm) 12 | CntLed1: TCntLed; 13 | CntStyledLed1: TCntStyledLed; 14 | StyleBook1: TStyleBook; 15 | private 16 | { Private declarations } 17 | public 18 | { Public declarations } 19 | end; 20 | 21 | var 22 | Form25: TForm25; 23 | 24 | implementation 25 | 26 | {$R *.fmx} 27 | 28 | end. 29 | -------------------------------------------------------------------------------- /FireMonkeyStyles/07_PlatformServices/PlatformDialog.dpr: -------------------------------------------------------------------------------- 1 | program PlatformDialog; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | PlatformDialog_Form in 'PlatformDialog_Form.pas' {Form41}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm41, Form41); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /FireMonkeyStyles/07_PlatformServices/PlatformDialog.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireMonkeyStyles/07_PlatformServices/PlatformDialog.res -------------------------------------------------------------------------------- /FireMonkeyStyles/07_PlatformServices/PlatformDialog_Form.fmx: -------------------------------------------------------------------------------- 1 | object Form41: TForm41 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form41' 5 | ClientHeight = 480 6 | ClientWidth = 640 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 0 11 | object Button1: TButton 12 | Position.X = 88.000000000000000000 13 | Position.Y = 64.000000000000000000 14 | TabOrder = 1 15 | Text = 'Button1' 16 | TextSettings.Trimming = None 17 | OnClick = Button1Click 18 | end 19 | object Button2: TButton 20 | Position.X = 88.000000000000000000 21 | Position.Y = 168.000000000000000000 22 | TabOrder = 2 23 | Text = 'Button2' 24 | TextSettings.Trimming = None 25 | OnClick = Button2Click 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /FireMonkeyStyles/08_PlatformControls/PlatformControls.dpr: -------------------------------------------------------------------------------- 1 | program PlatformControls; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | PlatformControls_Form in 'PlatformControls_Form.pas' {Form42}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm42, Form42); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /FireMonkeyStyles/08_PlatformControls/PlatformControls.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireMonkeyStyles/08_PlatformControls/PlatformControls.res -------------------------------------------------------------------------------- /FireMonkeyStyles/08_PlatformControls/PlatformControls_Form.fmx: -------------------------------------------------------------------------------- 1 | object Form42: TForm42 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form42' 5 | ClientHeight = 316 6 | ClientWidth = 634 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 0 11 | object Button1: TButton 12 | Position.X = 304.000000000000000000 13 | Position.Y = 128.000000000000000000 14 | Size.Width = 121.000000000000000000 15 | Size.Height = 49.000000000000000000 16 | Size.PlatformDefault = False 17 | TabOrder = 1 18 | Text = 'Button1' 19 | end 20 | object Edit1: TEdit 21 | Touch.InteractiveGestures = [LongTap, DoubleTap] 22 | TabOrder = 2 23 | ControlType = Platform 24 | Position.X = 87.000000000000000000 25 | Position.Y = 69.000000000000000000 26 | Size.Width = 177.000000000000000000 27 | Size.Height = 49.000000000000000000 28 | Size.PlatformDefault = False 29 | end 30 | object Button2: TButton 31 | ControlType = Platform 32 | Position.X = 136.000000000000000000 33 | Position.Y = 168.000000000000000000 34 | Size.Width = 137.000000000000000000 35 | Size.Height = 57.000000000000000000 36 | Size.PlatformDefault = False 37 | TabOrder = 3 38 | Text = 'Button2' 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /FireMonkeyStyles/08_PlatformControls/PlatformControls_Form.pas: -------------------------------------------------------------------------------- 1 | unit PlatformControls_Form; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, 7 | FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.StdCtrls, 8 | FMX.Controls.Presentation, FMX.Edit; 9 | 10 | type 11 | TForm42 = class(TForm) 12 | Edit1: TEdit; 13 | Button1: TButton; 14 | Button2: TButton; 15 | private 16 | { Private declarations } 17 | public 18 | { Public declarations } 19 | end; 20 | 21 | var 22 | Form42: TForm42; 23 | 24 | implementation 25 | 26 | {$R *.fmx} 27 | 28 | end. 29 | -------------------------------------------------------------------------------- /FireMonkeyStyles/Components/CntFireMonkeyComps.dpk: -------------------------------------------------------------------------------- 1 | package CntFireMonkeyComps; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO ON} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$IMPLICITBUILD ON} 29 | 30 | requires 31 | rtl, 32 | fmx; 33 | 34 | contains 35 | LedComponent in 'LedComponent.pas', 36 | StyledLedComponent in 'StyledLedComponent.pas'; 37 | 38 | end. 39 | -------------------------------------------------------------------------------- /FireMonkeyStyles/Components/CntFireMonkeyComps.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/FireMonkeyStyles/Components/CntFireMonkeyComps.res -------------------------------------------------------------------------------- /FireMonkeyStyles/FMXArchitecture.groupproj.local: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Marco Cantu 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /RADServer103CodeRage/Batch_DataModule.dfm: -------------------------------------------------------------------------------- 1 | object BatchResource1: TBatchResource1 2 | OldCreateOrder = False 3 | Height = 332 4 | Width = 464 5 | object EmployeeTable: TFDQuery 6 | Connection = EmployeeConnection 7 | SQL.Strings = ( 8 | 'SELECT * FROM EMPLOYEE') 9 | Left = 67 10 | Top = 98 11 | end 12 | object FDBatchMoveJSONWriter1: TFDBatchMoveJSONWriter 13 | DataDef.Fields = <> 14 | Left = 319 15 | Top = 206 16 | end 17 | object FDBatchMoveDataSetReader1: TFDBatchMoveDataSetReader 18 | DataSet = EmployeeTable 19 | Left = 152 20 | Top = 198 21 | end 22 | object FDBatchMove1: TFDBatchMove 23 | Reader = FDBatchMoveDataSetReader1 24 | Writer = FDBatchMoveJSONWriter1 25 | Mappings = <> 26 | LogFileName = 'Data.log' 27 | Left = 247 28 | Top = 128 29 | end 30 | object EmployeeConnection: TFDConnection 31 | Params.Strings = ( 32 | 'ConnectionDef=EMPLOYEE') 33 | LoginPrompt = False 34 | Left = 95 35 | Top = 41 36 | end 37 | end 38 | -------------------------------------------------------------------------------- /RADServer103CodeRage/Content_DataModule.dfm: -------------------------------------------------------------------------------- 1 | object ContentResource1: TContentResource1 2 | OldCreateOrder = False 3 | Height = 219 4 | Width = 316 5 | end 6 | -------------------------------------------------------------------------------- /RADServer103CodeRage/Files_DataModule.dfm: -------------------------------------------------------------------------------- 1 | object FilesResource1: TFilesResource1 2 | OldCreateOrder = False 3 | Height = 188 4 | Width = 260 5 | object EMSFileResource1: TEMSFileResource 6 | AllowedActions = [List, Get] 7 | PathTemplate = 'c:\temp\{id}' 8 | Left = 80 9 | Top = 72 10 | end 11 | end 12 | -------------------------------------------------------------------------------- /RADServer103CodeRage/Files_DataModule.pas: -------------------------------------------------------------------------------- 1 | unit Files_DataModule; 2 | 3 | // EMS Resource Module 4 | 5 | interface 6 | 7 | uses 8 | System.SysUtils, System.Classes, System.JSON, 9 | EMS.Services, EMS.ResourceAPI, EMS.ResourceTypes, EMS.FileResource; 10 | 11 | type 12 | [ResourceName('files')] 13 | TFilesResource1 = class(TDataModule) 14 | [ResourceSuffix('list', '/')] 15 | [ResourceSuffix('get', '/{id}')] 16 | // [EndpointProduce('get', 'image/png')] 17 | EMSFileResource1: TEMSFileResource; 18 | published 19 | end; 20 | 21 | implementation 22 | 23 | {%CLASSGROUP 'System.Classes.TPersistent'} 24 | 25 | {$R *.dfm} 26 | 27 | procedure Register; 28 | begin 29 | RegisterResource(TypeInfo(TFilesResource1)); 30 | end; 31 | 32 | initialization 33 | Register; 34 | end. 35 | 36 | 37 | -------------------------------------------------------------------------------- /RADServer103CodeRage/Manual_DataModule.dfm: -------------------------------------------------------------------------------- 1 | object ManualResource1: TManualResource1 2 | OldCreateOrder = False 3 | Height = 229 4 | Width = 332 5 | object EmployeeConnection: TFDConnection 6 | Params.Strings = ( 7 | 'ConnectionDef=EMPLOYEE') 8 | Connected = True 9 | LoginPrompt = False 10 | Left = 69 11 | Top = 57 12 | end 13 | object FDQuery1: TFDQuery 14 | Connection = EmployeeConnection 15 | SQL.Strings = ( 16 | 'select * from employee') 17 | Left = 128 18 | Top = 112 19 | end 20 | end 21 | -------------------------------------------------------------------------------- /RADServer103CodeRage/Plain_DataModule.dfm: -------------------------------------------------------------------------------- 1 | object PlainResource1: TPlainResource1 2 | OldCreateOrder = False 3 | Height = 277 4 | Width = 475 5 | object FDQuery1: TFDQuery 6 | Connection = EmployeeConnection 7 | SQL.Strings = ( 8 | 'select * from employee') 9 | Left = 104 10 | Top = 112 11 | end 12 | object FDStanStorageJSONLink1: TFDStanStorageJSONLink 13 | Left = 231 14 | Top = 104 15 | end 16 | object FDGUIxWaitCursor1: TFDGUIxWaitCursor 17 | Provider = 'Console' 18 | Left = 176 19 | Top = 166 20 | end 21 | object EmployeeConnection: TFDConnection 22 | Params.Strings = ( 23 | 'ConnectionDef=EMPLOYEE') 24 | LoginPrompt = False 25 | Left = 69 26 | Top = 57 27 | end 28 | end 29 | -------------------------------------------------------------------------------- /RADServer103CodeRage/Query_DataModule.dfm: -------------------------------------------------------------------------------- 1 | object TCustomerResource1: TTCustomerResource1 2 | OldCreateOrder = False 3 | Height = 275 4 | Width = 387 5 | object EmployeeConnection: TFDConnection 6 | Params.Strings = ( 7 | 'ConnectionDef=SQLite_Demo') 8 | Connected = True 9 | LoginPrompt = False 10 | Left = 254 11 | Top = 35 12 | end 13 | object CustomerTable: TFDQuery 14 | Connection = EmployeeConnection 15 | SQL.Strings = ( 16 | 'SELECT * FROM CUSTOMERS' 17 | 'ORDER BY {IIF(!SORT, !SORT, CustomerID)}') 18 | Left = 254 19 | Top = 83 20 | MacroData = < 21 | item 22 | Value = Null 23 | Name = 'SORT' 24 | end> 25 | end 26 | object CustomerResource: TEMSDataSetResource 27 | AllowedActions = [List, Get, Post, Put, Delete] 28 | DataSet = CustomerTable 29 | PageSize = 10 30 | Left = 152 31 | Top = 152 32 | end 33 | object FDQuery1: TFDQuery 34 | Connection = EmployeeConnection 35 | SQL.Strings = ( 36 | 'SELECT * FROM CUSTOMERS') 37 | Left = 262 38 | Top = 155 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /RADServer103CodeRage/RADServer103.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/RADServer103CodeRage/RADServer103.res -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_101Demo/ClientPro.dpr: -------------------------------------------------------------------------------- 1 | program ClientPro; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | ClientForm in 'ClientForm.pas' {Form13}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm13, Form13); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_101Demo/ClientPro.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/RADServerBeyondBasics/RADServer_101Demo/ClientPro.res -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_101Demo/RADServer101.dpk: -------------------------------------------------------------------------------- 1 | package RADServer101; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$RUNONLY} 29 | {$IMPLICITBUILD ON} 30 | 31 | requires 32 | rtl, 33 | emsserverapi; 34 | 35 | contains 36 | ServerUnit101 in 'ServerUnit101.pas' {DelphidayResource1: TDataModule}; 37 | 38 | end. 39 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_101Demo/RADServer101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/RADServerBeyondBasics/RADServer_101Demo/RADServer101.res -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_101Demo/ServerUnit101.dfm: -------------------------------------------------------------------------------- 1 | object DelphidayResource1: TDelphidayResource1 2 | OldCreateOrder = False 3 | Height = 343 4 | Width = 438 5 | end 6 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_GenerateJSON/GenJSONUnit.dfm: -------------------------------------------------------------------------------- 1 | object EmployeeResource1: TEmployeeResource1 2 | OldCreateOrder = False 3 | Height = 319 4 | Width = 509 5 | object EmployeeConnection: TFDConnection 6 | Params.Strings = ( 7 | 'ConnectionDef=EMPLOYEE') 8 | LoginPrompt = False 9 | Left = 59 10 | Top = 42 11 | end 12 | object EmployeeTable: TFDQuery 13 | Connection = EmployeeConnection 14 | SQL.Strings = ( 15 | 'SELECT * FROM EMPLOYEE') 16 | Left = 67 17 | Top = 98 18 | end 19 | object FDBatchMoveJSONWriter1: TFDBatchMoveJSONWriter 20 | DataDef.Fields = <> 21 | Left = 276 22 | Top = 152 23 | end 24 | object FDBatchMoveDataSetReader1: TFDBatchMoveDataSetReader 25 | DataSet = EmployeeTable 26 | Left = 160 27 | Top = 152 28 | end 29 | object FDBatchMove1: TFDBatchMove 30 | Reader = FDBatchMoveDataSetReader1 31 | Writer = FDBatchMoveJSONWriter1 32 | Mappings = <> 33 | LogFileName = 'Data.log' 34 | Left = 224 35 | Top = 88 36 | end 37 | end 38 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_GenerateJSON/GenJSON_Stream.dfm: -------------------------------------------------------------------------------- 1 | object EmployeeResource2: TEmployeeResource2 2 | OldCreateOrder = False 3 | Height = 315 4 | Width = 453 5 | object EmployeeConnection: TFDConnection 6 | Params.Strings = ( 7 | 'ConnectionDef=EMPLOYEE') 8 | LoginPrompt = False 9 | Left = 59 10 | Top = 42 11 | end 12 | object EmployeeTable: TFDQuery 13 | Connection = EmployeeConnection 14 | SQL.Strings = ( 15 | 'SELECT * FROM EMPLOYEE') 16 | Left = 67 17 | Top = 98 18 | end 19 | object FDBatchMoveJSONWriter1: TFDBatchMoveJSONWriter 20 | DataDef.Fields = <> 21 | Left = 276 22 | Top = 152 23 | end 24 | object FDBatchMoveDataSetReader1: TFDBatchMoveDataSetReader 25 | DataSet = EmployeeTable 26 | Left = 160 27 | Top = 152 28 | end 29 | object FDBatchMove1: TFDBatchMove 30 | Reader = FDBatchMoveDataSetReader1 31 | Writer = FDBatchMoveJSONWriter1 32 | Mappings = <> 33 | LogFileName = 'Data.log' 34 | Left = 224 35 | Top = 88 36 | end 37 | end 38 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_GenerateJSON/GenJSON_Writer.dfm: -------------------------------------------------------------------------------- 1 | object EmployeeResource1: TEmployeeResource1 2 | OldCreateOrder = False 3 | Height = 286 4 | Width = 491 5 | object EmployeeConnection: TFDConnection 6 | Params.Strings = ( 7 | 'ConnectionDef=EMPLOYEE') 8 | LoginPrompt = False 9 | Left = 67 10 | Top = 26 11 | end 12 | object EmployeeTable: TFDQuery 13 | Connection = EmployeeConnection 14 | SQL.Strings = ( 15 | 'SELECT * FROM EMPLOYEE') 16 | Left = 67 17 | Top = 98 18 | end 19 | object FDBatchMoveJSONWriter1: TFDBatchMoveJSONWriter 20 | DataDef.Fields = <> 21 | Left = 316 22 | Top = 152 23 | end 24 | object FDBatchMoveDataSetReader1: TFDBatchMoveDataSetReader 25 | DataSet = EmployeeTable 26 | Left = 160 27 | Top = 152 28 | end 29 | object FDBatchMove1: TFDBatchMove 30 | Reader = FDBatchMoveDataSetReader1 31 | Writer = FDBatchMoveJSONWriter1 32 | Mappings = <> 33 | LogFileName = 'Data.log' 34 | Left = 240 35 | Top = 80 36 | end 37 | end 38 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_GenerateJSON/GenerateJSON.dpk: -------------------------------------------------------------------------------- 1 | package GenerateJSON; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$RUNONLY} 29 | {$IMPLICITBUILD ON} 30 | 31 | requires 32 | rtl, 33 | emsserverapi, 34 | dbrtl, 35 | FireDACCommonDriver, 36 | FireDACCommon, 37 | FireDACIBDriver, 38 | FireDAC; 39 | 40 | contains 41 | GenJSON_Writer in 'GenJSON_Writer.pas' {EmployeeResource1: TDataModule}, 42 | GenJSON_Stream in 'GenJSON_Stream.pas' {EmployeeResource2: TDataModule}, 43 | GetJSON_FireDAC in 'GetJSON_FireDAC.pas' {EmpfiredacResource1: TDataModule}; 44 | 45 | end. 46 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_GenerateJSON/GenerateJSON.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/RADServerBeyondBasics/RADServer_GenerateJSON/GenerateJSON.res -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_GenerateJSON/GetJSON_FireDAC.dfm: -------------------------------------------------------------------------------- 1 | object EmpfiredacResource1: TEmpfiredacResource1 2 | OldCreateOrder = False 3 | Height = 297 4 | Width = 425 5 | object EmployeeConnection: TFDConnection 6 | Params.Strings = ( 7 | 'ConnectionDef=EMPLOYEE') 8 | LoginPrompt = False 9 | Left = 59 10 | Top = 42 11 | end 12 | object EmployeeTable: TFDQuery 13 | Connection = EmployeeConnection 14 | SQL.Strings = ( 15 | 'SELECT * FROM EMPLOYEE') 16 | Left = 67 17 | Top = 98 18 | end 19 | object FDStanStorageJSONLink1: TFDStanStorageJSONLink 20 | Left = 224 21 | Top = 96 22 | end 23 | end 24 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_GenerateJSON/Project5.dpk: -------------------------------------------------------------------------------- 1 | package Project5; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$RUNONLY} 29 | {$IMPLICITBUILD ON} 30 | 31 | requires 32 | rtl, 33 | emsserverapi, 34 | dbrtl, 35 | FireDACCommonDriver, 36 | FireDACCommon, 37 | FireDACIBDriver, 38 | FireDAC; 39 | 40 | contains 41 | Unit5 in 'Unit5.pas' {EmployeeResource1: TDataModule}; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_GenerateJSON/Project5.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/RADServerBeyondBasics/RADServer_GenerateJSON/Project5.res -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_GenerateJSON/Unit5.dfm: -------------------------------------------------------------------------------- 1 | object EmployeeResource1: TEmployeeResource1 2 | OldCreateOrder = False 3 | Height = 319 4 | Width = 509 5 | object EmployeeConnection: TFDConnection 6 | Params.Strings = ( 7 | 'ConnectionDef=EMPLOYEE') 8 | LoginPrompt = False 9 | Left = 59 10 | Top = 42 11 | end 12 | object EmployeeTable: TFDQuery 13 | Connection = EmployeeConnection 14 | SQL.Strings = ( 15 | 'SELECT * FROM EMPLOYEE') 16 | Left = 67 17 | Top = 98 18 | end 19 | object FDBatchMoveJSONWriter1: TFDBatchMoveJSONWriter 20 | DataDef.Fields = <> 21 | Left = 276 22 | Top = 152 23 | end 24 | object FDBatchMoveDataSetReader1: TFDBatchMoveDataSetReader 25 | DataSet = EmployeeTable 26 | Left = 160 27 | Top = 152 28 | end 29 | object FDBatchMove1: TFDBatchMove 30 | Reader = FDBatchMoveDataSetReader1 31 | Writer = FDBatchMoveJSONWriter1 32 | Mappings = <> 33 | LogFileName = 'Data.log' 34 | Left = 224 35 | Top = 88 36 | end 37 | end 38 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_JavaScript/Project1.dpk: -------------------------------------------------------------------------------- 1 | package Project1; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$RUNONLY} 29 | {$IMPLICITBUILD ON} 30 | 31 | requires 32 | rtl, 33 | emsserverapi; 34 | 35 | contains 36 | Unit1 in 'Unit1.pas'; 37 | 38 | end. 39 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_JavaScript/Project1.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/RADServerBeyondBasics/RADServer_JavaScript/Project1.res -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_JavaScript/WebAssets/Content/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 14 | 15 | 16 | 17 |

RAD Server JS + Service

18 | 19 | 20 | 21 |
Result
22 | 23 | 24 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_JavaScript/WebAssets/Images/rad1023.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/RADServerBeyondBasics/RADServer_JavaScript/WebAssets/Images/rad1023.png -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_Permissions/ClientPro.dpr: -------------------------------------------------------------------------------- 1 | program ClientPro; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | ClientForm in 'ClientForm.pas' {Form13}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm13, Form13); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_Permissions/ClientPro.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/RADServerBeyondBasics/RADServer_Permissions/ClientPro.res -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_Permissions/RADServer101.dpk: -------------------------------------------------------------------------------- 1 | package RADServer101; 2 | 3 | {$R *.res} 4 | {$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} 5 | {$ALIGN 8} 6 | {$ASSERTIONS ON} 7 | {$BOOLEVAL OFF} 8 | {$DEBUGINFO OFF} 9 | {$EXTENDEDSYNTAX ON} 10 | {$IMPORTEDDATA ON} 11 | {$IOCHECKS ON} 12 | {$LOCALSYMBOLS ON} 13 | {$LONGSTRINGS ON} 14 | {$OPENSTRINGS ON} 15 | {$OPTIMIZATION OFF} 16 | {$OVERFLOWCHECKS OFF} 17 | {$RANGECHECKS OFF} 18 | {$REFERENCEINFO ON} 19 | {$SAFEDIVIDE OFF} 20 | {$STACKFRAMES ON} 21 | {$TYPEDADDRESS OFF} 22 | {$VARSTRINGCHECKS ON} 23 | {$WRITEABLECONST OFF} 24 | {$MINENUMSIZE 1} 25 | {$IMAGEBASE $400000} 26 | {$DEFINE DEBUG} 27 | {$ENDIF IMPLICITBUILDING} 28 | {$RUNONLY} 29 | {$IMPLICITBUILD ON} 30 | 31 | requires 32 | rtl, 33 | emsserverapi; 34 | 35 | contains 36 | ServerUnit101 in 'ServerUnit101.pas' {DelphidayResource1: TDataModule}, 37 | CredentialsUnit in 'CredentialsUnit.pas'; 38 | 39 | end. 40 | -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_Permissions/RADServer101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/RADServerBeyondBasics/RADServer_Permissions/RADServer101.res -------------------------------------------------------------------------------- /RADServerBeyondBasics/RADServer_Permissions/ServerUnit101.dfm: -------------------------------------------------------------------------------- 1 | object DelphidayResource1: TDelphidayResource1 2 | OldCreateOrder = False 3 | Height = 232 4 | Width = 372 5 | end 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DelphiSessions 2 | Source code of different public presentations 3 | -------------------------------------------------------------------------------- /UnderstandingARC/01_StringMetaTest/StringMetaTest.dpr: -------------------------------------------------------------------------------- 1 | program StringMetaTest; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | FMX.MobilePreview, 7 | StringMetaTestForm in 'StringMetaTestForm.pas' {Form1}; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.CreateForm(TForm1, Form1); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /UnderstandingARC/01_StringMetaTest/StringMetaTest.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/UnderstandingARC/01_StringMetaTest/StringMetaTest.res -------------------------------------------------------------------------------- /UnderstandingARC/02_Intf101/InterfaceForm.fmx: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 0 3 | Top = 0 4 | Caption = 'InterfaceForm' 5 | ClientHeight = 567 6 | ClientWidth = 384 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 3 11 | object Memo1: TMemo 12 | Touch.InteractiveGestures = [Pan, LongTap, DoubleTap] 13 | DataDetectorTypes = [] 14 | Align = Client 15 | Size.Width = 384.000000000000000000 16 | Size.Height = 479.000000000000000000 17 | Size.PlatformDefault = False 18 | TabOrder = 0 19 | Viewport.Width = 376.000000000000000000 20 | Viewport.Height = 471.000000000000000000 21 | end 22 | object Button2: TButton 23 | Align = Top 24 | Size.Width = 384.000000000000000000 25 | Size.Height = 44.000000000000000000 26 | Size.PlatformDefault = False 27 | TabOrder = 2 28 | Text = 'Use with Interface' 29 | OnClick = Button2Click 30 | end 31 | object Button1: TButton 32 | Align = Top 33 | Position.Y = 44.000000000000000000 34 | Size.Width = 384.000000000000000000 35 | Size.Height = 44.000000000000000000 36 | Size.PlatformDefault = False 37 | TabOrder = 1 38 | Text = 'Use with Object' 39 | OnClick = Button1Click 40 | end 41 | end 42 | -------------------------------------------------------------------------------- /UnderstandingARC/02_Intf101/Intf101.dpr: -------------------------------------------------------------------------------- 1 | program Intf101; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.MobilePreview, 6 | FMX.Forms, 7 | InterfaceForm in 'InterfaceForm.pas' {Form1}; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.CreateForm(TForm1, Form1); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /UnderstandingARC/02_Intf101/Intf101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/UnderstandingARC/02_Intf101/Intf101.res -------------------------------------------------------------------------------- /UnderstandingARC/03_IntfError/InterfaceForm.fmx: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 0 3 | Top = 0 4 | Caption = 'InterfaceForm' 5 | ClientHeight = 567 6 | ClientWidth = 384 7 | FormFactor.Width = 320 8 | FormFactor.Height = 480 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 3 11 | object Memo1: TMemo 12 | Touch.InteractiveGestures = [Pan, LongTap, DoubleTap] 13 | Align = Client 14 | Size.Width = 384.000000000000000000 15 | Size.Height = 479.000000000000000000 16 | Size.PlatformDefault = False 17 | TabOrder = 0 18 | end 19 | object btnMix: TButton 20 | Align = Top 21 | Size.Width = 384.000000000000000000 22 | Size.Height = 44.000000000000000000 23 | Size.PlatformDefault = False 24 | TabOrder = 1 25 | Text = 'Mix (Error)' 26 | OnClick = btnMixClick 27 | end 28 | object btnIntfOnly: TButton 29 | Align = Top 30 | Position.Y = 44.000000000000000000 31 | Size.Width = 384.000000000000000000 32 | Size.Height = 44.000000000000000000 33 | Size.PlatformDefault = False 34 | TabOrder = 2 35 | Text = 'Interface only' 36 | OnClick = btnIntfOnlyClick 37 | end 38 | end 39 | -------------------------------------------------------------------------------- /UnderstandingARC/03_IntfError/IntfError.dpr: -------------------------------------------------------------------------------- 1 | program IntfError; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.MobilePreview, 6 | FMX.Forms, 7 | InterfaceForm in 'InterfaceForm.pas' {Form1}; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.CreateForm(TForm1, Form1); 14 | Application.Run; 15 | end. 16 | -------------------------------------------------------------------------------- /UnderstandingARC/03_IntfError/IntfError.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/UnderstandingARC/03_IntfError/IntfError.res -------------------------------------------------------------------------------- /UnderstandingARC/04_ArcExperiments/ArcConsole101.dpr: -------------------------------------------------------------------------------- 1 | program ArcConsole101; 2 | 3 | {$APPTYPE CONSOLE} 4 | 5 | {$R *.res} 6 | 7 | uses 8 | System.SysUtils, 9 | Arc_MoreClasses in 'Arc_MoreClasses.pas', 10 | ArcExperiments_Classes in 'ArcExperiments_Classes.pas'; 11 | 12 | begin 13 | try 14 | TMySimpleClass.CreateOnly; 15 | Log ('====================='); 16 | TMySimpleClass.TryFinally; 17 | Log ('====================='); 18 | TMySimpleClass.SetNil; 19 | Log ('====================='); 20 | TMyComplexClass.CreateOnly; 21 | // readln; 22 | 23 | except 24 | on E: Exception do 25 | Writeln(E.ClassName, ': ', E.Message); 26 | end; 27 | end. 28 | 29 | 30 | -------------------------------------------------------------------------------- /UnderstandingARC/04_ArcExperiments/ArcConsole101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/UnderstandingARC/04_ArcExperiments/ArcConsole101.res -------------------------------------------------------------------------------- /UnderstandingARC/05_ArcWeakUnsafe/ArcWeakUnsafe.dpr: -------------------------------------------------------------------------------- 1 | program ArcWeakUnsafe; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | ArcWeakUnsafe_Form in 'ArcWeakUnsafe_Form.pas' {Form25}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm25, Form25); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /UnderstandingARC/05_ArcWeakUnsafe/ArcWeakUnsafe.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/UnderstandingARC/05_ArcWeakUnsafe/ArcWeakUnsafe.res -------------------------------------------------------------------------------- /UnderstandingARC/06_Performance_Collections/Performance_Collections.dpr: -------------------------------------------------------------------------------- 1 | program Performance_Collections; 2 | 3 | {$APPTYPE CONSOLE} 4 | 5 | {$R *.res} 6 | 7 | uses 8 | System.SysUtils, 9 | System.Diagnostics, 10 | PerformanceClasses in 'PerformanceClasses.pas', 11 | PerformanceCollections in 'PerformanceCollections.pas'; 12 | 13 | var 14 | sw: TStopWatch; 15 | 16 | begin 17 | try 18 | sw := TStopWatch.StartNew; 19 | TSimpleClass.CreateMany; 20 | sw.Stop; 21 | Writeln ('CreateMany: ' + sw.ElapsedMilliseconds.ToString); 22 | 23 | sw := TStopWatch.StartNew; 24 | TSimpleClass.CreateManyConst; 25 | sw.Stop; 26 | Writeln ('CreateManyConst: ' + sw.ElapsedMilliseconds.ToString); 27 | 28 | sw := TStopWatch.StartNew; 29 | TSimpleClass.CreateManyNoARC; 30 | sw.Stop; 31 | Writeln ('CreateManyNoARC: ' + sw.ElapsedMilliseconds.ToString); 32 | 33 | // readln; 34 | except 35 | on E: Exception do 36 | Writeln(E.ClassName, ': ', E.Message); 37 | end; 38 | end. 39 | -------------------------------------------------------------------------------- /UnderstandingARC/06_Performance_Collections/Performance_Collections.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/UnderstandingARC/06_Performance_Collections/Performance_Collections.res -------------------------------------------------------------------------------- /UnderstandingARC/07_ClassOperators/ClassOpMainForm.fmx: -------------------------------------------------------------------------------- 1 | object Form3: TForm3 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form3' 5 | ClientHeight = 508 6 | ClientWidth = 320 7 | FormFactor.Width = 1440 8 | FormFactor.Height = 900 9 | FormFactor.Devices = [Desktop] 10 | DesignerMasterStyle = 3 11 | object Button1: TButton 12 | Position.X = 56.000000000000000000 13 | Position.Y = 24.000000000000000000 14 | Size.Width = 113.000000000000000000 15 | Size.Height = 44.000000000000000000 16 | Size.PlatformDefault = False 17 | TabOrder = 0 18 | Text = 'Button1' 19 | OnClick = Button1Click 20 | end 21 | object Memo1: TMemo 22 | Touch.InteractiveGestures = [Pan, LongTap, DoubleTap] 23 | DataDetectorTypes = [] 24 | Position.X = 64.000000000000000000 25 | Position.Y = 120.000000000000000000 26 | Size.Width = 209.000000000000000000 27 | Size.Height = 145.000000000000000000 28 | Size.PlatformDefault = False 29 | TabOrder = 1 30 | Viewport.Width = 201.000000000000000000 31 | Viewport.Height = 137.000000000000000000 32 | end 33 | end 34 | -------------------------------------------------------------------------------- /UnderstandingARC/07_ClassOperators/ClassOperators.dpr: -------------------------------------------------------------------------------- 1 | program ClassOperators; 2 | 3 | uses 4 | System.StartUpCopy, 5 | FMX.Forms, 6 | ClassOpMainForm in 'ClassOpMainForm.pas' {Form3}; 7 | 8 | {$R *.res} 9 | 10 | begin 11 | Application.Initialize; 12 | Application.CreateForm(TForm3, Form3); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /UnderstandingARC/07_ClassOperators/ClassOperators.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/UnderstandingARC/07_ClassOperators/ClassOperators.res -------------------------------------------------------------------------------- /UnderstandingARC/08_WeakIntfRef/WeakIntfRef.dpr: -------------------------------------------------------------------------------- 1 | program WeakIntfRef; 2 | 3 | uses 4 | Vcl.Forms, 5 | WeakIntfRef_Form in 'WeakIntfRef_Form.pas' {Form3}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm3, Form3); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /UnderstandingARC/08_WeakIntfRef/WeakIntfRef.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/UnderstandingARC/08_WeakIntfRef/WeakIntfRef.res -------------------------------------------------------------------------------- /UnderstandingARC/08_WeakIntfRef/WeakIntfRef.stat: -------------------------------------------------------------------------------- 1 | [Stats] 2 | EditorSecs=44 3 | DesignerSecs=6 4 | InspectorSecs=1 5 | CompileSecs=2626 6 | OtherSecs=5 7 | StartTime=6/1/2017 12:23:58 PM 8 | RealKeys=0 9 | EffectiveKeys=0 10 | DebugSecs=11 11 | -------------------------------------------------------------------------------- /UnderstandingARC/08_WeakIntfRef/WeakIntfRef_Form.dfm: -------------------------------------------------------------------------------- 1 | object Form3: TForm3 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form3' 5 | ClientHeight = 198 6 | ClientWidth = 437 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object Button1: TButton 17 | Left = 48 18 | Top = 32 19 | Width = 75 20 | Height = 25 21 | Caption = 'Weak Ref' 22 | TabOrder = 0 23 | OnClick = Button1Click 24 | end 25 | object Button2: TButton 26 | Left = 48 27 | Top = 64 28 | Width = 75 29 | Height = 25 30 | Caption = 'Unsafe Ref' 31 | TabOrder = 1 32 | OnClick = Button2Click 33 | end 34 | end 35 | -------------------------------------------------------------------------------- /VCLHighDPIWebinar_Jan2019/FormWithGrid/FormWithGrid.pas: -------------------------------------------------------------------------------- 1 | unit FormWithGrid; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, System.ImageList, 8 | Vcl.ImgList, Vcl.ComCtrls, Vcl.ToolWin, Vcl.VirtualImageList, 9 | Vcl.BaseImageCollection, Vcl.ImageCollection; 10 | 11 | type 12 | TForm1 = class(TForm) 13 | StringGrid1: TStringGrid; 14 | ToolBar1: TToolBar; 15 | ToolButton1: TToolButton; 16 | ToolButton2: TToolButton; 17 | ToolButton3: TToolButton; 18 | ToolButton4: TToolButton; 19 | ImageList1: TImageList; 20 | ImageCollection1: TImageCollection; 21 | VirtualImageList1: TVirtualImageList; 22 | procedure FormCreate(Sender: TObject); 23 | private 24 | { Private declarations } 25 | public 26 | { Public declarations } 27 | end; 28 | 29 | var 30 | Form1: TForm1; 31 | 32 | implementation 33 | 34 | {$R *.dfm} 35 | 36 | procedure TForm1.FormCreate(Sender: TObject); 37 | var 38 | I: Integer; 39 | J: Integer; 40 | begin 41 | for I := 0 to 19 do 42 | for J := 0 to 10 do 43 | StringGrid1.Cells [J, I] := Format ('(%2d, %2d)', [I, J]); 44 | end; 45 | 46 | end. 47 | -------------------------------------------------------------------------------- /VCLHighDPIWebinar_Jan2019/FormWithGrid/WithGrid.dpr: -------------------------------------------------------------------------------- 1 | program WithGrid; 2 | 3 | uses 4 | Vcl.Forms, 5 | FormWithGrid in 'FormWithGrid.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /VCLHighDPIWebinar_Jan2019/FormWithGrid/WithGrid.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/VCLHighDPIWebinar_Jan2019/FormWithGrid/WithGrid.res -------------------------------------------------------------------------------- /VCLHighDPIWebinar_Jan2019/HighDPIImageList/HighDPIImageList.dpr: -------------------------------------------------------------------------------- 1 | program HighDPIImageList; 2 | 3 | uses 4 | Vcl.Forms, 5 | DpiImageForm in 'DpiImageForm.pas' {Form2}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm2, Form2); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /VCLHighDPIWebinar_Jan2019/HighDPIImageList/HighDPIImageList.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/VCLHighDPIWebinar_Jan2019/HighDPIImageList/HighDPIImageList.res -------------------------------------------------------------------------------- /VCLHighDPIWebinar_Jan2019/SystemMetrics/SystemMetrics.dpr: -------------------------------------------------------------------------------- 1 | program SystemMetrics; 2 | 3 | uses 4 | Vcl.Forms, 5 | SystemMetricsForm in 'SystemMetricsForm.pas' {frmSystemMetrics}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TfrmSystemMetrics, frmSystemMetrics); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /VCLHighDPIWebinar_Jan2019/SystemMetrics/SystemMetrics.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/VCLHighDPIWebinar_Jan2019/SystemMetrics/SystemMetrics.res -------------------------------------------------------------------------------- /VCLHighDPIWebinar_Jan2019/SystemMetrics/SystemMetricsForm.dfm: -------------------------------------------------------------------------------- 1 | object frmSystemMetrics: TfrmSystemMetrics 2 | Left = 0 3 | Top = 0 4 | Caption = 'SystemMetrics' 5 | ClientHeight = 299 6 | ClientWidth = 388 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnCreate = FormCreate 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | object Label1: TLabel 18 | Left = 96 19 | Top = 40 20 | Width = 31 21 | Height = 13 22 | Caption = 'Label1' 23 | end 24 | object Label2: TLabel 25 | Left = 96 26 | Top = 72 27 | Width = 31 28 | Height = 13 29 | Caption = 'Label2' 30 | end 31 | object btnRefresh: TButton 32 | Left = 96 33 | Top = 104 34 | Width = 75 35 | Height = 25 36 | Caption = 'Refresh' 37 | TabOrder = 0 38 | OnClick = btnRefreshClick 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /VCLHighDPIWebinar_Jan2019/SystemMetrics/SystemMetricsForm.pas: -------------------------------------------------------------------------------- 1 | unit SystemMetricsForm; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls; 8 | 9 | type 10 | TfrmSystemMetrics = class(TForm) 11 | Label1: TLabel; 12 | Label2: TLabel; 13 | btnRefresh: TButton; 14 | procedure FormCreate(Sender: TObject); 15 | procedure btnRefreshClick(Sender: TObject); 16 | private 17 | { Private declarations } 18 | public 19 | { Public declarations } 20 | end; 21 | 22 | var 23 | frmSystemMetrics: TfrmSystemMetrics; 24 | 25 | implementation 26 | 27 | {$R *.dfm} 28 | 29 | procedure TfrmSystemMetrics.btnRefreshClick(Sender: TObject); 30 | begin 31 | Label2.Caption := 'Current: ' + 32 | GetSystemMetrics (SM_CXVSCROLL).ToString; 33 | end; 34 | 35 | procedure TfrmSystemMetrics.FormCreate(Sender: TObject); 36 | begin 37 | Label1.Caption := 'Initial: ' + 38 | GetSystemMetrics (SM_CXVSCROLL).ToString; 39 | Label2.Caption := 'Current: ' + 40 | GetSystemMetrics (SM_CXVSCROLL).ToString; 41 | end; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /Win10Session/ActivityIndicator/ActivityIndicator.dpr: -------------------------------------------------------------------------------- 1 | program ActivityIndicator; 2 | 3 | uses 4 | Vcl.Forms, 5 | uActivityIndicator in 'uActivityIndicator.pas' {ActivityIndicatorForm}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | TStyleManager.TrySetStyle('Windows10'); 15 | Application.CreateForm(TActivityIndicatorForm, ActivityIndicatorForm); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /Win10Session/ActivityIndicator/ActivityIndicator.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win10Session/ActivityIndicator/ActivityIndicator.res -------------------------------------------------------------------------------- /Win10Session/Calendar/Project1.dpr: -------------------------------------------------------------------------------- 1 | program Project1; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit1 in 'Unit1.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Win10Session/Calendar/Project1.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win10Session/Calendar/Project1.res -------------------------------------------------------------------------------- /Win10Session/Calendar/Unit1.pas: -------------------------------------------------------------------------------- 1 | unit Unit1; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.WinXCalendars; 8 | 9 | type 10 | TForm1 = class(TForm) 11 | CalendarView1: TCalendarView; 12 | CalendarView2: TCalendarView; 13 | private 14 | { Private declarations } 15 | public 16 | { Public declarations } 17 | end; 18 | 19 | var 20 | Form1: TForm1; 21 | 22 | implementation 23 | 24 | {$R *.dfm} 25 | 26 | end. 27 | -------------------------------------------------------------------------------- /Win10Session/CallWinApi/CallWinApi.dpr: -------------------------------------------------------------------------------- 1 | program CallWinApi; 2 | 3 | uses 4 | Forms, 5 | CallWinApi_MainForm in 'CallWinApi_MainForm.pas' {FormCallAPI}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TFormCallAPI, FormCallAPI); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Win10Session/CallWinApi/CallWinApi.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win10Session/CallWinApi/CallWinApi.res -------------------------------------------------------------------------------- /Win10Session/CallWinApi/CallWinApi_MainForm.dfm: -------------------------------------------------------------------------------- 1 | object FormCallAPI: TFormCallAPI 2 | Left = 0 3 | Top = 0 4 | Caption = 'Call WinAPI' 5 | ClientHeight = 238 6 | ClientWidth = 300 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | PixelsPerInch = 96 15 | TextHeight = 13 16 | object btnStandard: TButton 17 | Left = 64 18 | Top = 56 19 | Width = 177 20 | Height = 25 21 | Caption = 'Standard Call' 22 | TabOrder = 0 23 | OnClick = btnStandardClick 24 | end 25 | object btnDynamic: TButton 26 | Left = 64 27 | Top = 96 28 | Width = 177 29 | Height = 25 30 | Caption = 'Dynamic Call' 31 | TabOrder = 1 32 | OnClick = btnDynamicClick 33 | end 34 | object btnDelayed: TButton 35 | Left = 64 36 | Top = 136 37 | Width = 177 38 | Height = 25 39 | Caption = 'Delayed Call' 40 | TabOrder = 2 41 | OnClick = btnDelayedClick 42 | end 43 | end 44 | -------------------------------------------------------------------------------- /Win10Session/JumpListFilesDemo/JumpListFilesDemo.dpr: -------------------------------------------------------------------------------- 1 | program JumpListFilesDemo; 2 | 3 | uses 4 | Vcl.Forms, 5 | Windows, 6 | JumpListFiles_MainForm in 'JumpListFiles_MainForm.pas' {JumpListForm}, 7 | WinProcessHelpers in 'WinProcessHelpers.pas'; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | // check if mutex already exists 13 | HMutex := CreateMutex(nil, False, 'JumpListFilesDemoMutex'); 14 | if WaitForSingleObject(hMutex, 0) <> wait_TimeOut then 15 | begin 16 | Application.Initialize; 17 | Application.MainFormOnTaskbar := True; 18 | Application.CreateForm(TJumpListForm, JumpListForm); 19 | Application.Run; 20 | end 21 | else 22 | ActivateWindow (TJumpListForm); 23 | end. 24 | -------------------------------------------------------------------------------- /Win10Session/JumpListFilesDemo/JumpListFilesDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win10Session/JumpListFilesDemo/JumpListFilesDemo.res -------------------------------------------------------------------------------- /Win10Session/JumpListFilesDemo/JumpListFiles_MainForm.dfm: -------------------------------------------------------------------------------- 1 | object JumpListForm: TJumpListForm 2 | Left = 0 3 | Top = 0 4 | Caption = 'JumpListForm' 5 | ClientHeight = 361 6 | ClientWidth = 645 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnCreate = FormCreate 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | object ListBox1: TListBox 18 | Left = 32 19 | Top = 16 20 | Width = 577 21 | Height = 321 22 | ItemHeight = 13 23 | TabOrder = 0 24 | end 25 | object JumpList1: TJumpList 26 | AutoRefresh = True 27 | Enabled = True 28 | ApplicationID = 'JumpListAppID' 29 | CustomCategories = < 30 | item 31 | CategoryName = 'Dropped Files' 32 | Items = <> 33 | end> 34 | ShowRecent = True 35 | ShowFrequent = True 36 | TaskList = < 37 | item 38 | FriendlyName = 'Sample' 39 | Arguments = 'SampleParameter' 40 | end 41 | item 42 | FriendlyName = 'Second' 43 | Arguments = 'SecondParameter' 44 | end> 45 | Left = 56 46 | Top = 288 47 | end 48 | end 49 | -------------------------------------------------------------------------------- /Win10Session/RelativePanel/RelativePanel.dpr: -------------------------------------------------------------------------------- 1 | program RelativePanel; 2 | 3 | uses 4 | Vcl.Forms, 5 | uRelativePanel in 'uRelativePanel.pas' {RelativePanelForm}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | TStyleManager.TrySetStyle('Windows10'); 15 | Application.CreateForm(TRelativePanelForm, RelativePanelForm); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /Win10Session/RelativePanel/RelativePanel.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win10Session/RelativePanel/RelativePanel.res -------------------------------------------------------------------------------- /Win10Session/SearchBox/SearchBox.dpr: -------------------------------------------------------------------------------- 1 | program SearchBox; 2 | 3 | uses 4 | Vcl.Forms, 5 | uSearchBox in 'uSearchBox.pas' {SearchBoxForm}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | TStyleManager.TrySetStyle('Iceberg Classico'); 15 | Application.Title := 'TSearchBox Demo'; 16 | Application.CreateForm(TSearchBoxForm, SearchBoxForm); 17 | Application.Run; 18 | end. 19 | -------------------------------------------------------------------------------- /Win10Session/SearchBox/SearchBox.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win10Session/SearchBox/SearchBox.res -------------------------------------------------------------------------------- /Win10Session/SplitView/SplitView.dpr: -------------------------------------------------------------------------------- 1 | program SplitView; 2 | 3 | uses 4 | Vcl.Forms, 5 | uSplitView in 'uSplitView.pas' {SplitViewForm}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | Application.Title := 'TSplitView Demo'; 15 | Application.CreateForm(TSplitViewForm, SplitViewForm); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /Win10Session/SplitView/SplitView.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win10Session/SplitView/SplitView.res -------------------------------------------------------------------------------- /Win10Session/SystemMetrics/SystemMetrics.dpr: -------------------------------------------------------------------------------- 1 | program SystemMetrics; 2 | 3 | uses 4 | Vcl.Forms, 5 | SystemMetricsForm in 'SystemMetricsForm.pas' {frmSystemMetrics}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TfrmSystemMetrics, frmSystemMetrics); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Win10Session/SystemMetrics/SystemMetrics.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win10Session/SystemMetrics/SystemMetrics.res -------------------------------------------------------------------------------- /Win10Session/SystemMetrics/SystemMetricsForm.dfm: -------------------------------------------------------------------------------- 1 | object frmSystemMetrics: TfrmSystemMetrics 2 | Left = 0 3 | Top = 0 4 | Caption = 'SystemMetrics' 5 | ClientHeight = 299 6 | ClientWidth = 388 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnCreate = FormCreate 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | object Label1: TLabel 18 | Left = 96 19 | Top = 40 20 | Width = 31 21 | Height = 13 22 | Caption = 'Label1' 23 | end 24 | object Label2: TLabel 25 | Left = 96 26 | Top = 72 27 | Width = 31 28 | Height = 13 29 | Caption = 'Label2' 30 | end 31 | object btnRefresh: TButton 32 | Left = 96 33 | Top = 104 34 | Width = 75 35 | Height = 25 36 | Caption = 'Refresh' 37 | TabOrder = 0 38 | OnClick = btnRefreshClick 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /Win10Session/SystemMetrics/SystemMetricsForm.pas: -------------------------------------------------------------------------------- 1 | unit SystemMetricsForm; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls; 8 | 9 | type 10 | TfrmSystemMetrics = class(TForm) 11 | Label1: TLabel; 12 | Label2: TLabel; 13 | btnRefresh: TButton; 14 | procedure FormCreate(Sender: TObject); 15 | procedure btnRefreshClick(Sender: TObject); 16 | private 17 | { Private declarations } 18 | public 19 | { Public declarations } 20 | end; 21 | 22 | var 23 | frmSystemMetrics: TfrmSystemMetrics; 24 | 25 | implementation 26 | 27 | {$R *.dfm} 28 | 29 | procedure TfrmSystemMetrics.btnRefreshClick(Sender: TObject); 30 | begin 31 | Label2.Caption := 'Current: ' + 32 | GetSystemMetrics (SM_CXVSCROLL).ToString; 33 | end; 34 | 35 | procedure TfrmSystemMetrics.FormCreate(Sender: TObject); 36 | begin 37 | Label1.Caption := 'Initial: ' + 38 | GetSystemMetrics (SM_CXVSCROLL).ToString; 39 | Label2.Caption := 'Current: ' + 40 | GetSystemMetrics (SM_CXVSCROLL).ToString; 41 | end; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /Win10Session/ToggleSwitch/ToggleSwitch.dpr: -------------------------------------------------------------------------------- 1 | program ToggleSwitch; 2 | 3 | uses 4 | Vcl.Forms, 5 | uToggleSwitch in 'uToggleSwitch.pas' {ToggleSwitchForm}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | Application.Title := 'TToggleSwitch Demo'; 15 | Application.CreateForm(TToggleSwitchForm, ToggleSwitchForm); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /Win10Session/ToggleSwitch/ToggleSwitch.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win10Session/ToggleSwitch/ToggleSwitch.res -------------------------------------------------------------------------------- /Win10Session/VCL_CommonDialogStyling/VCLDialogStyling.dpr: -------------------------------------------------------------------------------- 1 | program VCLDialogStyling; 2 | 3 | uses 4 | Vcl.Forms, 5 | CommonDialog in 'CommonDialog.pas' {Form1}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | ReportMemoryLeaksOnShutdown := True; 14 | Application.MainFormOnTaskbar := True; 15 | TStyleManager.TrySetStyle('Windows10'); 16 | Application.CreateForm(TForm1, Form1); 17 | Application.Run; 18 | end. 19 | -------------------------------------------------------------------------------- /Win10Session/VCL_CommonDialogStyling/VCLDialogStyling.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win10Session/VCL_CommonDialogStyling/VCLDialogStyling.res -------------------------------------------------------------------------------- /Win10Session/WinRTDirect/WInRtDirect.dpr: -------------------------------------------------------------------------------- 1 | program WInRtDirect; 2 | 3 | uses 4 | Vcl.Forms, 5 | WinRTD_Form in 'WinRTD_Form.pas' {Form8}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm8, Form8); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Win10Session/WinRTDirect/WInRtDirect.identcache: -------------------------------------------------------------------------------- 1 | AD:\GitHub\DelphiSessions\Win10Session\WinRTDirect\WInRtDirect.dprAD:\GitHub\DelphiSessions\Win10Session\WinRTDirect\WinRTD_Form.pas -------------------------------------------------------------------------------- /Win10Session/WinRTDirect/WInRtDirect.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win10Session/WinRTDirect/WInRtDirect.res -------------------------------------------------------------------------------- /Win10Session/WinRTDirect/WInRtDirect.stat: -------------------------------------------------------------------------------- 1 | [Stats] 2 | EditorSecs=5 3 | DesignerSecs=4 4 | InspectorSecs=1 5 | CompileSecs=1 6 | OtherSecs=1 7 | StartTime=2/1/2018 6:15:33 PM 8 | RealKeys=0 9 | EffectiveKeys=0 10 | DebugSecs=1 11 | -------------------------------------------------------------------------------- /Win10Session/WinRTDirect/WinRTD_Form.dfm: -------------------------------------------------------------------------------- 1 | object Form8: TForm8 2 | Left = 0 3 | Top = 0 4 | Caption = 'winRT Direct' 5 | ClientHeight = 242 6 | ClientWidth = 472 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnCreate = FormCreate 15 | OnDestroy = FormDestroy 16 | PixelsPerInch = 96 17 | TextHeight = 13 18 | object Button1: TButton 19 | Left = 48 20 | Top = 48 21 | Width = 75 22 | Height = 25 23 | Caption = 'Button1' 24 | TabOrder = 0 25 | OnClick = Button1Click 26 | end 27 | end 28 | -------------------------------------------------------------------------------- /Win10Session/Windows 10 Notifications/NotificationsProject.dpr: -------------------------------------------------------------------------------- 1 | program NotificationsProject; 2 | 3 | uses 4 | Vcl.Forms, 5 | Notifications in 'Notifications.pas' {NotificationsForm}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | TStyleManager.TrySetStyle('Windows10 Blue'); 15 | Application.CreateForm(TNotificationsForm, NotificationsForm); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /Win10Session/Windows 10 Notifications/NotificationsProject.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win10Session/Windows 10 Notifications/NotificationsProject.res -------------------------------------------------------------------------------- /Win11_Delphi11/ControlListLiveBinding/ControlListLiveBindingDemo.dpr: -------------------------------------------------------------------------------- 1 | program ControlListLiveBindingDemo; 2 | 3 | uses 4 | Vcl.Forms, 5 | ControlListLiveBindingUnit1 in 'ControlListLiveBindingUnit1.pas' {frmCtrlListDemo3}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TfrmCtrlListDemo3, frmCtrlListDemo3); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Win11_Delphi11/ControlListLiveBinding/ControlListLiveBindingDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win11_Delphi11/ControlListLiveBinding/ControlListLiveBindingDemo.res -------------------------------------------------------------------------------- /Win11_Delphi11/Dynamic_Per_Conrol_Styles/DynamicStyles.dpr: -------------------------------------------------------------------------------- 1 | program DynamicStyles; 2 | 3 | uses 4 | Vcl.Forms, 5 | Vcl.Themes, 6 | Vcl.Styles, 7 | DynamicStylesMain in 'DynamicStylesMain.pas' {Form1}; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | Application.HelpFile := 'No help for you'; 15 | Application.Title := 'Warning, may induce seizures!'; 16 | Application.CreateForm(TForm1, Form1); 17 | TStyleManager.TrySetStyle('Aqua Light Slate'); 18 | Application.Run; 19 | end. 20 | -------------------------------------------------------------------------------- /Win11_Delphi11/Dynamic_Per_Conrol_Styles/DynamicStyles.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win11_Delphi11/Dynamic_Per_Conrol_Styles/DynamicStyles.res -------------------------------------------------------------------------------- /Win11_Delphi11/Edge101/Edge101.dpr: -------------------------------------------------------------------------------- 1 | program Edge101; 2 | 3 | uses 4 | Vcl.Forms, 5 | Edge101form in 'Edge101form.pas' {Form1}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm1, Form1); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Win11_Delphi11/Edge101/Edge101.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win11_Delphi11/Edge101/Edge101.res -------------------------------------------------------------------------------- /Win11_Delphi11/Edge101/Edge101form.dfm: -------------------------------------------------------------------------------- 1 | object Form1: TForm1 2 | Left = 0 3 | Top = 0 4 | Caption = 'Form1' 5 | ClientHeight = 299 6 | ClientWidth = 635 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | DesignSize = ( 15 | 635 16 | 299) 17 | PixelsPerInch = 96 18 | TextHeight = 13 19 | object EdgeBrowser1: TEdgeBrowser 20 | Left = 8 21 | Top = 39 22 | Width = 577 23 | Height = 241 24 | Anchors = [akLeft, akTop, akRight, akBottom] 25 | TabOrder = 0 26 | end 27 | object Button1: TButton 28 | Left = 16 29 | Top = 8 30 | Width = 75 31 | Height = 25 32 | Caption = 'Go' 33 | TabOrder = 1 34 | OnClick = Button1Click 35 | end 36 | end 37 | -------------------------------------------------------------------------------- /Win11_Delphi11/Edge101/Edge101form.pas: -------------------------------------------------------------------------------- 1 | unit Edge101form; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, WebView2, Winapi.ActiveX, Vcl.StdCtrls, 8 | Vcl.Edge; 9 | 10 | type 11 | TForm1 = class(TForm) 12 | EdgeBrowser1: TEdgeBrowser; 13 | Button1: TButton; 14 | procedure Button1Click(Sender: TObject); 15 | private 16 | { Private declarations } 17 | public 18 | { Public declarations } 19 | end; 20 | 21 | var 22 | Form1: TForm1; 23 | 24 | implementation 25 | 26 | {$R *.dfm} 27 | 28 | procedure TForm1.Button1Click(Sender: TObject); 29 | begin 30 | EdgeBrowser1.Navigate('https://www.embarcadero.com'); 31 | end; 32 | 33 | end. 34 | -------------------------------------------------------------------------------- /Win11_Delphi11/HighDPIImageList/HighDPIImageList.dpr: -------------------------------------------------------------------------------- 1 | program HighDPIImageList; 2 | 3 | uses 4 | Vcl.Forms, 5 | DpiImageForm in 'DpiImageForm.pas' {Form2}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TForm2, Form2); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Win11_Delphi11/HighDPIImageList/HighDPIImageList.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win11_Delphi11/HighDPIImageList/HighDPIImageList.res -------------------------------------------------------------------------------- /Win11_Delphi11/NumberBoxDemo/NumberBoxDemo.dpr: -------------------------------------------------------------------------------- 1 | program NumberBoxDemo; 2 | 3 | uses 4 | Vcl.Forms, 5 | NumberBoxDemo_Unit1 in 'NumberBoxDemo_Unit1.pas' {NumBoxDemo}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | TStyleManager.TrySetStyle('Glow'); 15 | Application.CreateForm(TNumBoxDemo, NumBoxDemo); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /Win11_Delphi11/NumberBoxDemo/NumberBoxDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win11_Delphi11/NumberBoxDemo/NumberBoxDemo.res -------------------------------------------------------------------------------- /Win11_Delphi11/SystemMetrics/SystemMetrics.dpr: -------------------------------------------------------------------------------- 1 | program SystemMetrics; 2 | 3 | uses 4 | Vcl.Forms, 5 | SystemMetricsForm in 'SystemMetricsForm.pas' {frmSystemMetrics}; 6 | 7 | {$R *.res} 8 | 9 | begin 10 | Application.Initialize; 11 | Application.MainFormOnTaskbar := True; 12 | Application.CreateForm(TfrmSystemMetrics, frmSystemMetrics); 13 | Application.Run; 14 | end. 15 | -------------------------------------------------------------------------------- /Win11_Delphi11/SystemMetrics/SystemMetrics.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win11_Delphi11/SystemMetrics/SystemMetrics.res -------------------------------------------------------------------------------- /Win11_Delphi11/SystemMetrics/SystemMetricsForm.dfm: -------------------------------------------------------------------------------- 1 | object frmSystemMetrics: TfrmSystemMetrics 2 | Left = 0 3 | Top = 0 4 | Caption = 'SystemMetrics' 5 | ClientHeight = 299 6 | ClientWidth = 388 7 | Color = clBtnFace 8 | Font.Charset = DEFAULT_CHARSET 9 | Font.Color = clWindowText 10 | Font.Height = -11 11 | Font.Name = 'Tahoma' 12 | Font.Style = [] 13 | OldCreateOrder = False 14 | OnCreate = FormCreate 15 | PixelsPerInch = 96 16 | TextHeight = 13 17 | object Label1: TLabel 18 | Left = 96 19 | Top = 40 20 | Width = 31 21 | Height = 13 22 | Caption = 'Label1' 23 | end 24 | object Label2: TLabel 25 | Left = 96 26 | Top = 72 27 | Width = 31 28 | Height = 13 29 | Caption = 'Label2' 30 | end 31 | object btnRefresh: TButton 32 | Left = 96 33 | Top = 104 34 | Width = 75 35 | Height = 25 36 | Caption = 'Refresh' 37 | TabOrder = 0 38 | OnClick = btnRefreshClick 39 | end 40 | end 41 | -------------------------------------------------------------------------------- /Win11_Delphi11/SystemMetrics/SystemMetricsForm.pas: -------------------------------------------------------------------------------- 1 | unit SystemMetricsForm; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls; 8 | 9 | type 10 | TfrmSystemMetrics = class(TForm) 11 | Label1: TLabel; 12 | Label2: TLabel; 13 | btnRefresh: TButton; 14 | procedure FormCreate(Sender: TObject); 15 | procedure btnRefreshClick(Sender: TObject); 16 | private 17 | { Private declarations } 18 | public 19 | { Public declarations } 20 | end; 21 | 22 | var 23 | frmSystemMetrics: TfrmSystemMetrics; 24 | 25 | implementation 26 | 27 | {$R *.dfm} 28 | 29 | procedure TfrmSystemMetrics.btnRefreshClick(Sender: TObject); 30 | begin 31 | Label2.Caption := 'Current: ' + 32 | GetSystemMetrics (SM_CXVSCROLL).ToString; 33 | end; 34 | 35 | procedure TfrmSystemMetrics.FormCreate(Sender: TObject); 36 | begin 37 | Label1.Caption := 'Initial: ' + 38 | GetSystemMetrics (SM_CXVSCROLL).ToString; 39 | Label2.Caption := 'Current: ' + 40 | GetSystemMetrics (SM_CXVSCROLL).ToString; 41 | end; 42 | 43 | end. 44 | -------------------------------------------------------------------------------- /Win11_Delphi11/VCLControlColorsB/VCLColorButtonsUnit1.pas: -------------------------------------------------------------------------------- 1 | unit VCLColorButtonsUnit1; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.WinXCtrls, 8 | Vcl.StdCtrls, Vcl.Imaging.jpeg; 9 | 10 | type 11 | TForm1 = class(TForm) 12 | Button1: TButton; 13 | Button2: TButton; 14 | Button3: TButton; 15 | Button4: TButton; 16 | Button5: TButton; 17 | Button6: TButton; 18 | Button7: TButton; 19 | Button8: TButton; 20 | RelativePanel1: TRelativePanel; 21 | Image1: TImage; 22 | Button9: TButton; 23 | Button10: TButton; 24 | Button11: TButton; 25 | Label1: TLabel; 26 | private 27 | { Private declarations } 28 | public 29 | { Public declarations } 30 | end; 31 | 32 | var 33 | Form1: TForm1; 34 | 35 | implementation 36 | 37 | {$R *.dfm} 38 | 39 | end. 40 | -------------------------------------------------------------------------------- /Win11_Delphi11/VCLControlColorsB/VCLControlColorsB.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win11_Delphi11/VCLControlColorsB/VCLControlColorsB.res -------------------------------------------------------------------------------- /Win11_Delphi11/VCLControlColorsB/VCLControlColorsButtons.dpr: -------------------------------------------------------------------------------- 1 | program VCLControlColorsButtons; 2 | 3 | uses 4 | Vcl.Forms, 5 | VCLColorButtonsUnit1 in 'VCLColorButtonsUnit1.pas' {Form1}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | TStyleManager.TrySetStyle('Windows10 SlateGray'); 15 | Application.CreateForm(TForm1, Form1); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /Win11_Delphi11/VCLControlColorsB/VCLControlColorsButtons.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win11_Delphi11/VCLControlColorsB/VCLControlColorsButtons.res -------------------------------------------------------------------------------- /Win11_Delphi11/VirtualImage_Demo/VirtualImgDemo.dpr: -------------------------------------------------------------------------------- 1 | program VirtualImgDemo; 2 | 3 | uses 4 | Vcl.Forms, 5 | Unit1 in 'Unit1.pas' {Form1}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | Application.CreateForm(TForm1, Form1); 15 | Application.Run; 16 | end. 17 | -------------------------------------------------------------------------------- /Win11_Delphi11/VirtualImage_Demo/VirtualImgDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win11_Delphi11/VirtualImage_Demo/VirtualImgDemo.res -------------------------------------------------------------------------------- /Win11_Delphi11/Win11Round/TitleBar_Form.pas: -------------------------------------------------------------------------------- 1 | unit TitleBar_Form; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.TitleBarCtrls, Win11Forms; 8 | 9 | type 10 | TForm1 = class(TForm) 11 | TitleBarPanel1: TTitleBarPanel; 12 | Edit1: TEdit; 13 | private 14 | { Private declarations } 15 | public 16 | { Public declarations } 17 | end; 18 | 19 | var 20 | Form1: TForm1; 21 | 22 | implementation 23 | 24 | {$R *.dfm} 25 | 26 | end. 27 | -------------------------------------------------------------------------------- /Win11_Delphi11/Win11Round/Win11_DemoForm.pas: -------------------------------------------------------------------------------- 1 | unit Win11_DemoForm; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Win11Forms; 8 | 9 | type 10 | TForm6 = class(TForm) 11 | Button1: TButton; 12 | ListBox1: TListBox; 13 | ListBox2: TListBox; 14 | procedure Button1Click(Sender: TObject); 15 | procedure ListBox2Click(Sender: TObject); 16 | private 17 | { Private declarations } 18 | public 19 | { Public declarations } 20 | end; 21 | 22 | var 23 | Form6: TForm6; 24 | 25 | implementation 26 | 27 | {$R *.dfm} 28 | 29 | uses 30 | System.DateUtils, Winapi.UxTheme, Winapi.Dwmapi, TitleBar_Form; 31 | 32 | procedure TForm6.Button1Click(Sender: TObject); 33 | begin 34 | ListBox1.Items.Add(Now.Format('hh:mm:ss')); 35 | end; 36 | 37 | procedure TForm6.ListBox2Click(Sender: TObject); 38 | begin 39 | case ListBox2.ItemIndex of 40 | 0: RoundedCorners := rcDefault; 41 | 1: RoundedCorners := rcOff; 42 | 2: RoundedCorners := rcOn; 43 | 3: RoundedCorners := rcSmall; 44 | end; 45 | 46 | TitleBar_Form.Form1.RoundedCorners := self.RoundedCorners; 47 | end; 48 | 49 | initialization 50 | TForm.DefaultRoundedCorners := rcOff; 51 | 52 | end. 53 | -------------------------------------------------------------------------------- /Win11_Delphi11/Win11Round/Win11_DemoProject.dpr: -------------------------------------------------------------------------------- 1 | program Win11_DemoProject; 2 | 3 | uses 4 | Vcl.Forms, 5 | Win11_DemoForm in 'Win11_DemoForm.pas' {Form6}, 6 | Win11Forms in 'Win11Forms.pas', 7 | TitleBar_Form in 'TitleBar_Form.pas' {Form1}; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | Application.CreateForm(TForm6, Form6); 15 | Application.CreateForm(TForm1, Form1); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /Win11_Delphi11/Win11Round/Win11_DemoProject.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win11_Delphi11/Win11Round/Win11_DemoProject.res -------------------------------------------------------------------------------- /Win11_Delphi11/multistyle_101/multi_style.dpr: -------------------------------------------------------------------------------- 1 | program multi_style; 2 | 3 | uses 4 | Vcl.Forms, 5 | multi_style_form in 'multi_style_form.pas' {Form2}, 6 | Vcl.Themes, 7 | Vcl.Styles; 8 | 9 | {$R *.res} 10 | 11 | begin 12 | Application.Initialize; 13 | Application.MainFormOnTaskbar := True; 14 | TStyleManager.TrySetStyle('Sky'); 15 | Application.CreateForm(TForm2, Form2); 16 | Application.Run; 17 | end. 18 | -------------------------------------------------------------------------------- /Win11_Delphi11/multistyle_101/multi_style.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marcocantu/DelphiSessions/df5c67550517bfeae882911d6c6a041a98dcf4fd/Win11_Delphi11/multistyle_101/multi_style.res -------------------------------------------------------------------------------- /Win11_Delphi11/multistyle_101/multi_style_form.pas: -------------------------------------------------------------------------------- 1 | unit multi_style_form; 2 | 3 | interface 4 | 5 | uses 6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, 7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.ExtCtrls, 8 | Vcl.BaseImageCollection, Vcl.ImageCollection, Vcl.VirtualImage; 9 | 10 | type 11 | TForm2 = class(TForm) 12 | Panel1: TPanel; 13 | Button1: TButton; 14 | Button3: TButton; 15 | Button2: TButton; 16 | Button4: TButton; 17 | Button5: TButton; 18 | private 19 | { Private declarations } 20 | public 21 | { Public declarations } 22 | end; 23 | 24 | var 25 | Form2: TForm2; 26 | 27 | implementation 28 | 29 | {$R *.dfm} 30 | 31 | end. 32 | --------------------------------------------------------------------------------