├── Delphi and HTMX - part 1 ├── HTMXDemo.res ├── Project1.res ├── README.md ├── Win32 │ └── Debug │ │ └── index.html ├── templates │ └── index.html ├── WebModuleUnit1.dfm ├── ServerConst1.pas ├── WebModuleUnit1.pas ├── HTMXDemo.dpr └── HTMXDemo.dproj ├── Delphi and HTMX - part 2 ├── README.md ├── WebModuleUnit1.dfm ├── ServerConst1.pas ├── HTMLTemplates.pas ├── WebModuleUnit1.pas ├── HTMXDemoPart2.dpr └── HTMXDemoPart2.dproj ├── Delphi and HTMX - part 3 ├── README.md ├── WebModuleUnit1.dfm ├── ServerConst1.pas ├── HTMLTemplates.pas ├── WebModuleUnit1.pas ├── HTMXDemoPart3.dpr └── HTMXDemoPart3.dproj ├── README.md └── .gitignore /Delphi and HTMX - part 1/HTMXDemo.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Embarcadero/DelphiBlogExamples/HEAD/Delphi and HTMX - part 1/HTMXDemo.res -------------------------------------------------------------------------------- /Delphi and HTMX - part 1/Project1.res: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Embarcadero/DelphiBlogExamples/HEAD/Delphi and HTMX - part 1/Project1.res -------------------------------------------------------------------------------- /Delphi and HTMX - part 1/README.md: -------------------------------------------------------------------------------- 1 | # Harnessing the power of the Web with Delphi & HTMX 2 | This repository is the project linked to [this blog post](https://blogs.embarcadero.com/harnessing-the-power-of-the-web-with-delphi-htmx/). Please take a look before testing this project. 3 | 4 | ## Pre requisites 5 | Delphi Athens 12.X or above 6 | 7 | ## Info 8 | This project is a proof of concept for web development that uses Delphi and HTMX. -------------------------------------------------------------------------------- /Delphi and HTMX - part 2/README.md: -------------------------------------------------------------------------------- 1 | # Harnessing the power of the Web with Delphi & HTMX - part 2 2 | This repository is the project linked to [this blog post](https://blogs.embarcadero.com/harnessing-the-power-of-the-web-with-delphi-htmx-part-2/). Please take a look before testing this project. 3 | 4 | ## Pre requisites 5 | Delphi Athens 12.X or above 6 | 7 | ## Info 8 | This project is a proof of concept for web development that uses Delphi and HTMX. -------------------------------------------------------------------------------- /Delphi and HTMX - part 3/README.md: -------------------------------------------------------------------------------- 1 | # Running Delphi & HTMX in WordPress – HTMX series part 3 2 | This repository is the project linked to [this blog post](https://blogs.embarcadero.com/running-delphi-htmx-in-wordpress-htmx-series-part-3/). Please take a look before testing this project. 3 | 4 | Check out the demo running [here](https://embt-wp.zapater.dev/?p=28). 5 | 6 | ## Pre requisites 7 | Delphi Athens 12.X or above 8 | 9 | ## Info 10 | This project is a proof of concept for web development that uses Delphi and HTMX. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Delphi Blog Examples 2 | Delphi examples used in [Embarcadero Blogs](https://blogs.embarcadero.com) 3 | 4 | - ### Running Delphi & HTMX in WordPress – HTMX series part 3: [Blog Post](https://blogs.embarcadero.com/running-delphi-htmx-in-wordpress-htmx-series-part-3/) 5 | - ### Harnessing the power of the Web with Delphi & HTMX - Part 2: [Blog Post](https://blogs.embarcadero.com/harnessing-the-power-of-the-web-with-delphi-htmx-part-2/) 6 | - ### Harnessing the power of the Web with Delphi & HTMX - Part 1: [Blog Post](https://blogs.embarcadero.com/harnessing-the-power-of-the-web-with-delphi-htmx/) 7 | 8 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 1/Win32/Debug/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Delphi & HTMX Demo 7 | 8 | 9 | 10 |

Delphi & HTMX Rocks!

11 | 12 | 13 |
14 | 15 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 1/templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Delphi & HTMX Demo 7 | 8 | 9 | 10 |

Delphi & HTMX Rocks!

11 | 12 | 13 |
14 | 15 | 16 |
17 | 18 | 19 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 1/WebModuleUnit1.dfm: -------------------------------------------------------------------------------- 1 | object WebModule1: TWebModule1 2 | Actions = < 3 | item 4 | Default = True 5 | Name = 'DefaultHandler' 6 | PathInfo = '/' 7 | OnAction = WebModule1DefaultHandlerAction 8 | end 9 | item 10 | MethodType = mtGet 11 | Name = 'HelloWorld' 12 | PathInfo = '/helloworld' 13 | OnAction = WebModule1HelloWorldAction 14 | end 15 | item 16 | MethodType = mtGet 17 | Name = 'Edit' 18 | PathInfo = '/edit' 19 | OnAction = WebModule1EditAction 20 | end 21 | item 22 | MethodType = mtPost 23 | Name = 'Submit' 24 | PathInfo = '/submit' 25 | OnAction = WebModule1SubmitAction 26 | end> 27 | Height = 230 28 | Width = 415 29 | end 30 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 2/WebModuleUnit1.dfm: -------------------------------------------------------------------------------- 1 | object WebModule1: TWebModule1 2 | Actions = < 3 | item 4 | Default = True 5 | Name = 'DefaultHandler' 6 | PathInfo = '/' 7 | OnAction = WebModule1DefaultHandlerAction 8 | end 9 | item 10 | MethodType = mtGet 11 | Name = 'HelloWorld' 12 | PathInfo = '/helloworld' 13 | OnAction = WebModule1HelloWorldAction 14 | end 15 | item 16 | MethodType = mtGet 17 | Name = 'Edit' 18 | PathInfo = '/edit' 19 | OnAction = WebModule1EditAction 20 | end 21 | item 22 | MethodType = mtPost 23 | Name = 'Submit' 24 | PathInfo = '/submit' 25 | OnAction = WebModule1SubmitAction 26 | end> 27 | Height = 230 28 | Width = 415 29 | end 30 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 3/WebModuleUnit1.dfm: -------------------------------------------------------------------------------- 1 | object WebModule1: TWebModule1 2 | Actions = < 3 | item 4 | Default = True 5 | Name = 'DefaultHandler' 6 | PathInfo = '/' 7 | OnAction = WebModule1DefaultHandlerAction 8 | end 9 | item 10 | MethodType = mtGet 11 | Name = 'HelloWorld' 12 | PathInfo = '/helloworld' 13 | OnAction = WebModule1HelloWorldAction 14 | end 15 | item 16 | MethodType = mtGet 17 | Name = 'Edit' 18 | PathInfo = '/edit' 19 | OnAction = WebModule1EditAction 20 | end 21 | item 22 | MethodType = mtPost 23 | Name = 'Submit' 24 | PathInfo = '/submit' 25 | OnAction = WebModule1SubmitAction 26 | end> 27 | Height = 230 28 | Width = 415 29 | end 30 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 1/ServerConst1.pas: -------------------------------------------------------------------------------- 1 | unit ServerConst1; 2 | 3 | interface 4 | 5 | resourcestring 6 | sPortInUse = '- Error: Port %s already in use'; 7 | sPortSet = '- Port set to %s'; 8 | sServerRunning = '- The Server is already running'; 9 | sStartingServer = '- Starting HTTP Server on port %d'; 10 | sStoppingServer = '- Stopping Server'; 11 | sServerStopped = '- Server Stopped'; 12 | sServerNotRunning = '- The Server is not running'; 13 | sInvalidCommand = '- Error: Invalid Command'; 14 | sIndyVersion = '- Indy Version: '; 15 | sActive = '- Active: '; 16 | sPort = '- Port: '; 17 | sSessionID = '- Session ID CookieName: '; 18 | sCommands =''' 19 | Enter a Command: 20 | - "start" to start the server 21 | - "stop" to stop the server 22 | - "set port" to change the default port 23 | - "status" for Server status 24 | - "help" to show commands 25 | - "exit" to close the application 26 | '''; 27 | 28 | const 29 | cArrow = '->'; 30 | cCommandStart = 'start'; 31 | cCommandStop = 'stop'; 32 | cCommandStatus = 'status'; 33 | cCommandHelp = 'help'; 34 | cCommandSetPort = 'set port'; 35 | cCommandExit = 'exit'; 36 | 37 | implementation 38 | 39 | end. 40 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 2/ServerConst1.pas: -------------------------------------------------------------------------------- 1 | unit ServerConst1; 2 | 3 | interface 4 | 5 | resourcestring 6 | sPortInUse = '- Error: Port %s already in use'; 7 | sPortSet = '- Port set to %s'; 8 | sServerRunning = '- The Server is already running'; 9 | sStartingServer = '- Starting HTTP Server on port %d'; 10 | sStoppingServer = '- Stopping Server'; 11 | sServerStopped = '- Server Stopped'; 12 | sServerNotRunning = '- The Server is not running'; 13 | sInvalidCommand = '- Error: Invalid Command'; 14 | sIndyVersion = '- Indy Version: '; 15 | sActive = '- Active: '; 16 | sPort = '- Port: '; 17 | sSessionID = '- Session ID CookieName: '; 18 | sCommands =''' 19 | Enter a Command: 20 | - "start" to start the server 21 | - "stop" to stop the server 22 | - "set port" to change the default port 23 | - "status" for Server status 24 | - "help" to show commands 25 | - "exit" to close the application 26 | '''; 27 | 28 | const 29 | cArrow = '->'; 30 | cCommandStart = 'start'; 31 | cCommandStop = 'stop'; 32 | cCommandStatus = 'status'; 33 | cCommandHelp = 'help'; 34 | cCommandSetPort = 'set port'; 35 | cCommandExit = 'exit'; 36 | 37 | implementation 38 | 39 | end. 40 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 3/ServerConst1.pas: -------------------------------------------------------------------------------- 1 | unit ServerConst1; 2 | 3 | interface 4 | 5 | resourcestring 6 | sPortInUse = '- Error: Port %s already in use'; 7 | sPortSet = '- Port set to %s'; 8 | sServerRunning = '- The Server is already running'; 9 | sStartingServer = '- Starting HTTP Server on port %d'; 10 | sStoppingServer = '- Stopping Server'; 11 | sServerStopped = '- Server Stopped'; 12 | sServerNotRunning = '- The Server is not running'; 13 | sInvalidCommand = '- Error: Invalid Command'; 14 | sIndyVersion = '- Indy Version: '; 15 | sActive = '- Active: '; 16 | sPort = '- Port: '; 17 | sSessionID = '- Session ID CookieName: '; 18 | sCommands =''' 19 | Enter a Command: 20 | - "start" to start the server 21 | - "stop" to stop the server 22 | - "set port" to change the default port 23 | - "status" for Server status 24 | - "help" to show commands 25 | - "exit" to close the application 26 | '''; 27 | 28 | const 29 | cArrow = '->'; 30 | cCommandStart = 'start'; 31 | cCommandStop = 'stop'; 32 | cCommandStatus = 'status'; 33 | cCommandHelp = 'help'; 34 | cCommandSetPort = 'set port'; 35 | cCommandExit = 'exit'; 36 | 37 | implementation 38 | 39 | end. 40 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 2/HTMLTemplates.pas: -------------------------------------------------------------------------------- 1 | unit HTMLTemplates; 2 | 3 | interface 4 | 5 | const 6 | HTML = ''' 7 | 8 | 9 | 10 | 11 | 12 | Delphi & HTMX Demo 13 | 14 | 15 | 16 | 17 |
18 |

Delphi & HTMX Rocks!💃

19 | 20 |
21 |
22 |

Another test

23 |
24 |
25 | 26 | 27 |
28 |
29 |
30 |
31 | 32 | 33 | '''; 34 | 35 | cSubmit = ''' 36 |
37 |
38 | 39 | 40 |
41 | %s 42 |
43 | '''; 44 | 45 | cEdit = ''' 46 |
47 |
48 | 49 | 50 |
51 |
52 | '''; 53 | 54 | implementation 55 | 56 | end. 57 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 3/HTMLTemplates.pas: -------------------------------------------------------------------------------- 1 | unit HTMLTemplates; 2 | 3 | interface 4 | 5 | const 6 | HTML = ''' 7 | 8 | 9 | 10 | 11 | 12 | Delphi & HTMX Demo 13 | 14 | 15 | 16 | 17 |
18 |

Delphi & HTMX Rocks!💃

19 | 20 |
21 |
22 |

Another test

23 |
24 |
25 | 26 | 27 |
28 |
29 |
30 |
31 | 32 | 33 | '''; 34 | 35 | cSubmit = ''' 36 |
37 |
38 | 39 | 40 |
41 | %s 42 |
43 | '''; 44 | 45 | cEdit = ''' 46 |
47 |
48 | 49 | 50 |
51 |
52 | '''; 53 | 54 | implementation 55 | 56 | end. 57 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Uncomment these types if you want even more clean repository. But be careful. 2 | # It can make harm to an existing project source. Read explanations below. 3 | # 4 | # Resource files are binaries containing manifest, project icon and version info. 5 | # They can not be viewed as text or compared by diff-tools. Consider replacing them with .rc files. 6 | #*.res 7 | # 8 | # Type library file (binary). In old Delphi versions it should be stored. 9 | # Since Delphi 2009 it is produced from .ridl file and can safely be ignored. 10 | #*.tlb 11 | # 12 | # Diagram Portfolio file. Used by the diagram editor up to Delphi 7. 13 | # Uncomment this if you are not using diagrams or use newer Delphi version. 14 | #*.ddp 15 | # 16 | # Visual LiveBindings file. Added in Delphi XE2. 17 | # Uncomment this if you are not using LiveBindings Designer. 18 | #*.vlb 19 | # 20 | # Deployment Manager configuration file for your project. Added in Delphi XE2. 21 | # Uncomment this if it is not mobile development and you do not use remote debug feature. 22 | #*.deployproj 23 | # 24 | # C++ object files produced when C/C++ Output file generation is configured. 25 | # Uncomment this if you are not using external objects (zlib library for example). 26 | #*.obj 27 | # 28 | 29 | # Delphi compiler-generated binaries (safe to delete) 30 | *.exe 31 | *.dll 32 | *.bpl 33 | *.bpi 34 | *.dcp 35 | *.so 36 | *.apk 37 | *.drc 38 | *.map 39 | *.dres 40 | *.rsm 41 | *.tds 42 | *.dcu 43 | *.lib 44 | *.a 45 | *.o 46 | *.ocx 47 | 48 | # Delphi autogenerated files (duplicated info) 49 | *.cfg 50 | *.hpp 51 | *Resource.rc 52 | 53 | # Delphi local files (user-specific info) 54 | *.local 55 | *.identcache 56 | *.projdata 57 | *.tvsconfig 58 | *.dsk 59 | 60 | # Delphi history and backups 61 | __history/ 62 | __recovery/ 63 | *.~* 64 | 65 | # Castalia statistics file (since XE7 Castalia is distributed with Delphi) 66 | *.stat 67 | 68 | # Boss dependency manager vendor folder https://github.com/HashLoad/boss 69 | modules/ 70 | 71 | # 72 | .DS_Store 73 | Android64/ 74 | Android32/ 75 | Windows32/ 76 | Windows64/ 77 | iOSDevice64/ 78 | Android/ 79 | iOSSimARM64/ 80 | OSXARM64/ 81 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 2/WebModuleUnit1.pas: -------------------------------------------------------------------------------- 1 | unit WebModuleUnit1; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Classes, Web.HTTPApp; 7 | 8 | type 9 | TWebModule1 = class(TWebModule) 10 | procedure WebModule1DefaultHandlerAction(Sender: TObject; 11 | Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 12 | procedure WebModule1HelloWorldAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 13 | procedure WebModule1EditAction(Sender: TObject; Request: TWebRequest; 14 | Response: TWebResponse; var Handled: Boolean); 15 | procedure WebModule1SubmitAction(Sender: TObject; Request: TWebRequest; 16 | Response: TWebResponse; var Handled: Boolean); 17 | private 18 | { Private-Deklarationen } 19 | public 20 | { Public-Deklarationen } 21 | end; 22 | 23 | var 24 | WebModuleClass: TComponentClass = TWebModule1; 25 | 26 | implementation 27 | 28 | {%CLASSGROUP 'System.Classes.TPersistent'} 29 | 30 | uses 31 | System.IOUtils, 32 | HTMLTemplates; 33 | 34 | {$R *.dfm} 35 | 36 | procedure TWebModule1.WebModule1EditAction(Sender: TObject; 37 | Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 38 | var 39 | lResponse: string; 40 | begin 41 | lResponse := Request.ContentFields.Values['edit']; 42 | Response.Content := string.Format(HTMLTemplates.cEdit, [lResponse]); 43 | end; 44 | 45 | procedure TWebModule1.WebModule1HelloWorldAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 46 | begin 47 | Response.Content := 'Hello World!🌍'; 48 | end; 49 | 50 | procedure TWebModule1.WebModule1SubmitAction(Sender: TObject; 51 | Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 52 | var 53 | lResponse: string; 54 | begin 55 | lResponse := Request.ContentFields.Values['edit']; 56 | Response.Content := string.Format(HTMLTemplates.cSubmit, [lResponse, lResponse]); 57 | end; 58 | 59 | procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject; 60 | Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 61 | begin 62 | Response.Content := HTMLTemplates.HTML; 63 | end; 64 | 65 | end. 66 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 1/WebModuleUnit1.pas: -------------------------------------------------------------------------------- 1 | unit WebModuleUnit1; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, System.Classes, Web.HTTPApp; 7 | 8 | type 9 | TWebModule1 = class(TWebModule) 10 | procedure WebModule1DefaultHandlerAction(Sender: TObject; 11 | Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 12 | procedure WebModule1HelloWorldAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 13 | procedure WebModule1EditAction(Sender: TObject; Request: TWebRequest; 14 | Response: TWebResponse; var Handled: Boolean); 15 | procedure WebModule1SubmitAction(Sender: TObject; Request: TWebRequest; 16 | Response: TWebResponse; var Handled: Boolean); 17 | private 18 | { Private-Deklarationen } 19 | public 20 | { Public-Deklarationen } 21 | end; 22 | 23 | var 24 | WebModuleClass: TComponentClass = TWebModule1; 25 | 26 | implementation 27 | 28 | {%CLASSGROUP 'System.Classes.TPersistent'} 29 | 30 | uses 31 | System.IOUtils; 32 | 33 | {$R *.dfm} 34 | 35 | procedure TWebModule1.WebModule1EditAction(Sender: TObject; 36 | Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 37 | const 38 | cEdit = ''' 39 |
40 | 41 | 42 |
43 | '''; 44 | var 45 | lResponse: string; 46 | begin 47 | lResponse := Request.ContentFields.Values['edit']; 48 | Response.Content := string.Format(cEdit, [lResponse]); 49 | end; 50 | 51 | procedure TWebModule1.WebModule1HelloWorldAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 52 | begin 53 | Response.Content := 'Hello World!'; 54 | end; 55 | 56 | procedure TWebModule1.WebModule1SubmitAction(Sender: TObject; 57 | Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 58 | const 59 | cSubmit = ''' 60 |
61 | 62 | 63 | 64 |
65 | '''; 66 | var 67 | lResponse: string; 68 | begin 69 | lResponse := Request.ContentFields.Values['edit']; 70 | Response.Content := string.Format(cSubmit, [lResponse, lResponse]); 71 | end; 72 | 73 | procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject; 74 | Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 75 | begin 76 | var templatesPath := 'index.html'; 77 | Response.Content := TFile.ReadAllText(templatesPath); 78 | end; 79 | 80 | end. 81 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 3/WebModuleUnit1.pas: -------------------------------------------------------------------------------- 1 | unit WebModuleUnit1; 2 | 3 | interface 4 | 5 | uses 6 | System.SysUtils, 7 | System.Classes, 8 | Web.HTTPApp; 9 | 10 | type 11 | TWebModule1 = class(TWebModule) 12 | procedure WebModule1DefaultHandlerAction(Sender: TObject; 13 | Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 14 | procedure WebModule1HelloWorldAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 15 | procedure WebModule1EditAction(Sender: TObject; Request: TWebRequest; 16 | Response: TWebResponse; var Handled: Boolean); 17 | procedure WebModule1SubmitAction(Sender: TObject; Request: TWebRequest; 18 | Response: TWebResponse; var Handled: Boolean); 19 | strict private 20 | FClickCounter: integer; 21 | function RandomEmoji: string; 22 | end; 23 | 24 | var 25 | WebModuleClass: TComponentClass = TWebModule1; 26 | 27 | implementation 28 | 29 | {%CLASSGROUP 'System.Classes.TPersistent'} 30 | 31 | uses 32 | System.IOUtils, 33 | System.Character, 34 | HTMLTemplates, 35 | Math, 36 | System.NetEncoding; 37 | 38 | {$R *.dfm} 39 | 40 | procedure TWebModule1.WebModule1EditAction(Sender: TObject; 41 | Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 42 | begin 43 | var lResponse := Request.ContentFields.Values['edit']; 44 | Response.Content := string.Format(HTMLTemplates.cEdit, [lResponse]); 45 | end; 46 | 47 | procedure TWebModule1.WebModule1HelloWorldAction(Sender: TObject; Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 48 | begin 49 | inc(FClickCounter, 1); 50 | Response.Content := 'Hello World!' + RandomEmoji() + ' - Clicks: ' + FClickCounter.ToString; 51 | end; 52 | 53 | procedure TWebModule1.WebModule1SubmitAction(Sender: TObject; 54 | Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 55 | begin 56 | // sanitizing the received value avoids Cross-site scripting (XSS) - https://en.wikipedia.org/wiki/Cross-site_scripting 57 | var lResponse := TNetEncoding.HTML.Encode(Request.ContentFields.Values['edit']); 58 | Response.Content := string.Format(HTMLTemplates.cSubmit, [lResponse, lResponse]); 59 | end; 60 | 61 | procedure TWebModule1.WebModule1DefaultHandlerAction(Sender: TObject; 62 | Request: TWebRequest; Response: TWebResponse; var Handled: Boolean); 63 | begin 64 | FClickCounter := 0; 65 | Response.Content := HTMLTemplates.HTML; 66 | end; 67 | 68 | function TWebModule1.RandomEmoji: string; 69 | begin 70 | var lRandomNumber := RandomRange(128512, 128592); 71 | Result := Char.ConvertFromUtf32(lRandomNumber); 72 | end; 73 | 74 | end. 75 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 1/HTMXDemo.dpr: -------------------------------------------------------------------------------- 1 | program HTMXDemo; 2 | {$APPTYPE CONSOLE} 3 | 4 | uses 5 | System.SysUtils, 6 | System.Types, 7 | IPPeerServer, 8 | IPPeerAPI, 9 | IdHTTPWebBrokerBridge, 10 | Web.WebReq, 11 | Web.WebBroker, 12 | WebModuleUnit1 in 'WebModuleUnit1.pas' {WebModule1: TWebModule}, 13 | ServerConst1 in 'ServerConst1.pas'; 14 | 15 | {$R *.res} 16 | 17 | function BindPort(APort: Integer): Boolean; 18 | var 19 | LTestServer: IIPTestServer; 20 | begin 21 | Result := True; 22 | try 23 | LTestServer := PeerFactory.CreatePeer('', IIPTestServer) as IIPTestServer; 24 | LTestServer.TestOpenPort(APort, nil); 25 | except 26 | Result := False; 27 | end; 28 | end; 29 | 30 | function CheckPort(APort: Integer): Integer; 31 | begin 32 | if BindPort(APort) then 33 | Result := APort 34 | else 35 | Result := 0; 36 | end; 37 | 38 | procedure SetPort(const AServer: TIdHTTPWebBrokerBridge; APort: String); 39 | begin 40 | if not AServer.Active then 41 | begin 42 | APort := APort.Replace(cCommandSetPort, '').Trim; 43 | if CheckPort(APort.ToInteger) > 0 then 44 | begin 45 | AServer.DefaultPort := APort.ToInteger; 46 | Writeln(Format(sPortSet, [APort])); 47 | end 48 | else 49 | Writeln(Format(sPortInUse, [APort])); 50 | end 51 | else 52 | Writeln(sServerRunning); 53 | Write(cArrow); 54 | end; 55 | 56 | procedure StartServer(const AServer: TIdHTTPWebBrokerBridge); 57 | begin 58 | if not AServer.Active then 59 | begin 60 | if CheckPort(AServer.DefaultPort) > 0 then 61 | begin 62 | Writeln(Format(sStartingServer, [AServer.DefaultPort])); 63 | AServer.Bindings.Clear; 64 | AServer.Active := True; 65 | end 66 | else 67 | Writeln(Format(sPortInUse, [AServer.DefaultPort.ToString])); 68 | end 69 | else 70 | Writeln(sServerRunning); 71 | Write(cArrow); 72 | end; 73 | 74 | procedure StopServer(const AServer: TIdHTTPWebBrokerBridge); 75 | begin 76 | if AServer.Active then 77 | begin 78 | Writeln(sStoppingServer); 79 | AServer.Active := False; 80 | AServer.Bindings.Clear; 81 | Writeln(sServerStopped); 82 | end 83 | else 84 | Writeln(sServerNotRunning); 85 | Write(cArrow); 86 | end; 87 | 88 | procedure WriteCommands; 89 | begin 90 | Writeln(sCommands); 91 | Write(cArrow); 92 | end; 93 | 94 | procedure WriteStatus(const AServer: TIdHTTPWebBrokerBridge); 95 | begin 96 | Writeln(sIndyVersion + AServer.SessionList.Version); 97 | Writeln(sActive + AServer.Active.ToString(TUseBoolStrs.True)); 98 | Writeln(sPort + AServer.DefaultPort.ToString); 99 | Writeln(sSessionID + AServer.SessionIDCookieName); 100 | Write(cArrow); 101 | end; 102 | 103 | procedure RunServer(APort: Integer); 104 | var 105 | LServer: TIdHTTPWebBrokerBridge; 106 | LResponse: string; 107 | begin 108 | WriteCommands; 109 | LServer := TIdHTTPWebBrokerBridge.Create(nil); 110 | try 111 | LServer.DefaultPort := APort; 112 | while True do 113 | begin 114 | Readln(LResponse); 115 | LResponse := LowerCase(LResponse); 116 | if LResponse.StartsWith(cCommandSetPort) then 117 | SetPort(LServer, LResponse) 118 | else if sametext(LResponse, cCommandStart) then 119 | StartServer(LServer) 120 | else if sametext(LResponse, cCommandStatus) then 121 | WriteStatus(LServer) 122 | else if sametext(LResponse, cCommandStop) then 123 | StopServer(LServer) 124 | else if sametext(LResponse, cCommandHelp) then 125 | WriteCommands 126 | else if sametext(LResponse, cCommandExit) then 127 | if LServer.Active then 128 | begin 129 | StopServer(LServer); 130 | break 131 | end 132 | else 133 | break 134 | else 135 | begin 136 | Writeln(sInvalidCommand); 137 | Write(cArrow); 138 | end; 139 | end; 140 | finally 141 | LServer.Free; 142 | end; 143 | end; 144 | 145 | begin 146 | try 147 | if WebRequestHandler <> nil then 148 | WebRequestHandler.WebModuleClass := WebModuleClass; 149 | RunServer(8080); 150 | except 151 | on E: Exception do 152 | Writeln(E.ClassName, ': ', E.Message); 153 | end 154 | end. 155 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 2/HTMXDemoPart2.dpr: -------------------------------------------------------------------------------- 1 | program HTMXDemoPart2; 2 | {$APPTYPE CONSOLE} 3 | 4 | uses 5 | System.SysUtils, 6 | System.Types, 7 | IPPeerServer, 8 | IPPeerAPI, 9 | IdHTTPWebBrokerBridge, 10 | Web.WebReq, 11 | Web.WebBroker, 12 | WebModuleUnit1 in 'WebModuleUnit1.pas' {WebModule1: TWebModule}, 13 | ServerConst1 in 'ServerConst1.pas', 14 | HTMLTemplates in 'HTMLTemplates.pas'; 15 | 16 | {$R *.res} 17 | 18 | function BindPort(APort: Integer): Boolean; 19 | var 20 | LTestServer: IIPTestServer; 21 | begin 22 | Result := True; 23 | try 24 | LTestServer := PeerFactory.CreatePeer('', IIPTestServer) as IIPTestServer; 25 | LTestServer.TestOpenPort(APort, nil); 26 | except 27 | Result := False; 28 | end; 29 | end; 30 | 31 | function CheckPort(APort: Integer): Integer; 32 | begin 33 | if BindPort(APort) then 34 | Result := APort 35 | else 36 | Result := 0; 37 | end; 38 | 39 | procedure SetPort(const AServer: TIdHTTPWebBrokerBridge; APort: String); 40 | begin 41 | if not AServer.Active then 42 | begin 43 | APort := APort.Replace(cCommandSetPort, '').Trim; 44 | if CheckPort(APort.ToInteger) > 0 then 45 | begin 46 | AServer.DefaultPort := APort.ToInteger; 47 | Writeln(Format(sPortSet, [APort])); 48 | end 49 | else 50 | Writeln(Format(sPortInUse, [APort])); 51 | end 52 | else 53 | Writeln(sServerRunning); 54 | Write(cArrow); 55 | end; 56 | 57 | procedure StartServer(const AServer: TIdHTTPWebBrokerBridge); 58 | begin 59 | if not AServer.Active then 60 | begin 61 | if CheckPort(AServer.DefaultPort) > 0 then 62 | begin 63 | Writeln(Format(sStartingServer, [AServer.DefaultPort])); 64 | AServer.Bindings.Clear; 65 | AServer.Active := True; 66 | end 67 | else 68 | Writeln(Format(sPortInUse, [AServer.DefaultPort.ToString])); 69 | end 70 | else 71 | Writeln(sServerRunning); 72 | Write(cArrow); 73 | end; 74 | 75 | procedure StopServer(const AServer: TIdHTTPWebBrokerBridge); 76 | begin 77 | if AServer.Active then 78 | begin 79 | Writeln(sStoppingServer); 80 | AServer.Active := False; 81 | AServer.Bindings.Clear; 82 | Writeln(sServerStopped); 83 | end 84 | else 85 | Writeln(sServerNotRunning); 86 | Write(cArrow); 87 | end; 88 | 89 | procedure WriteCommands; 90 | begin 91 | Writeln(sCommands); 92 | Write(cArrow); 93 | end; 94 | 95 | procedure WriteStatus(const AServer: TIdHTTPWebBrokerBridge); 96 | begin 97 | Writeln(sIndyVersion + AServer.SessionList.Version); 98 | Writeln(sActive + AServer.Active.ToString(TUseBoolStrs.True)); 99 | Writeln(sPort + AServer.DefaultPort.ToString); 100 | Writeln(sSessionID + AServer.SessionIDCookieName); 101 | Write(cArrow); 102 | end; 103 | 104 | procedure RunServer(APort: Integer); 105 | var 106 | LServer: TIdHTTPWebBrokerBridge; 107 | LResponse: string; 108 | begin 109 | WriteCommands; 110 | LServer := TIdHTTPWebBrokerBridge.Create(nil); 111 | try 112 | LServer.DefaultPort := APort; 113 | while True do 114 | begin 115 | Readln(LResponse); 116 | LResponse := LowerCase(LResponse); 117 | if LResponse.StartsWith(cCommandSetPort) then 118 | SetPort(LServer, LResponse) 119 | else if sametext(LResponse, cCommandStart) then 120 | StartServer(LServer) 121 | else if sametext(LResponse, cCommandStatus) then 122 | WriteStatus(LServer) 123 | else if sametext(LResponse, cCommandStop) then 124 | StopServer(LServer) 125 | else if sametext(LResponse, cCommandHelp) then 126 | WriteCommands 127 | else if sametext(LResponse, cCommandExit) then 128 | if LServer.Active then 129 | begin 130 | StopServer(LServer); 131 | break 132 | end 133 | else 134 | break 135 | else 136 | begin 137 | Writeln(sInvalidCommand); 138 | Write(cArrow); 139 | end; 140 | end; 141 | finally 142 | LServer.Free; 143 | end; 144 | end; 145 | 146 | begin 147 | try 148 | if WebRequestHandler <> nil then 149 | WebRequestHandler.WebModuleClass := WebModuleClass; 150 | RunServer(8080); 151 | except 152 | on E: Exception do 153 | Writeln(E.ClassName, ': ', E.Message); 154 | end 155 | end. 156 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 3/HTMXDemoPart3.dpr: -------------------------------------------------------------------------------- 1 | program HTMXDemoPart3; 2 | {$APPTYPE CONSOLE} 3 | 4 | uses 5 | System.SysUtils, 6 | System.Types, 7 | IPPeerServer, 8 | IPPeerAPI, 9 | IdHTTPWebBrokerBridge, 10 | Web.WebReq, 11 | Web.WebBroker, 12 | WebModuleUnit1 in 'WebModuleUnit1.pas' {WebModule1: TWebModule}, 13 | ServerConst1 in 'ServerConst1.pas', 14 | HTMLTemplates in 'HTMLTemplates.pas'; 15 | 16 | {$R *.res} 17 | 18 | function BindPort(APort: Integer): Boolean; 19 | var 20 | LTestServer: IIPTestServer; 21 | begin 22 | Result := True; 23 | try 24 | LTestServer := PeerFactory.CreatePeer('', IIPTestServer) as IIPTestServer; 25 | LTestServer.TestOpenPort(APort, nil); 26 | except 27 | Result := False; 28 | end; 29 | end; 30 | 31 | function CheckPort(APort: Integer): Integer; 32 | begin 33 | if BindPort(APort) then 34 | Result := APort 35 | else 36 | Result := 0; 37 | end; 38 | 39 | procedure SetPort(const AServer: TIdHTTPWebBrokerBridge; APort: String); 40 | begin 41 | if not AServer.Active then 42 | begin 43 | APort := APort.Replace(cCommandSetPort, '').Trim; 44 | if CheckPort(APort.ToInteger) > 0 then 45 | begin 46 | AServer.DefaultPort := APort.ToInteger; 47 | Writeln(Format(sPortSet, [APort])); 48 | end 49 | else 50 | Writeln(Format(sPortInUse, [APort])); 51 | end 52 | else 53 | Writeln(sServerRunning); 54 | Write(cArrow); 55 | end; 56 | 57 | procedure StartServer(const AServer: TIdHTTPWebBrokerBridge); 58 | begin 59 | if not AServer.Active then 60 | begin 61 | if CheckPort(AServer.DefaultPort) > 0 then 62 | begin 63 | Writeln(Format(sStartingServer, [AServer.DefaultPort])); 64 | AServer.Bindings.Clear; 65 | AServer.Active := True; 66 | end 67 | else 68 | Writeln(Format(sPortInUse, [AServer.DefaultPort.ToString])); 69 | end 70 | else 71 | Writeln(sServerRunning); 72 | Write(cArrow); 73 | end; 74 | 75 | procedure StopServer(const AServer: TIdHTTPWebBrokerBridge); 76 | begin 77 | if AServer.Active then 78 | begin 79 | Writeln(sStoppingServer); 80 | AServer.Active := False; 81 | AServer.Bindings.Clear; 82 | Writeln(sServerStopped); 83 | end 84 | else 85 | Writeln(sServerNotRunning); 86 | Write(cArrow); 87 | end; 88 | 89 | procedure WriteCommands; 90 | begin 91 | Writeln(sCommands); 92 | Write(cArrow); 93 | end; 94 | 95 | procedure WriteStatus(const AServer: TIdHTTPWebBrokerBridge); 96 | begin 97 | Writeln(sIndyVersion + AServer.SessionList.Version); 98 | Writeln(sActive + AServer.Active.ToString(TUseBoolStrs.True)); 99 | Writeln(sPort + AServer.DefaultPort.ToString); 100 | Writeln(sSessionID + AServer.SessionIDCookieName); 101 | Write(cArrow); 102 | end; 103 | 104 | procedure RunServer(APort: Integer); 105 | var 106 | LServer: TIdHTTPWebBrokerBridge; 107 | LResponse: string; 108 | begin 109 | WriteCommands; 110 | LServer := TIdHTTPWebBrokerBridge.Create(nil); 111 | try 112 | LServer.DefaultPort := APort; 113 | while True do 114 | begin 115 | Readln(LResponse); 116 | LResponse := LowerCase(LResponse); 117 | if LResponse.StartsWith(cCommandSetPort) then 118 | SetPort(LServer, LResponse) 119 | else if sametext(LResponse, cCommandStart) then 120 | StartServer(LServer) 121 | else if sametext(LResponse, cCommandStatus) then 122 | WriteStatus(LServer) 123 | else if sametext(LResponse, cCommandStop) then 124 | StopServer(LServer) 125 | else if sametext(LResponse, cCommandHelp) then 126 | WriteCommands 127 | else if sametext(LResponse, cCommandExit) then 128 | if LServer.Active then 129 | begin 130 | StopServer(LServer); 131 | break 132 | end 133 | else 134 | break 135 | else 136 | begin 137 | Writeln(sInvalidCommand); 138 | Write(cArrow); 139 | end; 140 | end; 141 | finally 142 | LServer.Free; 143 | end; 144 | end; 145 | 146 | begin 147 | try 148 | if WebRequestHandler <> nil then 149 | WebRequestHandler.WebModuleClass := WebModuleClass; 150 | RunServer(8080); 151 | except 152 | on E: Exception do 153 | Writeln(E.ClassName, ': ', E.Message); 154 | end 155 | end. 156 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 2/HTMXDemoPart2.dproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | True 4 | Console 5 | Debug 6 | None 7 | HTMXDemoPart2.dpr 8 | Win32 9 | {5A035673-DCC0-4FF4-A235-297AC144A978} 10 | 20.1 11 | 129 12 | HTMXDemoPart2 13 | 14 | 15 | true 16 | 17 | 18 | true 19 | Base 20 | true 21 | 22 | 23 | true 24 | Base 25 | true 26 | 27 | 28 | true 29 | Base 30 | true 31 | 32 | 33 | true 34 | Cfg_1 35 | true 36 | true 37 | 38 | 39 | true 40 | Base 41 | true 42 | 43 | 44 | HTMXDemoPart2 45 | .\$(Platform)\$(Config) 46 | .\$(Platform)\$(Config) 47 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) 48 | $(BDS)\bin\delphi_PROJECTICNS.icns 49 | $(BDS)\bin\delphi_PROJECTICON.ico 50 | 51 | 52 | DataSnapServer;fmx;emshosting;DbxCommonDriver;bindengine;FireDACCommonODBC;emsclient;FireDACCommonDriver;IndyProtocols;dbxcds;emsedge;inetdb;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;soapmidas;dbexpress;FireDACInfxDriver;inet;DataSnapCommon;dbrtl;FireDACOracleDriver;CustomIPTransport;FireDACMSSQLDriver;LockBox3DR;DataSnapIndy10ServerTransport;DataSnapConnectors;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;IndyCore;RESTBackendComponents;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;dsnapxml;DataSnapClient;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;xmlrtl;dsnap;CloudService;FireDACDb2Driver;DataSnapNativeClient;DatasnapConnectorsFreePascal;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 53 | 54 | 55 | Debug 56 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 57 | vclwinx;DataSnapServer;fmx;emshosting;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;FireDACCommonDriver;appanalytics;IndyProtocols;vclx;Skia.Package.RTL;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;emsedge;bindcompfmx;DBXFirebirdDriver;inetdb;ibmonitor;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;soapmidas;vclactnband;fmxFireDAC;dbexpress;FireDACInfxDriver;PowerPDFDR;DBXMySQLDriver;VclSmp;inet;DataSnapCommon;vcltouch;fmxase;DBXOdbcDriver;dbrtl;FireDACDBXDriver;Skia.Package.FMX;FireDACOracleDriver;fmxdae;FireDACMSAccDriver;CustomIPTransport;FireDACMSSQLDriver;LockBox3DR;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;Skia.Package.VCL;vcldb;ibxbindings;vclFireDAC;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;DataSnapClient;DataSnapProviderClient;adortl;DBXSybaseASEDriver;DBXDb2Driver;vclimg;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;ibxpress;bindcompvcl;dsnap;CloudService;DBXSybaseASADriver;DBXOracleDriver;FireDACDb2Driver;DBXInformixDriver;vclib;fmxobj;bindcompvclsmp;DataSnapNativeClient;DatasnapConnectorsFreePascal;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 58 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 59 | 1033 60 | 61 | 62 | true 63 | true 64 | DEBUG;$(DCC_Define) 65 | true 66 | true 67 | false 68 | true 69 | true 70 | 71 | 72 | false 73 | 74 | 75 | 0 76 | RELEASE;$(DCC_Define) 77 | false 78 | 0 79 | 80 | 81 | 82 | MainSource 83 | 84 | 85 |
WebModule1
86 | dfm 87 | TWebModule 88 |
89 | 90 | 91 | 92 | Base 93 | 94 | 95 | Cfg_1 96 | Base 97 | 98 | 99 | Cfg_2 100 | Base 101 | 102 |
103 | 104 | Delphi.Personality.12 105 | Console 106 | 107 | 108 | 109 | HTMXDemoPart2.dpr 110 | 111 | 112 | 113 | False 114 | False 115 | False 116 | False 117 | True 118 | False 119 | False 120 | True 121 | False 122 | 123 | 124 | 125 | 126 | true 127 | 128 | 129 | 130 | 131 | true 132 | 133 | 134 | 135 | 136 | true 137 | 138 | 139 | 140 | 141 | HTMXDemoPart2.exe 142 | true 143 | 144 | 145 | 146 | 147 | 1 148 | 149 | 150 | 0 151 | 152 | 153 | 154 | 155 | classes 156 | 64 157 | 158 | 159 | classes 160 | 64 161 | 162 | 163 | 164 | 165 | res\xml 166 | 1 167 | 168 | 169 | res\xml 170 | 1 171 | 172 | 173 | 174 | 175 | library\lib\armeabi 176 | 1 177 | 178 | 179 | library\lib\armeabi 180 | 1 181 | 182 | 183 | 184 | 185 | library\lib\armeabi-v7a 186 | 1 187 | 188 | 189 | 190 | 191 | library\lib\mips 192 | 1 193 | 194 | 195 | library\lib\mips 196 | 1 197 | 198 | 199 | 200 | 201 | library\lib\armeabi-v7a 202 | 1 203 | 204 | 205 | library\lib\arm64-v8a 206 | 1 207 | 208 | 209 | 210 | 211 | library\lib\armeabi-v7a 212 | 1 213 | 214 | 215 | 216 | 217 | res\drawable 218 | 1 219 | 220 | 221 | res\drawable 222 | 1 223 | 224 | 225 | 226 | 227 | res\drawable-anydpi-v21 228 | 1 229 | 230 | 231 | res\drawable-anydpi-v21 232 | 1 233 | 234 | 235 | 236 | 237 | res\values 238 | 1 239 | 240 | 241 | res\values 242 | 1 243 | 244 | 245 | 246 | 247 | res\values-v21 248 | 1 249 | 250 | 251 | res\values-v21 252 | 1 253 | 254 | 255 | 256 | 257 | res\values-v31 258 | 1 259 | 260 | 261 | res\values-v31 262 | 1 263 | 264 | 265 | 266 | 267 | res\drawable-anydpi-v26 268 | 1 269 | 270 | 271 | res\drawable-anydpi-v26 272 | 1 273 | 274 | 275 | 276 | 277 | res\drawable 278 | 1 279 | 280 | 281 | res\drawable 282 | 1 283 | 284 | 285 | 286 | 287 | res\drawable 288 | 1 289 | 290 | 291 | res\drawable 292 | 1 293 | 294 | 295 | 296 | 297 | res\drawable 298 | 1 299 | 300 | 301 | res\drawable 302 | 1 303 | 304 | 305 | 306 | 307 | res\drawable-anydpi-v33 308 | 1 309 | 310 | 311 | res\drawable-anydpi-v33 312 | 1 313 | 314 | 315 | 316 | 317 | res\values 318 | 1 319 | 320 | 321 | res\values 322 | 1 323 | 324 | 325 | 326 | 327 | res\values-night-v21 328 | 1 329 | 330 | 331 | res\values-night-v21 332 | 1 333 | 334 | 335 | 336 | 337 | res\drawable 338 | 1 339 | 340 | 341 | res\drawable 342 | 1 343 | 344 | 345 | 346 | 347 | res\drawable-xxhdpi 348 | 1 349 | 350 | 351 | res\drawable-xxhdpi 352 | 1 353 | 354 | 355 | 356 | 357 | res\drawable-xxxhdpi 358 | 1 359 | 360 | 361 | res\drawable-xxxhdpi 362 | 1 363 | 364 | 365 | 366 | 367 | res\drawable-ldpi 368 | 1 369 | 370 | 371 | res\drawable-ldpi 372 | 1 373 | 374 | 375 | 376 | 377 | res\drawable-mdpi 378 | 1 379 | 380 | 381 | res\drawable-mdpi 382 | 1 383 | 384 | 385 | 386 | 387 | res\drawable-hdpi 388 | 1 389 | 390 | 391 | res\drawable-hdpi 392 | 1 393 | 394 | 395 | 396 | 397 | res\drawable-xhdpi 398 | 1 399 | 400 | 401 | res\drawable-xhdpi 402 | 1 403 | 404 | 405 | 406 | 407 | res\drawable-mdpi 408 | 1 409 | 410 | 411 | res\drawable-mdpi 412 | 1 413 | 414 | 415 | 416 | 417 | res\drawable-hdpi 418 | 1 419 | 420 | 421 | res\drawable-hdpi 422 | 1 423 | 424 | 425 | 426 | 427 | res\drawable-xhdpi 428 | 1 429 | 430 | 431 | res\drawable-xhdpi 432 | 1 433 | 434 | 435 | 436 | 437 | res\drawable-xxhdpi 438 | 1 439 | 440 | 441 | res\drawable-xxhdpi 442 | 1 443 | 444 | 445 | 446 | 447 | res\drawable-xxxhdpi 448 | 1 449 | 450 | 451 | res\drawable-xxxhdpi 452 | 1 453 | 454 | 455 | 456 | 457 | res\drawable-small 458 | 1 459 | 460 | 461 | res\drawable-small 462 | 1 463 | 464 | 465 | 466 | 467 | res\drawable-normal 468 | 1 469 | 470 | 471 | res\drawable-normal 472 | 1 473 | 474 | 475 | 476 | 477 | res\drawable-large 478 | 1 479 | 480 | 481 | res\drawable-large 482 | 1 483 | 484 | 485 | 486 | 487 | res\drawable-xlarge 488 | 1 489 | 490 | 491 | res\drawable-xlarge 492 | 1 493 | 494 | 495 | 496 | 497 | res\values 498 | 1 499 | 500 | 501 | res\values 502 | 1 503 | 504 | 505 | 506 | 507 | res\drawable-anydpi-v24 508 | 1 509 | 510 | 511 | res\drawable-anydpi-v24 512 | 1 513 | 514 | 515 | 516 | 517 | res\drawable 518 | 1 519 | 520 | 521 | res\drawable 522 | 1 523 | 524 | 525 | 526 | 527 | res\drawable-night-anydpi-v21 528 | 1 529 | 530 | 531 | res\drawable-night-anydpi-v21 532 | 1 533 | 534 | 535 | 536 | 537 | res\drawable-anydpi-v31 538 | 1 539 | 540 | 541 | res\drawable-anydpi-v31 542 | 1 543 | 544 | 545 | 546 | 547 | res\drawable-night-anydpi-v31 548 | 1 549 | 550 | 551 | res\drawable-night-anydpi-v31 552 | 1 553 | 554 | 555 | 556 | 557 | 1 558 | 559 | 560 | 1 561 | 562 | 563 | 0 564 | 565 | 566 | 567 | 568 | 1 569 | .framework 570 | 571 | 572 | 1 573 | .framework 574 | 575 | 576 | 1 577 | .framework 578 | 579 | 580 | 0 581 | 582 | 583 | 584 | 585 | 1 586 | .dylib 587 | 588 | 589 | 1 590 | .dylib 591 | 592 | 593 | 1 594 | .dylib 595 | 596 | 597 | 0 598 | .dll;.bpl 599 | 600 | 601 | 602 | 603 | 1 604 | .dylib 605 | 606 | 607 | 1 608 | .dylib 609 | 610 | 611 | 1 612 | .dylib 613 | 614 | 615 | 1 616 | .dylib 617 | 618 | 619 | 1 620 | .dylib 621 | 622 | 623 | 1 624 | .dylib 625 | 626 | 627 | 0 628 | .bpl 629 | 630 | 631 | 632 | 633 | 0 634 | 635 | 636 | 0 637 | 638 | 639 | 0 640 | 641 | 642 | 0 643 | 644 | 645 | 0 646 | 647 | 648 | 0 649 | 650 | 651 | 0 652 | 653 | 654 | 0 655 | 656 | 657 | 0 658 | 659 | 660 | 661 | 662 | 1 663 | 664 | 665 | 1 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | Contents\Resources 674 | 1 675 | 676 | 677 | Contents\Resources 678 | 1 679 | 680 | 681 | Contents\Resources 682 | 1 683 | 684 | 685 | 686 | 687 | library\lib\armeabi-v7a 688 | 1 689 | 690 | 691 | library\lib\arm64-v8a 692 | 1 693 | 694 | 695 | 1 696 | 697 | 698 | 1 699 | 700 | 701 | 1 702 | 703 | 704 | 1 705 | 706 | 707 | 1 708 | 709 | 710 | 1 711 | 712 | 713 | 1 714 | 715 | 716 | 0 717 | 718 | 719 | 720 | 721 | library\lib\armeabi-v7a 722 | 1 723 | 724 | 725 | 726 | 727 | 1 728 | 729 | 730 | 1 731 | 732 | 733 | 1 734 | 735 | 736 | 737 | 738 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 739 | 1 740 | 741 | 742 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 743 | 1 744 | 745 | 746 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 747 | 1 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 1 756 | 757 | 758 | 1 759 | 760 | 761 | 1 762 | 763 | 764 | 765 | 766 | Assets 767 | 1 768 | 769 | 770 | Assets 771 | 1 772 | 773 | 774 | 775 | 776 | Assets 777 | 1 778 | 779 | 780 | Assets 781 | 1 782 | 783 | 784 | 785 | 786 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 787 | 1 788 | 789 | 790 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 791 | 1 792 | 793 | 794 | 795 | 796 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 797 | 1 798 | 799 | 800 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 801 | 1 802 | 803 | 804 | 805 | 806 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 807 | 1 808 | 809 | 810 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 811 | 1 812 | 813 | 814 | 815 | 816 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 817 | 1 818 | 819 | 820 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 821 | 1 822 | 823 | 824 | 825 | 826 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 827 | 1 828 | 829 | 830 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 831 | 1 832 | 833 | 834 | 835 | 836 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 837 | 1 838 | 839 | 840 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 841 | 1 842 | 843 | 844 | 845 | 846 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 847 | 1 848 | 849 | 850 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 851 | 1 852 | 853 | 854 | 855 | 856 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 857 | 1 858 | 859 | 860 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 861 | 1 862 | 863 | 864 | 865 | 866 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 867 | 1 868 | 869 | 870 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 871 | 1 872 | 873 | 874 | 875 | 876 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 877 | 1 878 | 879 | 880 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 881 | 1 882 | 883 | 884 | 885 | 886 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 887 | 1 888 | 889 | 890 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 891 | 1 892 | 893 | 894 | 895 | 896 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 897 | 1 898 | 899 | 900 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 901 | 1 902 | 903 | 904 | 905 | 906 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 907 | 1 908 | 909 | 910 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 911 | 1 912 | 913 | 914 | 915 | 916 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 917 | 1 918 | 919 | 920 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 921 | 1 922 | 923 | 924 | 925 | 926 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 927 | 1 928 | 929 | 930 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 931 | 1 932 | 933 | 934 | 935 | 936 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 937 | 1 938 | 939 | 940 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 941 | 1 942 | 943 | 944 | 945 | 946 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 947 | 1 948 | 949 | 950 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 951 | 1 952 | 953 | 954 | 955 | 956 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 957 | 1 958 | 959 | 960 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 961 | 1 962 | 963 | 964 | 965 | 966 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 967 | 1 968 | 969 | 970 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 971 | 1 972 | 973 | 974 | 975 | 976 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 977 | 1 978 | 979 | 980 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 981 | 1 982 | 983 | 984 | 985 | 986 | 987 | 988 | 989 | 990 | 991 | 992 | 993 | 994 | 995 | 996 | 997 | 998 | 12 999 | 1000 | 1001 | 1002 | 1003 |
1004 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 3/HTMXDemoPart3.dproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | True 4 | Console 5 | Release 6 | None 7 | HTMXDemoPart3.dpr 8 | Win32 9 | {5A035673-DCC0-4FF4-A235-297AC144A978} 10 | 20.1 11 | 131 12 | HTMXDemoPart3 13 | 14 | 15 | true 16 | 17 | 18 | true 19 | Base 20 | true 21 | 22 | 23 | true 24 | Base 25 | true 26 | 27 | 28 | true 29 | Base 30 | true 31 | 32 | 33 | true 34 | Base 35 | true 36 | 37 | 38 | true 39 | Cfg_1 40 | true 41 | true 42 | 43 | 44 | true 45 | Base 46 | true 47 | 48 | 49 | HTMXDemoPart3 50 | .\$(Platform)\$(Config) 51 | .\$(Platform)\$(Config) 52 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) 53 | $(BDS)\bin\delphi_PROJECTICNS.icns 54 | $(BDS)\bin\delphi_PROJECTICON.ico 55 | 56 | 57 | DataSnapServer;fmx;emshosting;DbxCommonDriver;bindengine;FireDACCommonODBC;emsclient;FireDACCommonDriver;IndyProtocols;dbxcds;emsedge;inetdb;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;soapmidas;dbexpress;FireDACInfxDriver;inet;DataSnapCommon;dbrtl;FireDACOracleDriver;CustomIPTransport;FireDACMSSQLDriver;LockBox3DR;DataSnapIndy10ServerTransport;DataSnapConnectors;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;IndyCore;RESTBackendComponents;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;dsnapxml;DataSnapClient;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;xmlrtl;dsnap;CloudService;FireDACDb2Driver;DataSnapNativeClient;DatasnapConnectorsFreePascal;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 58 | 59 | 60 | Debug 61 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 62 | vclwinx;DataSnapServer;fmx;emshosting;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;FireDACCommonDriver;appanalytics;IndyProtocols;vclx;Skia.Package.RTL;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;emsedge;bindcompfmx;DBXFirebirdDriver;inetdb;ibmonitor;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;soapmidas;vclactnband;fmxFireDAC;dbexpress;FireDACInfxDriver;PowerPDFDR;DBXMySQLDriver;VclSmp;inet;DataSnapCommon;vcltouch;fmxase;DBXOdbcDriver;dbrtl;FireDACDBXDriver;Skia.Package.FMX;FireDACOracleDriver;fmxdae;FireDACMSAccDriver;CustomIPTransport;FireDACMSSQLDriver;LockBox3DR;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;Skia.Package.VCL;vcldb;ibxbindings;vclFireDAC;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;DataSnapClient;DataSnapProviderClient;adortl;DBXSybaseASEDriver;DBXDb2Driver;vclimg;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;ibxpress;bindcompvcl;dsnap;CloudService;DBXSybaseASADriver;DBXOracleDriver;FireDACDb2Driver;DBXInformixDriver;vclib;fmxobj;bindcompvclsmp;DataSnapNativeClient;DatasnapConnectorsFreePascal;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 63 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 64 | 1033 65 | 66 | 67 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) 68 | Debug 69 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 70 | 1033 71 | 72 | 73 | true 74 | true 75 | DEBUG;$(DCC_Define) 76 | true 77 | true 78 | false 79 | true 80 | true 81 | 82 | 83 | false 84 | 85 | 86 | 0 87 | RELEASE;$(DCC_Define) 88 | false 89 | 0 90 | 91 | 92 | 93 | MainSource 94 | 95 | 96 |
WebModule1
97 | dfm 98 | TWebModule 99 |
100 | 101 | 102 | 103 | Base 104 | 105 | 106 | Cfg_1 107 | Base 108 | 109 | 110 | Cfg_2 111 | Base 112 | 113 |
114 | 115 | Delphi.Personality.12 116 | Console 117 | 118 | 119 | 120 | HTMXDemoPart3.dpr 121 | 122 | 123 | 124 | False 125 | False 126 | False 127 | False 128 | True 129 | False 130 | False 131 | True 132 | True 133 | 134 | 135 | 136 | 137 | true 138 | 139 | 140 | 141 | 142 | true 143 | 144 | 145 | 146 | 147 | true 148 | 149 | 150 | 151 | 152 | HTMXDemoPart3.exe 153 | true 154 | 155 | 156 | 157 | 158 | HTMXDemoPart3.exe 159 | true 160 | 161 | 162 | 163 | 164 | 1 165 | 166 | 167 | 0 168 | 169 | 170 | 171 | 172 | classes 173 | 64 174 | 175 | 176 | classes 177 | 64 178 | 179 | 180 | 181 | 182 | res\xml 183 | 1 184 | 185 | 186 | res\xml 187 | 1 188 | 189 | 190 | 191 | 192 | library\lib\armeabi 193 | 1 194 | 195 | 196 | library\lib\armeabi 197 | 1 198 | 199 | 200 | 201 | 202 | library\lib\armeabi-v7a 203 | 1 204 | 205 | 206 | 207 | 208 | library\lib\mips 209 | 1 210 | 211 | 212 | library\lib\mips 213 | 1 214 | 215 | 216 | 217 | 218 | library\lib\armeabi-v7a 219 | 1 220 | 221 | 222 | library\lib\arm64-v8a 223 | 1 224 | 225 | 226 | 227 | 228 | library\lib\armeabi-v7a 229 | 1 230 | 231 | 232 | 233 | 234 | res\drawable 235 | 1 236 | 237 | 238 | res\drawable 239 | 1 240 | 241 | 242 | 243 | 244 | res\drawable-anydpi-v21 245 | 1 246 | 247 | 248 | res\drawable-anydpi-v21 249 | 1 250 | 251 | 252 | 253 | 254 | res\values 255 | 1 256 | 257 | 258 | res\values 259 | 1 260 | 261 | 262 | 263 | 264 | res\values-v21 265 | 1 266 | 267 | 268 | res\values-v21 269 | 1 270 | 271 | 272 | 273 | 274 | res\values-v31 275 | 1 276 | 277 | 278 | res\values-v31 279 | 1 280 | 281 | 282 | 283 | 284 | res\drawable-anydpi-v26 285 | 1 286 | 287 | 288 | res\drawable-anydpi-v26 289 | 1 290 | 291 | 292 | 293 | 294 | res\drawable 295 | 1 296 | 297 | 298 | res\drawable 299 | 1 300 | 301 | 302 | 303 | 304 | res\drawable 305 | 1 306 | 307 | 308 | res\drawable 309 | 1 310 | 311 | 312 | 313 | 314 | res\drawable 315 | 1 316 | 317 | 318 | res\drawable 319 | 1 320 | 321 | 322 | 323 | 324 | res\drawable-anydpi-v33 325 | 1 326 | 327 | 328 | res\drawable-anydpi-v33 329 | 1 330 | 331 | 332 | 333 | 334 | res\values 335 | 1 336 | 337 | 338 | res\values 339 | 1 340 | 341 | 342 | 343 | 344 | res\values-night-v21 345 | 1 346 | 347 | 348 | res\values-night-v21 349 | 1 350 | 351 | 352 | 353 | 354 | res\drawable 355 | 1 356 | 357 | 358 | res\drawable 359 | 1 360 | 361 | 362 | 363 | 364 | res\drawable-xxhdpi 365 | 1 366 | 367 | 368 | res\drawable-xxhdpi 369 | 1 370 | 371 | 372 | 373 | 374 | res\drawable-xxxhdpi 375 | 1 376 | 377 | 378 | res\drawable-xxxhdpi 379 | 1 380 | 381 | 382 | 383 | 384 | res\drawable-ldpi 385 | 1 386 | 387 | 388 | res\drawable-ldpi 389 | 1 390 | 391 | 392 | 393 | 394 | res\drawable-mdpi 395 | 1 396 | 397 | 398 | res\drawable-mdpi 399 | 1 400 | 401 | 402 | 403 | 404 | res\drawable-hdpi 405 | 1 406 | 407 | 408 | res\drawable-hdpi 409 | 1 410 | 411 | 412 | 413 | 414 | res\drawable-xhdpi 415 | 1 416 | 417 | 418 | res\drawable-xhdpi 419 | 1 420 | 421 | 422 | 423 | 424 | res\drawable-mdpi 425 | 1 426 | 427 | 428 | res\drawable-mdpi 429 | 1 430 | 431 | 432 | 433 | 434 | res\drawable-hdpi 435 | 1 436 | 437 | 438 | res\drawable-hdpi 439 | 1 440 | 441 | 442 | 443 | 444 | res\drawable-xhdpi 445 | 1 446 | 447 | 448 | res\drawable-xhdpi 449 | 1 450 | 451 | 452 | 453 | 454 | res\drawable-xxhdpi 455 | 1 456 | 457 | 458 | res\drawable-xxhdpi 459 | 1 460 | 461 | 462 | 463 | 464 | res\drawable-xxxhdpi 465 | 1 466 | 467 | 468 | res\drawable-xxxhdpi 469 | 1 470 | 471 | 472 | 473 | 474 | res\drawable-small 475 | 1 476 | 477 | 478 | res\drawable-small 479 | 1 480 | 481 | 482 | 483 | 484 | res\drawable-normal 485 | 1 486 | 487 | 488 | res\drawable-normal 489 | 1 490 | 491 | 492 | 493 | 494 | res\drawable-large 495 | 1 496 | 497 | 498 | res\drawable-large 499 | 1 500 | 501 | 502 | 503 | 504 | res\drawable-xlarge 505 | 1 506 | 507 | 508 | res\drawable-xlarge 509 | 1 510 | 511 | 512 | 513 | 514 | res\values 515 | 1 516 | 517 | 518 | res\values 519 | 1 520 | 521 | 522 | 523 | 524 | res\drawable-anydpi-v24 525 | 1 526 | 527 | 528 | res\drawable-anydpi-v24 529 | 1 530 | 531 | 532 | 533 | 534 | res\drawable 535 | 1 536 | 537 | 538 | res\drawable 539 | 1 540 | 541 | 542 | 543 | 544 | res\drawable-night-anydpi-v21 545 | 1 546 | 547 | 548 | res\drawable-night-anydpi-v21 549 | 1 550 | 551 | 552 | 553 | 554 | res\drawable-anydpi-v31 555 | 1 556 | 557 | 558 | res\drawable-anydpi-v31 559 | 1 560 | 561 | 562 | 563 | 564 | res\drawable-night-anydpi-v31 565 | 1 566 | 567 | 568 | res\drawable-night-anydpi-v31 569 | 1 570 | 571 | 572 | 573 | 574 | 1 575 | 576 | 577 | 1 578 | 579 | 580 | 0 581 | 582 | 583 | 584 | 585 | 1 586 | .framework 587 | 588 | 589 | 1 590 | .framework 591 | 592 | 593 | 1 594 | .framework 595 | 596 | 597 | 0 598 | 599 | 600 | 601 | 602 | 1 603 | .dylib 604 | 605 | 606 | 1 607 | .dylib 608 | 609 | 610 | 1 611 | .dylib 612 | 613 | 614 | 0 615 | .dll;.bpl 616 | 617 | 618 | 619 | 620 | 1 621 | .dylib 622 | 623 | 624 | 1 625 | .dylib 626 | 627 | 628 | 1 629 | .dylib 630 | 631 | 632 | 1 633 | .dylib 634 | 635 | 636 | 1 637 | .dylib 638 | 639 | 640 | 1 641 | .dylib 642 | 643 | 644 | 0 645 | .bpl 646 | 647 | 648 | 649 | 650 | 0 651 | 652 | 653 | 0 654 | 655 | 656 | 0 657 | 658 | 659 | 0 660 | 661 | 662 | 0 663 | 664 | 665 | 0 666 | 667 | 668 | 0 669 | 670 | 671 | 0 672 | 673 | 674 | 0 675 | 676 | 677 | 678 | 679 | 1 680 | 681 | 682 | 1 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | Contents\Resources 691 | 1 692 | 693 | 694 | Contents\Resources 695 | 1 696 | 697 | 698 | Contents\Resources 699 | 1 700 | 701 | 702 | 703 | 704 | library\lib\armeabi-v7a 705 | 1 706 | 707 | 708 | library\lib\arm64-v8a 709 | 1 710 | 711 | 712 | 1 713 | 714 | 715 | 1 716 | 717 | 718 | 1 719 | 720 | 721 | 1 722 | 723 | 724 | 1 725 | 726 | 727 | 1 728 | 729 | 730 | 1 731 | 732 | 733 | 0 734 | 735 | 736 | 737 | 738 | library\lib\armeabi-v7a 739 | 1 740 | 741 | 742 | 743 | 744 | 1 745 | 746 | 747 | 1 748 | 749 | 750 | 1 751 | 752 | 753 | 754 | 755 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 756 | 1 757 | 758 | 759 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 760 | 1 761 | 762 | 763 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 764 | 1 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 1 773 | 774 | 775 | 1 776 | 777 | 778 | 1 779 | 780 | 781 | 782 | 783 | Assets 784 | 1 785 | 786 | 787 | Assets 788 | 1 789 | 790 | 791 | 792 | 793 | Assets 794 | 1 795 | 796 | 797 | Assets 798 | 1 799 | 800 | 801 | 802 | 803 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 804 | 1 805 | 806 | 807 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 808 | 1 809 | 810 | 811 | 812 | 813 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 814 | 1 815 | 816 | 817 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 818 | 1 819 | 820 | 821 | 822 | 823 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 824 | 1 825 | 826 | 827 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 828 | 1 829 | 830 | 831 | 832 | 833 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 834 | 1 835 | 836 | 837 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 838 | 1 839 | 840 | 841 | 842 | 843 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 844 | 1 845 | 846 | 847 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 848 | 1 849 | 850 | 851 | 852 | 853 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 854 | 1 855 | 856 | 857 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 858 | 1 859 | 860 | 861 | 862 | 863 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 864 | 1 865 | 866 | 867 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 868 | 1 869 | 870 | 871 | 872 | 873 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 874 | 1 875 | 876 | 877 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 878 | 1 879 | 880 | 881 | 882 | 883 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 884 | 1 885 | 886 | 887 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 888 | 1 889 | 890 | 891 | 892 | 893 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 894 | 1 895 | 896 | 897 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 898 | 1 899 | 900 | 901 | 902 | 903 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 904 | 1 905 | 906 | 907 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 908 | 1 909 | 910 | 911 | 912 | 913 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 914 | 1 915 | 916 | 917 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 918 | 1 919 | 920 | 921 | 922 | 923 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 924 | 1 925 | 926 | 927 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 928 | 1 929 | 930 | 931 | 932 | 933 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 934 | 1 935 | 936 | 937 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 938 | 1 939 | 940 | 941 | 942 | 943 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 944 | 1 945 | 946 | 947 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 948 | 1 949 | 950 | 951 | 952 | 953 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 954 | 1 955 | 956 | 957 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 958 | 1 959 | 960 | 961 | 962 | 963 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 964 | 1 965 | 966 | 967 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 968 | 1 969 | 970 | 971 | 972 | 973 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 974 | 1 975 | 976 | 977 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 978 | 1 979 | 980 | 981 | 982 | 983 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 984 | 1 985 | 986 | 987 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 988 | 1 989 | 990 | 991 | 992 | 993 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 994 | 1 995 | 996 | 997 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 998 | 1 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 12 1016 | 1017 | 1018 | 1019 | 1020 |
1021 | -------------------------------------------------------------------------------- /Delphi and HTMX - part 1/HTMXDemo.dproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | True 4 | Console 5 | Debug 6 | None 7 | HTMXDemo.dpr 8 | Win32 9 | {5A035673-DCC0-4FF4-A235-297AC144A978} 10 | HTMXDemo 11 | 20.1 12 | 129 13 | 14 | 15 | true 16 | 17 | 18 | true 19 | Base 20 | true 21 | 22 | 23 | true 24 | Base 25 | true 26 | 27 | 28 | true 29 | Base 30 | true 31 | 32 | 33 | true 34 | Cfg_1 35 | true 36 | true 37 | 38 | 39 | true 40 | Base 41 | true 42 | 43 | 44 | HTMXDemo 45 | .\$(Platform)\$(Config) 46 | .\$(Platform)\$(Config) 47 | System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) 48 | $(BDS)\bin\delphi_PROJECTICNS.icns 49 | $(BDS)\bin\delphi_PROJECTICON.ico 50 | 52 | 53 | 54 | DataSnapServer;fmx;emshosting;DbxCommonDriver;bindengine;FireDACCommonODBC;emsclient;FireDACCommonDriver;IndyProtocols;dbxcds;emsedge;inetdb;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;soapmidas;dbexpress;FireDACInfxDriver;inet;DataSnapCommon;dbrtl;FireDACOracleDriver;CustomIPTransport;FireDACMSSQLDriver;LockBox3DR;DataSnapIndy10ServerTransport;DataSnapConnectors;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;IndyCore;RESTBackendComponents;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;dsnapxml;DataSnapClient;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;xmlrtl;dsnap;CloudService;FireDACDb2Driver;DataSnapNativeClient;DatasnapConnectorsFreePascal;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 55 | 56 | 57 | Debug 58 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) 59 | vclwinx;DataSnapServer;fmx;emshosting;vclie;DbxCommonDriver;bindengine;IndyIPCommon;VCLRESTComponents;DBXMSSQLDriver;FireDACCommonODBC;emsclient;FireDACCommonDriver;appanalytics;IndyProtocols;vclx;Skia.Package.RTL;IndyIPClient;dbxcds;vcledge;bindcompvclwinx;emsedge;bindcompfmx;DBXFirebirdDriver;inetdb;ibmonitor;FireDACSqliteDriver;DbxClientDriver;FireDACASADriver;soapmidas;vclactnband;fmxFireDAC;dbexpress;FireDACInfxDriver;PowerPDFDR;DBXMySQLDriver;VclSmp;inet;DataSnapCommon;vcltouch;fmxase;DBXOdbcDriver;dbrtl;FireDACDBXDriver;Skia.Package.FMX;FireDACOracleDriver;fmxdae;FireDACMSAccDriver;CustomIPTransport;FireDACMSSQLDriver;LockBox3DR;DataSnapIndy10ServerTransport;DataSnapConnectors;vcldsnap;DBXInterBaseDriver;FireDACMongoDBDriver;IndySystem;FireDACTDataDriver;Skia.Package.VCL;vcldb;ibxbindings;vclFireDAC;bindcomp;FireDACCommon;DataSnapServerMidas;FireDACODBCDriver;emsserverresource;IndyCore;RESTBackendComponents;bindcompdbx;rtl;FireDACMySQLDriver;FireDACADSDriver;RESTComponents;DBXSqliteDriver;vcl;IndyIPServer;dsnapxml;dsnapcon;DataSnapClient;DataSnapProviderClient;adortl;DBXSybaseASEDriver;DBXDb2Driver;vclimg;DataSnapFireDAC;emsclientfiredac;FireDACPgDriver;FireDAC;FireDACDSDriver;inetdbxpress;xmlrtl;tethering;ibxpress;bindcompvcl;dsnap;CloudService;DBXSybaseASADriver;DBXOracleDriver;FireDACDb2Driver;DBXInformixDriver;vclib;fmxobj;bindcompvclsmp;DataSnapNativeClient;DatasnapConnectorsFreePascal;soaprtl;soapserver;FireDACIBDriver;$(DCC_UsePackage) 60 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= 61 | 1033 62 | 63 | 64 | true 65 | true 66 | DEBUG;$(DCC_Define) 67 | true 68 | true 69 | false 70 | true 71 | true 72 | 73 | 74 | false 75 | 1033 76 | (None) 77 | none 78 | 79 | 80 | 0 81 | RELEASE;$(DCC_Define) 82 | false 83 | 0 84 | 85 | 86 | 87 | MainSource 88 | 89 | 90 |
WebModule1
91 | dfm 92 | TWebModule 93 |
94 | 95 | 96 | 97 | Base 98 | 99 | 100 | Cfg_1 101 | Base 102 | 103 | 104 | Cfg_2 105 | Base 106 | 107 |
108 | 109 | Delphi.Personality.12 110 | Console 111 | 112 | 113 | 114 | HTMXDemo.dpr 115 | 116 | 117 | Embarcadero C++Builder Office 2000 Servers Package 118 | Embarcadero C++Builder Office XP Servers Package 119 | Microsoft Office 2000 Sample Automation Server Wrapper Components 120 | Microsoft Office XP Sample Automation Server Wrapper Components 121 | 122 | 123 | 124 | False 125 | False 126 | False 127 | False 128 | True 129 | False 130 | False 131 | True 132 | False 133 | 134 | 135 | 136 | 137 | true 138 | 139 | 140 | 141 | 142 | true 143 | 144 | 145 | 146 | 147 | true 148 | 149 | 150 | 151 | 152 | HTMXDemo.exe 153 | true 154 | 155 | 156 | 157 | 158 | .\ 159 | true 160 | 161 | 162 | 163 | 164 | 1 165 | 166 | 167 | 0 168 | 169 | 170 | 171 | 172 | classes 173 | 64 174 | 175 | 176 | classes 177 | 64 178 | 179 | 180 | 181 | 182 | res\xml 183 | 1 184 | 185 | 186 | res\xml 187 | 1 188 | 189 | 190 | 191 | 192 | library\lib\armeabi 193 | 1 194 | 195 | 196 | library\lib\armeabi 197 | 1 198 | 199 | 200 | 201 | 202 | library\lib\armeabi-v7a 203 | 1 204 | 205 | 206 | 207 | 208 | library\lib\mips 209 | 1 210 | 211 | 212 | library\lib\mips 213 | 1 214 | 215 | 216 | 217 | 218 | library\lib\armeabi-v7a 219 | 1 220 | 221 | 222 | library\lib\arm64-v8a 223 | 1 224 | 225 | 226 | 227 | 228 | library\lib\armeabi-v7a 229 | 1 230 | 231 | 232 | 233 | 234 | res\drawable 235 | 1 236 | 237 | 238 | res\drawable 239 | 1 240 | 241 | 242 | 243 | 244 | res\drawable-anydpi-v21 245 | 1 246 | 247 | 248 | res\drawable-anydpi-v21 249 | 1 250 | 251 | 252 | 253 | 254 | res\values 255 | 1 256 | 257 | 258 | res\values 259 | 1 260 | 261 | 262 | 263 | 264 | res\values-v21 265 | 1 266 | 267 | 268 | res\values-v21 269 | 1 270 | 271 | 272 | 273 | 274 | res\values-v31 275 | 1 276 | 277 | 278 | res\values-v31 279 | 1 280 | 281 | 282 | 283 | 284 | res\drawable-anydpi-v26 285 | 1 286 | 287 | 288 | res\drawable-anydpi-v26 289 | 1 290 | 291 | 292 | 293 | 294 | res\drawable 295 | 1 296 | 297 | 298 | res\drawable 299 | 1 300 | 301 | 302 | 303 | 304 | res\drawable 305 | 1 306 | 307 | 308 | res\drawable 309 | 1 310 | 311 | 312 | 313 | 314 | res\drawable 315 | 1 316 | 317 | 318 | res\drawable 319 | 1 320 | 321 | 322 | 323 | 324 | res\drawable-anydpi-v33 325 | 1 326 | 327 | 328 | res\drawable-anydpi-v33 329 | 1 330 | 331 | 332 | 333 | 334 | res\values 335 | 1 336 | 337 | 338 | res\values 339 | 1 340 | 341 | 342 | 343 | 344 | res\values-night-v21 345 | 1 346 | 347 | 348 | res\values-night-v21 349 | 1 350 | 351 | 352 | 353 | 354 | res\drawable 355 | 1 356 | 357 | 358 | res\drawable 359 | 1 360 | 361 | 362 | 363 | 364 | res\drawable-xxhdpi 365 | 1 366 | 367 | 368 | res\drawable-xxhdpi 369 | 1 370 | 371 | 372 | 373 | 374 | res\drawable-xxxhdpi 375 | 1 376 | 377 | 378 | res\drawable-xxxhdpi 379 | 1 380 | 381 | 382 | 383 | 384 | res\drawable-ldpi 385 | 1 386 | 387 | 388 | res\drawable-ldpi 389 | 1 390 | 391 | 392 | 393 | 394 | res\drawable-mdpi 395 | 1 396 | 397 | 398 | res\drawable-mdpi 399 | 1 400 | 401 | 402 | 403 | 404 | res\drawable-hdpi 405 | 1 406 | 407 | 408 | res\drawable-hdpi 409 | 1 410 | 411 | 412 | 413 | 414 | res\drawable-xhdpi 415 | 1 416 | 417 | 418 | res\drawable-xhdpi 419 | 1 420 | 421 | 422 | 423 | 424 | res\drawable-mdpi 425 | 1 426 | 427 | 428 | res\drawable-mdpi 429 | 1 430 | 431 | 432 | 433 | 434 | res\drawable-hdpi 435 | 1 436 | 437 | 438 | res\drawable-hdpi 439 | 1 440 | 441 | 442 | 443 | 444 | res\drawable-xhdpi 445 | 1 446 | 447 | 448 | res\drawable-xhdpi 449 | 1 450 | 451 | 452 | 453 | 454 | res\drawable-xxhdpi 455 | 1 456 | 457 | 458 | res\drawable-xxhdpi 459 | 1 460 | 461 | 462 | 463 | 464 | res\drawable-xxxhdpi 465 | 1 466 | 467 | 468 | res\drawable-xxxhdpi 469 | 1 470 | 471 | 472 | 473 | 474 | res\drawable-small 475 | 1 476 | 477 | 478 | res\drawable-small 479 | 1 480 | 481 | 482 | 483 | 484 | res\drawable-normal 485 | 1 486 | 487 | 488 | res\drawable-normal 489 | 1 490 | 491 | 492 | 493 | 494 | res\drawable-large 495 | 1 496 | 497 | 498 | res\drawable-large 499 | 1 500 | 501 | 502 | 503 | 504 | res\drawable-xlarge 505 | 1 506 | 507 | 508 | res\drawable-xlarge 509 | 1 510 | 511 | 512 | 513 | 514 | res\values 515 | 1 516 | 517 | 518 | res\values 519 | 1 520 | 521 | 522 | 523 | 524 | res\drawable-anydpi-v24 525 | 1 526 | 527 | 528 | res\drawable-anydpi-v24 529 | 1 530 | 531 | 532 | 533 | 534 | res\drawable 535 | 1 536 | 537 | 538 | res\drawable 539 | 1 540 | 541 | 542 | 543 | 544 | res\drawable-night-anydpi-v21 545 | 1 546 | 547 | 548 | res\drawable-night-anydpi-v21 549 | 1 550 | 551 | 552 | 553 | 554 | res\drawable-anydpi-v31 555 | 1 556 | 557 | 558 | res\drawable-anydpi-v31 559 | 1 560 | 561 | 562 | 563 | 564 | res\drawable-night-anydpi-v31 565 | 1 566 | 567 | 568 | res\drawable-night-anydpi-v31 569 | 1 570 | 571 | 572 | 573 | 574 | 1 575 | 576 | 577 | 1 578 | 579 | 580 | 0 581 | 582 | 583 | 584 | 585 | 1 586 | .framework 587 | 588 | 589 | 1 590 | .framework 591 | 592 | 593 | 1 594 | .framework 595 | 596 | 597 | 0 598 | 599 | 600 | 601 | 602 | 1 603 | .dylib 604 | 605 | 606 | 1 607 | .dylib 608 | 609 | 610 | 1 611 | .dylib 612 | 613 | 614 | 0 615 | .dll;.bpl 616 | 617 | 618 | 619 | 620 | 1 621 | .dylib 622 | 623 | 624 | 1 625 | .dylib 626 | 627 | 628 | 1 629 | .dylib 630 | 631 | 632 | 1 633 | .dylib 634 | 635 | 636 | 1 637 | .dylib 638 | 639 | 640 | 1 641 | .dylib 642 | 643 | 644 | 0 645 | .bpl 646 | 647 | 648 | 649 | 650 | 0 651 | 652 | 653 | 0 654 | 655 | 656 | 0 657 | 658 | 659 | 0 660 | 661 | 662 | 0 663 | 664 | 665 | 0 666 | 667 | 668 | 0 669 | 670 | 671 | 0 672 | 673 | 674 | 0 675 | 676 | 677 | 678 | 679 | 1 680 | 681 | 682 | 1 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | Contents\Resources 691 | 1 692 | 693 | 694 | Contents\Resources 695 | 1 696 | 697 | 698 | Contents\Resources 699 | 1 700 | 701 | 702 | 703 | 704 | library\lib\armeabi-v7a 705 | 1 706 | 707 | 708 | library\lib\arm64-v8a 709 | 1 710 | 711 | 712 | 1 713 | 714 | 715 | 1 716 | 717 | 718 | 1 719 | 720 | 721 | 1 722 | 723 | 724 | 1 725 | 726 | 727 | 1 728 | 729 | 730 | 1 731 | 732 | 733 | 0 734 | 735 | 736 | 737 | 738 | library\lib\armeabi-v7a 739 | 1 740 | 741 | 742 | 743 | 744 | 1 745 | 746 | 747 | 1 748 | 749 | 750 | 1 751 | 752 | 753 | 754 | 755 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 756 | 1 757 | 758 | 759 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 760 | 1 761 | 762 | 763 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF 764 | 1 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 1 773 | 774 | 775 | 1 776 | 777 | 778 | 1 779 | 780 | 781 | 782 | 783 | Assets 784 | 1 785 | 786 | 787 | Assets 788 | 1 789 | 790 | 791 | 792 | 793 | Assets 794 | 1 795 | 796 | 797 | Assets 798 | 1 799 | 800 | 801 | 802 | 803 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 804 | 1 805 | 806 | 807 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 808 | 1 809 | 810 | 811 | 812 | 813 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 814 | 1 815 | 816 | 817 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 818 | 1 819 | 820 | 821 | 822 | 823 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 824 | 1 825 | 826 | 827 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 828 | 1 829 | 830 | 831 | 832 | 833 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 834 | 1 835 | 836 | 837 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 838 | 1 839 | 840 | 841 | 842 | 843 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 844 | 1 845 | 846 | 847 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 848 | 1 849 | 850 | 851 | 852 | 853 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 854 | 1 855 | 856 | 857 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 858 | 1 859 | 860 | 861 | 862 | 863 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 864 | 1 865 | 866 | 867 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 868 | 1 869 | 870 | 871 | 872 | 873 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 874 | 1 875 | 876 | 877 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 878 | 1 879 | 880 | 881 | 882 | 883 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 884 | 1 885 | 886 | 887 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 888 | 1 889 | 890 | 891 | 892 | 893 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 894 | 1 895 | 896 | 897 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 898 | 1 899 | 900 | 901 | 902 | 903 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 904 | 1 905 | 906 | 907 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 908 | 1 909 | 910 | 911 | 912 | 913 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 914 | 1 915 | 916 | 917 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 918 | 1 919 | 920 | 921 | 922 | 923 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 924 | 1 925 | 926 | 927 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 928 | 1 929 | 930 | 931 | 932 | 933 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 934 | 1 935 | 936 | 937 | ..\$(PROJECTNAME).launchscreen\Assets\LaunchScreenImage.imageset 938 | 1 939 | 940 | 941 | 942 | 943 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 944 | 1 945 | 946 | 947 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 948 | 1 949 | 950 | 951 | 952 | 953 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 954 | 1 955 | 956 | 957 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 958 | 1 959 | 960 | 961 | 962 | 963 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 964 | 1 965 | 966 | 967 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 968 | 1 969 | 970 | 971 | 972 | 973 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 974 | 1 975 | 976 | 977 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 978 | 1 979 | 980 | 981 | 982 | 983 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 984 | 1 985 | 986 | 987 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 988 | 1 989 | 990 | 991 | 992 | 993 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 994 | 1 995 | 996 | 997 | ..\$(PROJECTNAME).launchscreen\Assets\AppIcon.appiconset 998 | 1 999 | 1000 | 1001 | 1002 | 1003 | 1004 | 1005 | 1006 | 1007 | 1008 | 1009 | 1010 | 1011 | 1012 | 1013 | 1014 | 1015 | 12 1016 | 1017 | 1018 | 1019 | 1020 | 1021 | 1022 | False 1023 | 1024 | False 1025 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1026 | False 1027 | 1028 | 1029 | 1030 | False 1031 | 1032 | False 1033 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1034 | False 1035 | 1036 | 1037 | 1038 | False 1039 | 1040 | False 1041 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1042 | False 1043 | 1044 | 1045 | 1046 | False 1047 | 1048 | False 1049 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1050 | False 1051 | 1052 | 1053 | 1054 | False 1055 | 1056 | False 1057 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1058 | False 1059 | 1060 | 1061 | 1062 | False 1063 | 1064 | False 1065 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1066 | False 1067 | 1068 | 1069 | 1070 | False 1071 | 1072 | False 1073 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1074 | False 1075 | 1076 | 1077 | 1078 | False 1079 | 1080 | False 1081 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1082 | False 1083 | 1084 | 1085 | 1086 | False 1087 | 1088 | False 1089 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1090 | False 1091 | 1092 | 1093 | 1094 | False 1095 | 1096 | False 1097 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1098 | False 1099 | 1100 | 1101 | 1102 | False 1103 | 1104 | False 1105 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1106 | False 1107 | 1108 | 1109 | 1110 | False 1111 | 1112 | False 1113 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1114 | False 1115 | 1116 | 1117 | 1118 | False 1119 | 1120 | False 1121 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1122 | False 1123 | 1124 | 1125 | 1126 | False 1127 | 1128 | False 1129 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1130 | False 1131 | 1132 | 1133 | 1134 | False 1135 | 1136 | False 1137 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1138 | False 1139 | 1140 | 1141 | 1142 | False 1143 | 1144 | False 1145 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1146 | False 1147 | 1148 | 1149 | 1150 | False 1151 | 1152 | False 1153 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1154 | False 1155 | 1156 | 1157 | 1158 | False 1159 | 1160 | False 1161 | copy "$(PROJECTDIR)\templates\*" "$(OUTPUTDIR)" 1162 | False 1163 | 1164 |
1165 | --------------------------------------------------------------------------------