From 8b46dfc8a6dbd26b161cbb4526aa32a700974b21 Mon Sep 17 00:00:00 2001 From: Daniele Teti Date: Tue, 11 Feb 2020 15:45:35 +0100 Subject: [PATCH] Improved sample about https://pastebin.com/RVAKR8VU --- .../activerecord_crud/activerecord_crud.dproj | 239 ----- .../Entities.pas | 0 .../EntitiesProcessors.pas | 0 .../OtherControllerU.pas | 33 + .../WebModuleU.dfm | 0 .../WebModuleU.pas | 4 +- .../activerecord_crud.otares | Bin 0 -> 96 bytes .../activerecord_crud_Icon.ico | Bin 0 -> 56846 bytes .../activerecord_restful_crud.dpr} | 10 +- .../activerecord_restful_crud.dproj | 972 ++++++++++++++++++ 10 files changed, 1013 insertions(+), 245 deletions(-) delete mode 100644 samples/activerecord_crud/activerecord_crud.dproj rename samples/{activerecord_crud => activerecord_restful_crud}/Entities.pas (100%) rename samples/{activerecord_crud => activerecord_restful_crud}/EntitiesProcessors.pas (100%) create mode 100644 samples/activerecord_restful_crud/OtherControllerU.pas rename samples/{activerecord_crud => activerecord_restful_crud}/WebModuleU.dfm (100%) rename samples/{activerecord_crud => activerecord_restful_crud}/WebModuleU.pas (96%) create mode 100644 samples/activerecord_restful_crud/activerecord_crud.otares create mode 100644 samples/activerecord_restful_crud/activerecord_crud_Icon.ico rename samples/{activerecord_crud/activerecord_crud.dpr => activerecord_restful_crud/activerecord_restful_crud.dpr} (93%) create mode 100644 samples/activerecord_restful_crud/activerecord_restful_crud.dproj diff --git a/samples/activerecord_crud/activerecord_crud.dproj b/samples/activerecord_crud/activerecord_crud.dproj deleted file mode 100644 index ddfa25744..000000000 --- a/samples/activerecord_crud/activerecord_crud.dproj +++ /dev/null @@ -1,239 +0,0 @@ - - - {577870BB-C138-49DA-BB88-AF1737526F46} - activerecord_crud.dpr - True - Debug - 36993 - Console - None - 18.8 - Win32 - - - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Base - true - - - true - Cfg_2 - true - true - - - true - Cfg_2 - true - true - - - false - false - false - false - false - 00400000 - activerecord_crud - 1040 - CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName= - System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) - $(BDS)\bin\delphi_PROJECTICON.ico - $(BDS)\bin\delphi_PROJECTICNS.icns - - - package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= - Debug - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png - $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png - $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png - true - true - true - true - true - true - true - true - true - true - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png - $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png - android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar - - - android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar - - - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png - $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png - $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png - $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png - $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png - $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png - $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png - - - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png - $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png - $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png - $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png - $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png - $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png - $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png - - - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png - $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png - $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png - $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png - $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png - $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png - $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png - $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png - $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png - - - Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) - Debug - CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName) - 1033 - activerecord_crud_Icon.ico - - - activerecord_crud_Icon.ico - - - RELEASE;$(DCC_Define) - 0 - false - 0 - - - DEBUG;$(DCC_Define) - false - true - - - Debug - - - Debug - - - - MainSource - - -
MyWebModule
- TWebModule -
- - - - - - - Cfg_2 - Base - - - Base - - - Cfg_1 - Base - -
- - Delphi.Personality.12 - - - - - activerecord_crud.dpr - - - - False - True - False - False - False - True - False - True - True - False - - - 12 - - - -
diff --git a/samples/activerecord_crud/Entities.pas b/samples/activerecord_restful_crud/Entities.pas similarity index 100% rename from samples/activerecord_crud/Entities.pas rename to samples/activerecord_restful_crud/Entities.pas diff --git a/samples/activerecord_crud/EntitiesProcessors.pas b/samples/activerecord_restful_crud/EntitiesProcessors.pas similarity index 100% rename from samples/activerecord_crud/EntitiesProcessors.pas rename to samples/activerecord_restful_crud/EntitiesProcessors.pas diff --git a/samples/activerecord_restful_crud/OtherControllerU.pas b/samples/activerecord_restful_crud/OtherControllerU.pas new file mode 100644 index 000000000..401e05ae2 --- /dev/null +++ b/samples/activerecord_restful_crud/OtherControllerU.pas @@ -0,0 +1,33 @@ +unit OtherControllerU; + +interface + +uses + MVCFramework, MVCFramework.Commons; + +type + TOtherController = class(TMVCController) + public + [MVCPath] + [MVCHTTPMethods([httpGET])] + procedure GetSomethings; + [MVCPath('/else')] + [MVCHTTPMethods([httpGET])] + procedure GetSomethingElse; + end; + +implementation + +{ TCustomController } + +procedure TOtherController.GetSomethingElse; +begin + Render('Hello There, it''s "GetSomethingElse" here'); +end; + +procedure TOtherController.GetSomethings; +begin + Render('Hello There, it''s "GetSomethings" here'); +end; + +end. diff --git a/samples/activerecord_crud/WebModuleU.dfm b/samples/activerecord_restful_crud/WebModuleU.dfm similarity index 100% rename from samples/activerecord_crud/WebModuleU.dfm rename to samples/activerecord_restful_crud/WebModuleU.dfm diff --git a/samples/activerecord_crud/WebModuleU.pas b/samples/activerecord_restful_crud/WebModuleU.pas similarity index 96% rename from samples/activerecord_crud/WebModuleU.pas rename to samples/activerecord_restful_crud/WebModuleU.pas index 1cb674559..5fc121d1d 100644 --- a/samples/activerecord_crud/WebModuleU.pas +++ b/samples/activerecord_restful_crud/WebModuleU.pas @@ -53,7 +53,7 @@ implementation MVCFramework.Commons, MVCFramework.ActiveRecordController, MVCFramework.ActiveRecord, - FDConnectionConfigU; + FDConnectionConfigU, CustomControllerU, OtherControllerU; procedure TMyWebModule.WebModuleCreate(Sender: TObject); begin @@ -79,6 +79,8 @@ procedure TMyWebModule.WebModuleCreate(Sender: TObject); // Define a default URL for requests that don't map to a route or a file (useful for client side web app) Config[TMVCConfigKey.FallbackResource] := 'index.html'; end); + + FMVC.AddController(TOtherController, '/api/foo'); FMVC.AddController(TMVCActiveRecordController, function: TMVCController begin diff --git a/samples/activerecord_restful_crud/activerecord_crud.otares b/samples/activerecord_restful_crud/activerecord_crud.otares new file mode 100644 index 0000000000000000000000000000000000000000..93e7e944f20ed0f0e50532c1b7ef56bb8d255d33 GIT binary patch literal 96 zcmZQzU|>)H;{X347|28cOhBFu5dZ(r#Sp;Y!{Epe!r;c>&k)4m3uHM0X?F%!AS)QE O%YcEC1!e#C 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 A@Bjb+ literal 0 HcmV?d00001 diff --git a/samples/activerecord_crud/activerecord_crud.dpr b/samples/activerecord_restful_crud/activerecord_restful_crud.dpr similarity index 93% rename from samples/activerecord_crud/activerecord_crud.dpr rename to samples/activerecord_restful_crud/activerecord_restful_crud.dpr index 5c827a271..835dc451b 100644 --- a/samples/activerecord_crud/activerecord_crud.dpr +++ b/samples/activerecord_restful_crud/activerecord_restful_crud.dpr @@ -1,4 +1,4 @@ -program activerecord_crud; +program activerecord_restful_crud; {$APPTYPE CONSOLE} @@ -19,13 +19,13 @@ uses MVCFramework.SQLGenerators.Interbase, MVCFramework.SQLGenerators.MSSQL, MVCFramework.SQLGenerators.MySQL, - WebModuleU in 'WebModuleU.pas' {MyWebModule: TWebModule} , + WebModuleU in 'WebModuleU.pas' {MyWebModule: TWebModule}, Entities in 'Entities.pas', - MVCFramework.ActiveRecordController - in '..\..\sources\MVCFramework.ActiveRecordController.pas', + MVCFramework.ActiveRecordController in '..\..\sources\MVCFramework.ActiveRecordController.pas', MVCFramework.ActiveRecord in '..\..\sources\MVCFramework.ActiveRecord.pas', EntitiesProcessors in 'EntitiesProcessors.pas', - FDConnectionConfigU in '..\activerecord_showcase\FDConnectionConfigU.pas'; + FDConnectionConfigU in '..\activerecord_showcase\FDConnectionConfigU.pas', + OtherControllerU in 'OtherControllerU.pas'; {$R *.res} diff --git a/samples/activerecord_restful_crud/activerecord_restful_crud.dproj b/samples/activerecord_restful_crud/activerecord_restful_crud.dproj new file mode 100644 index 000000000..e517952e7 --- /dev/null +++ b/samples/activerecord_restful_crud/activerecord_restful_crud.dproj @@ -0,0 +1,972 @@ + + + {577870BB-C138-49DA-BB88-AF1737526F46} + activerecord_restful_crud.dpr + True + Debug + 36993 + Console + None + 18.8 + Win32 + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + false + false + false + false + false + 00400000 + activerecord_restful_crud + 1040 + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName= + System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) + $(BDS)\bin\delphi_PROJECTICON.ico + $(BDS)\bin\delphi_PROJECTICNS.icns + + + package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= + Debug + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png + true + true + true + true + true + true + true + true + true + true + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png + android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + + + android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + + + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName) + 1033 + activerecord_crud_Icon.ico + + + activerecord_crud_Icon.ico + + + RELEASE;$(DCC_Define) + 0 + false + 0 + + + activerecord_crud_Icon.ico + + + DEBUG;$(DCC_Define) + false + true + + + Debug + + + Debug + + + activerecord_crud_Icon.ico + + + + MainSource + + +
MyWebModule
+ TWebModule +
+ + + + + + + + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + +
+ + Delphi.Personality.12 + + + + + activerecord_restful_crud.dpr + + + + False + True + True + False + True + True + False + + + + + true + + + + + true + + + + + true + + + + + activerecord_restful_crud.exe + true + + + + + 1 + + + 0 + + + + + classes + 1 + + + classes + 1 + + + + + res\xml + 1 + + + res\xml + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\armeabi + 1 + + + library\lib\armeabi + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\mips + 1 + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\values-v21 + 1 + + + res\values-v21 + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + res\drawable + 1 + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + res\values + 1 + + + + + 1 + + + 1 + + + 0 + + + + + 1 + .framework + + + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + 0 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + + + + 1 + + + 1 + + + 1 + + + + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + library\lib\arm64-v8a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + 0 + + + + + library\lib\armeabi-v7a + 1 + + + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + + + + + + + + + + + 12 + + + + +