├── OpenXml.res
├── Example.docx
├── .gitignore
├── CreateWord
├── CreateWord.res
├── CreateWord_project.tvsconfig
├── CreateWord.stat
├── CreateWord.dpr
├── CreateWord.dproj.local
├── Unit2.dfm
├── Unit2.pas
└── CreateWord.dproj
├── ProcessOpenXml_prjgroup.tvsconfig
├── ComplexWord
├── ComplexWord.res
├── ComplexWord.stat
├── ComplexWord.dpr
├── Unit3.dfm
├── ComplexWord.dproj.local
├── Unit3.pas
└── ComplexWord.dproj
├── OpenXml.stat
├── OpenXml.dpr
├── ProcessOpenXml.groupproj.local
├── OpenXml.dproj.local
├── Unit1.dfm
├── ProcessOpenXml.groupproj
├── Unit1.pas
├── ProcessOpenXml.dsk
└── OpenXml.dproj
/OpenXml.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bsonnino/WordDelphi/HEAD/OpenXml.res
--------------------------------------------------------------------------------
/Example.docx:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bsonnino/WordDelphi/HEAD/Example.docx
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | Win32/
2 | __history/
3 | __recovery/
4 | *.~*
5 | *.identcache
6 | *.template.*
--------------------------------------------------------------------------------
/CreateWord/CreateWord.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bsonnino/WordDelphi/HEAD/CreateWord/CreateWord.res
--------------------------------------------------------------------------------
/ProcessOpenXml_prjgroup.tvsconfig:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/ComplexWord/ComplexWord.res:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bsonnino/WordDelphi/HEAD/ComplexWord/ComplexWord.res
--------------------------------------------------------------------------------
/CreateWord/CreateWord_project.tvsconfig:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/OpenXml.stat:
--------------------------------------------------------------------------------
1 | [Stats]
2 | EditorSecs=519
3 | DesignerSecs=7
4 | InspectorSecs=1
5 | CompileSecs=9216
6 | OtherSecs=36
7 | StartTime=03/11/2019 09:31:58
8 | RealKeys=0
9 | EffectiveKeys=0
10 | DebugSecs=1
11 |
--------------------------------------------------------------------------------
/CreateWord/CreateWord.stat:
--------------------------------------------------------------------------------
1 | [Stats]
2 | EditorSecs=1772
3 | DesignerSecs=6
4 | InspectorSecs=1
5 | CompileSecs=12135
6 | OtherSecs=20
7 | StartTime=03/11/2019 08:22:53
8 | RealKeys=0
9 | EffectiveKeys=0
10 | DebugSecs=1
11 |
--------------------------------------------------------------------------------
/ComplexWord/ComplexWord.stat:
--------------------------------------------------------------------------------
1 | [Stats]
2 | EditorSecs=1590
3 | DesignerSecs=1
4 | InspectorSecs=1
5 | CompileSecs=15148
6 | OtherSecs=51
7 | StartTime=03/11/2019 08:56:45
8 | RealKeys=0
9 | EffectiveKeys=0
10 | DebugSecs=1
11 |
--------------------------------------------------------------------------------
/OpenXml.dpr:
--------------------------------------------------------------------------------
1 | program OpenXml;
2 |
3 | uses
4 | Vcl.Forms,
5 | Unit1 in 'Unit1.pas' {Form1};
6 |
7 | {$R *.res}
8 |
9 | begin
10 | Application.Initialize;
11 | Application.MainFormOnTaskbar := True;
12 | Application.CreateForm(TForm1, Form1);
13 | Application.Run;
14 | end.
15 |
--------------------------------------------------------------------------------
/CreateWord/CreateWord.dpr:
--------------------------------------------------------------------------------
1 | program CreateWord;
2 |
3 | uses
4 | Vcl.Forms,
5 | Unit2 in 'Unit2.pas' {Form2};
6 |
7 | {$R *.res}
8 |
9 | begin
10 | Application.Initialize;
11 | Application.MainFormOnTaskbar := True;
12 | Application.CreateForm(TForm2, Form2);
13 | Application.Run;
14 | end.
15 |
--------------------------------------------------------------------------------
/ComplexWord/ComplexWord.dpr:
--------------------------------------------------------------------------------
1 | program ComplexWord;
2 |
3 | uses
4 | Vcl.Forms,
5 | Unit3 in 'Unit3.pas' {Form3};
6 |
7 | {$R *.res}
8 |
9 | begin
10 | Application.Initialize;
11 | Application.MainFormOnTaskbar := True;
12 | Application.CreateForm(TForm3, Form3);
13 | Application.Run;
14 | end.
15 |
--------------------------------------------------------------------------------
/ProcessOpenXml.groupproj.local:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 2019/11/03 06:49:47.625,D:\Documentos\Embarcadero\Studio\Projects\OpenXml\ProcessOpenXml.groupproj=D:\Documentos\Embarcadero\Studio\Projects\ProjectGroup1.groupproj
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/ComplexWord/Unit3.dfm:
--------------------------------------------------------------------------------
1 | object Form3: TForm3
2 | Left = 0
3 | Top = 0
4 | Caption = 'Form3'
5 | ClientHeight = 153
6 | ClientWidth = 432
7 | Color = clBtnFace
8 | Font.Charset = DEFAULT_CHARSET
9 | Font.Color = clWindowText
10 | Font.Height = -11
11 | Font.Name = 'Tahoma'
12 | Font.Style = []
13 | OldCreateOrder = False
14 | PixelsPerInch = 96
15 | TextHeight = 13
16 | object Button1: TButton
17 | Left = 178
18 | Top = 64
19 | Width = 75
20 | Height = 25
21 | Caption = 'Create'
22 | TabOrder = 0
23 | OnClick = Button1Click
24 | end
25 | end
26 |
--------------------------------------------------------------------------------
/OpenXml.dproj.local:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 2018/11/10 10:25:17.000.091,=D:\Documentos\Embarcadero\Studio\Projects\Unit1.pas
5 | 2019/11/03 05:20:57.000.320,=D:\Documentos\Embarcadero\Studio\Projects\Unit1.pas
6 | 2019/11/03 05:33:08.000.823,D:\Documentos\Embarcadero\Studio\Projects\OpenXml\Unit1.dfm=D:\Documentos\Embarcadero\Studio\Projects\Unit1.dfm
7 | 2019/11/03 05:33:08.000.823,D:\Documentos\Embarcadero\Studio\Projects\OpenXml\Unit1.pas=D:\Documentos\Embarcadero\Studio\Projects\Unit1.pas
8 | 2019/11/03 05:33:18.000.039,D:\Documentos\Embarcadero\Studio\Projects\OpenXml\OpenXml.dproj=D:\Documentos\Embarcadero\Studio\Projects\Project1.dproj
9 |
10 |
11 |
--------------------------------------------------------------------------------
/CreateWord/CreateWord.dproj.local:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 2018/11/10 10:25:17.000.091,=D:\Documentos\Embarcadero\Studio\Projects\Unit1.pas
5 | 2019/11/03 06:18:29.000.845,=D:\Documentos\Embarcadero\Studio\Projects\Unit2.pas
6 | 2019/11/03 06:49:26.000.967,D:\Documentos\Embarcadero\Studio\Projects\OpenXml\CreateWord\Unit2.pas=D:\Documentos\Embarcadero\Studio\Projects\Unit2.pas
7 | 2019/11/03 06:49:26.000.967,D:\Documentos\Embarcadero\Studio\Projects\OpenXml\CreateWord\Unit2.dfm=D:\Documentos\Embarcadero\Studio\Projects\Unit2.dfm
8 | 2019/11/03 06:49:32.000.893,D:\Documentos\Embarcadero\Studio\Projects\OpenXml\CreateWord\CreateWord.dproj=D:\Documentos\Embarcadero\Studio\Projects\Project1.dproj
9 |
10 |
11 |
--------------------------------------------------------------------------------
/ComplexWord/ComplexWord.dproj.local:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 2018/11/10 10:25:17.000.091,=D:\Documentos\Embarcadero\Studio\Projects\Unit1.pas
5 | 2019/11/03 08:19:37.000.171,=D:\Documentos\Embarcadero\Studio\Projects\Unit3.pas
6 | 2019/11/03 08:22:38.000.306,D:\Documentos\Embarcadero\Studio\Projects\OpenXml\ComplexWord\Unit3.dfm=D:\Documentos\Embarcadero\Studio\Projects\Unit3.dfm
7 | 2019/11/03 08:22:38.000.306,D:\Documentos\Embarcadero\Studio\Projects\OpenXml\ComplexWord\Unit3.pas=D:\Documentos\Embarcadero\Studio\Projects\Unit3.pas
8 | 2019/11/03 08:22:48.000.115,D:\Documentos\Embarcadero\Studio\Projects\OpenXml\ComplexWord\ComplexWord.dproj=D:\Documentos\Embarcadero\Studio\Projects\Project1.dproj
9 |
10 |
11 |
--------------------------------------------------------------------------------
/CreateWord/Unit2.dfm:
--------------------------------------------------------------------------------
1 | object Form2: TForm2
2 | Left = 0
3 | Top = 0
4 | Caption = 'Create Simple File'
5 | ClientHeight = 472
6 | ClientWidth = 725
7 | Color = clBtnFace
8 | Font.Charset = DEFAULT_CHARSET
9 | Font.Color = clWindowText
10 | Font.Height = -11
11 | Font.Name = 'Tahoma'
12 | Font.Style = []
13 | OldCreateOrder = False
14 | PixelsPerInch = 96
15 | TextHeight = 13
16 | object Memo1: TMemo
17 | Left = 0
18 | Top = 48
19 | Width = 725
20 | Height = 424
21 | Align = alBottom
22 | Font.Charset = ANSI_CHARSET
23 | Font.Color = clWindowText
24 | Font.Height = -11
25 | Font.Name = 'Consolas'
26 | Font.Style = []
27 | ParentFont = False
28 | ScrollBars = ssBoth
29 | TabOrder = 0
30 | WordWrap = False
31 | end
32 | object Button1: TButton
33 | Left = 8
34 | Top = 8
35 | Width = 75
36 | Height = 25
37 | Caption = 'Create'
38 | TabOrder = 1
39 | OnClick = Button1Click
40 | end
41 | end
42 |
--------------------------------------------------------------------------------
/Unit1.dfm:
--------------------------------------------------------------------------------
1 | object Form1: TForm1
2 | Left = 0
3 | Top = 0
4 | Caption = 'Open Word File'
5 | ClientHeight = 471
6 | ClientWidth = 917
7 | Color = clBtnFace
8 | Font.Charset = DEFAULT_CHARSET
9 | Font.Color = clWindowText
10 | Font.Height = -11
11 | Font.Name = 'Tahoma'
12 | Font.Style = []
13 | OldCreateOrder = False
14 | PixelsPerInch = 96
15 | TextHeight = 13
16 | object Splitter1: TSplitter
17 | Left = 513
18 | Top = 41
19 | Height = 430
20 | ExplicitLeft = 464
21 | ExplicitTop = 208
22 | ExplicitHeight = 100
23 | end
24 | object Memo1: TMemo
25 | Left = 0
26 | Top = 41
27 | Width = 513
28 | Height = 430
29 | Align = alLeft
30 | Font.Charset = ANSI_CHARSET
31 | Font.Color = clWindowText
32 | Font.Height = -11
33 | Font.Name = 'Consolas'
34 | Font.Style = []
35 | ParentFont = False
36 | ScrollBars = ssBoth
37 | TabOrder = 0
38 | WordWrap = False
39 | end
40 | object ValueListEditor1: TValueListEditor
41 | Left = 516
42 | Top = 41
43 | Width = 401
44 | Height = 430
45 | Align = alClient
46 | TabOrder = 1
47 | ColWidths = (
48 | 150
49 | 245)
50 | end
51 | object Panel1: TPanel
52 | Left = 0
53 | Top = 0
54 | Width = 917
55 | Height = 41
56 | Align = alTop
57 | TabOrder = 2
58 | ExplicitLeft = 192
59 | ExplicitTop = 152
60 | ExplicitWidth = 185
61 | object Button1: TButton
62 | Left = 0
63 | Top = 10
64 | Width = 75
65 | Height = 25
66 | Caption = 'Open'
67 | TabOrder = 0
68 | OnClick = Button1Click
69 | end
70 | end
71 | object OpenDialog1: TOpenDialog
72 | Filter = 'Word Files|*.docx|All Files|*.*'
73 | Left = 112
74 | Top = 8
75 | end
76 | object XMLDocument1: TXMLDocument
77 | Options = [doNodeAutoCreate, doNodeAutoIndent, doAttrNull, doAutoPrefix, doNamespaceDecl]
78 | Left = 160
79 | Top = 8
80 | end
81 | object XMLDocument2: TXMLDocument
82 | Left = 200
83 | Top = 8
84 | end
85 | end
86 |
--------------------------------------------------------------------------------
/ProcessOpenXml.groupproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {5EC92AD8-59D7-4594-A20E-405610FD314A}
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 | Default.Personality.12
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
--------------------------------------------------------------------------------
/Unit1.pas:
--------------------------------------------------------------------------------
1 | unit Unit1;
2 |
3 | interface
4 |
5 | uses
6 | System.Zip, Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
7 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Xml.xmldom, Xml.XMLIntf,
8 | Vcl.ExtCtrls, Vcl.Grids, Vcl.ValEdit, Xml.XMLDoc;
9 |
10 | type
11 | TForm1 = class(TForm)
12 | OpenDialog1: TOpenDialog;
13 | Memo1: TMemo;
14 | Button1: TButton;
15 | XMLDocument1: TXMLDocument;
16 | ValueListEditor1: TValueListEditor;
17 | Panel1: TPanel;
18 | XMLDocument2: TXMLDocument;
19 | Splitter1: TSplitter;
20 | procedure Button1Click(Sender: TObject);
21 | private
22 | FZipFile : TZipFile;
23 | procedure ReadProperties(const FileName: String);
24 | { Private declarations }
25 | public
26 | { Public declarations }
27 | end;
28 |
29 | var
30 | Form1: TForm1;
31 |
32 | implementation
33 |
34 | {$R *.dfm}
35 |
36 | procedure TForm1.Button1Click(Sender: TObject);
37 | var
38 | ZipStream: TStream;
39 | LocalHeader: TZipHeader;
40 | FileName : string;
41 | begin
42 | if OpenDialog1.Execute then begin
43 | Memo1.Clear;
44 | FZipFile := TZipFile.Create;
45 | try
46 | FZipFile.Open(OpenDialog1.FileName, TZipMode.zmRead);
47 | // for fileName in FZipFile.FileNames do
48 | // Memo1.Lines.Add(FileName);
49 | FZipFile.Read('_rels/.rels', ZipStream, LocalHeader);
50 | ZipStream.Position := 0;
51 | XMLDocument1.LoadFromStream(ZipStream);
52 | ValueListEditor1.Strings.Clear;
53 | for var i := 0 to XMLDocument1.DocumentElement.ChildNodes.Count-1 do begin
54 | var XmlNode := XMLDocument1.DocumentElement.ChildNodes.Nodes[i];
55 | var AttType := ExtractFileName(StringReplace(XmlNode.Attributes['Type'],
56 | '/','\', [rfReplaceAll]));
57 | if AnsiSameText(AttType, 'core-properties') or
58 | AnsiSameText(AttType, 'extended-properties') then
59 | ReadProperties(XmlNode.Attributes['Target']);
60 | end;
61 | Memo1.Lines.Text := FormatXmlData(XmlDocument1.XML.Text);
62 | finally
63 | FZipFile.Free;
64 | end;
65 | end;
66 | end;
67 |
68 | procedure TForm1.ReadProperties(const FileName : String);
69 | var
70 | ZipStream : TStream;
71 | LocalHeader: TZipHeader;
72 | i : Integer;
73 | XmlNode : IXMLNode;
74 | begin
75 | FZipFile.Read(FileName, ZipStream, LocalHeader);
76 | ZipStream.Position := 0;
77 | XMLDocument2.LoadFromStream(ZipStream);
78 | // Read the properties
79 | for i := 0 to XMLDocument2.DocumentElement.ChildNodes.Count-1 do begin
80 | XmlNode := XMLDocument2.DocumentElement.ChildNodes.Nodes[i];
81 | try
82 | // Found new property
83 | ValueListEditor1.InsertRow(XmlNode.NodeName,XmlNode.NodeValue, True);
84 | except
85 | // Property is not simple - discard it.
86 | On EXMLDocError do
87 | ;
88 | // Property is null - add empty string
89 | On EVariantTypeCastError do
90 | ValueListEditor1.InsertRow(XmlNode.NodeName,'', True);
91 | end;
92 | end;
93 | end;
94 |
95 | end.
96 |
--------------------------------------------------------------------------------
/CreateWord/Unit2.pas:
--------------------------------------------------------------------------------
1 | unit Unit2;
2 |
3 | interface
4 |
5 | uses
6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
7 | System.Classes, Vcl.Graphics, Xml.xmldom, Xml.XMLIntf, Xml.XmlDoc,
8 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, System.Zip;
9 |
10 | type
11 | TForm2 = class(TForm)
12 | Memo1: TMemo;
13 | Button1: TButton;
14 | procedure Button1Click(Sender: TObject);
15 | private
16 | { Private declarations }
17 | FZipFile: TZipFile;
18 | function CreateContentTypes: TStream;
19 | function CreateRels: TStream;
20 | function CreateDocument: TStream;
21 | public
22 | { Public declarations }
23 | end;
24 |
25 | var
26 | Form2: TForm2;
27 |
28 | implementation
29 |
30 | {$R *.dfm}
31 |
32 | procedure TForm2.Button1Click(Sender: TObject);
33 | begin
34 | FZipFile := TZipFile.Create;
35 | try
36 | FZipFile.Open('SimpleFile.docx', TZipMode.zmWrite);
37 | var ContentTypeStream := CreateContentTypes();
38 | try
39 | FZipFile.Add(ContentTypeStream, '[Content_Types].xml');
40 | finally
41 | ContentTypeStream.Free;
42 | end;
43 | var RelsStream := CreateRels();
44 | try
45 | FZipFile.Add(RelsStream, '_rels\.rels');
46 | finally
47 | RelsStream.Free;
48 | end;
49 | var DocumentStream := CreateDocument();
50 | try
51 | FZipFile.Add(DocumentStream, 'word\document.xml');
52 | finally
53 | DocumentStream.Free;
54 | end;
55 | FZipFile.Close;
56 | finally
57 | FZipFile.Free;
58 | end;
59 | end;
60 |
61 | function TForm2.CreateContentTypes: TStream;
62 | begin
63 | var XmlDocument := TXmlDocument.Create(self);
64 | try
65 | XmlDocument.Options := [doNodeAutoIndent];
66 | XmlDocument.Active := True;
67 | // Heading
68 | XmlDocument.Encoding := 'UTF-8';
69 | XmlDocument.Version := '1.0';
70 | XmlDocument.StandAlone := 'yes';
71 | // Root Node
72 | var Root := XmlDocument.addChild('Types',
73 | 'http://schemas.openxmlformats.org/package/2006/content-types');
74 | // Type Definition
75 | var TypeNode := Root.addChild('Default');
76 | TypeNode.Attributes['Extension'] := 'rels';
77 | TypeNode.Attributes['ContentType'] :=
78 | 'application/vnd.openxmlformats-package.relationships+xml';
79 | TypeNode := Root.addChild('Default');
80 | TypeNode.Attributes['Extension'] := 'xml';
81 | TypeNode.Attributes['ContentType'] :=
82 | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml';
83 | // Save on output stream
84 | Result := TMemoryStream.Create;
85 | XMLDocument.SaveToStream(Result);
86 | Result.Position := 0;
87 | finally
88 | XmlDocument.Free
89 | end;
90 | end;
91 |
92 | function TForm2.CreateRels: TStream;
93 | var
94 | Root: IXmlNode;
95 | Rel: IXmlNode;
96 | begin
97 | var XmlDocument := TXmlDocument.Create(self);
98 | try
99 | XmlDocument.Options := [doNodeAutoIndent];
100 | XmlDocument.Active := True;
101 | // Heading
102 | XmlDocument.Encoding := 'UTF-8';
103 | XmlDocument.Version := '1.0';
104 | XmlDocument.StandAlone := 'yes';
105 | // Root Node
106 | Root := XMLDocument.addChild('Relationships',
107 | 'http://schemas.openxmlformats.org/package/2006/relationships');
108 | // Relationship Definition
109 | Rel := Root.addChild('Relationship');
110 | Rel.Attributes['Id'] := 'rId1';
111 | Rel.Attributes['Type'] :=
112 | 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument';
113 | Rel.Attributes['Target'] := 'word/document.xml';
114 | // Save on output stream
115 | Result := TMemoryStream.Create;
116 | XmlDocument.SaveToStream(Result);
117 | Result.Position := 0;
118 | finally
119 | XmlDocument.Free;
120 | end;
121 | end;
122 |
123 | function TForm2.CreateDocument: TStream;
124 | var
125 | Root: IXmlNode;
126 | begin
127 | var XmlDocument := TXmlDocument.Create(self);
128 | try
129 | XmlDocument.Options := [doNodeAutoIndent];
130 | XmlDocument.Active := True;
131 | // Heading
132 | XmlDocument.Encoding := 'UTF-8';
133 | XmlDocument.Version := '1.0';
134 | XmlDocument.StandAlone := 'yes';
135 | // Root Node
136 | Root := XmlDocument.addChild('wordDocument',
137 | 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
138 | // Save Text
139 | Root.addChild('body').addChild('p').addChild('r').addChild('t').NodeValue :=
140 | Memo1.Text;
141 | // Save on Output Stream
142 | Result := TMemoryStream.Create;
143 | XmlDocument.SaveToStream(Result);
144 | Result.Position := 0;
145 | finally
146 | XmlDocument.Free;
147 | end;
148 | end;
149 |
150 | end.
151 |
--------------------------------------------------------------------------------
/ComplexWord/Unit3.pas:
--------------------------------------------------------------------------------
1 | unit Unit3;
2 |
3 | interface
4 |
5 | uses
6 | Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
7 | System.Classes, Vcl.Graphics,
8 | Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls,
9 | Xml.xmldom, Xml.XMLIntf, Xml.XmlDoc, System.Zip;
10 |
11 | type
12 | TForm3 = class(TForm)
13 | Button1: TButton;
14 | procedure Button1Click(Sender: TObject);
15 | private
16 | FZipFile: TZipFile;
17 | function CreateContentTypes: TStream;
18 | function CreateRels: TStream;
19 | procedure AddFormattedText(Body: IXMLNode; FontName: String);
20 | function CreateDocument: TStream;
21 | procedure SetPageFormat(Body: IXMLNode);
22 | function CreateHeader: TStream;
23 | procedure CreateXmlHeader(XmlDocument: TXmlDocument);
24 | function SaveXmlDocToStream(XmlDocument: TXmlDocument): TStream;
25 | function CreateDocRels: TStream;
26 | public
27 | { Public declarations }
28 | end;
29 |
30 | var
31 | Form3: TForm3;
32 |
33 | implementation
34 |
35 | {$R *.dfm}
36 |
37 | procedure TForm3.Button1Click(Sender: TObject);
38 | begin
39 | FZipFile := TZipFile.Create;
40 | try
41 | FZipFile.Open('ComplexFile.docx', TZipMode.zmWrite);
42 | var ContentTypeStream := CreateContentTypes();
43 | try
44 | FZipFile.Add(ContentTypeStream, '[Content_Types].xml');
45 | finally
46 | ContentTypeStream.Free;
47 | end;
48 | var RelsStream := CreateRels();
49 | try
50 | FZipFile.Add(RelsStream, '_rels\.rels');
51 | finally
52 | RelsStream.Free;
53 | end;
54 | RelsStream := CreateDocRels();
55 | try
56 | FZipFile.Add(RelsStream, 'word\_rels\document.xml.rels');
57 | finally
58 | RelsStream.Free;
59 | end;
60 | var DocumentStream := CreateDocument();
61 | try
62 | FZipFile.Add(DocumentStream, 'word\document.xml');
63 | finally
64 | DocumentStream.Free;
65 | end;
66 | var HeaderStream := CreateHeader();
67 | try
68 | FZipFile.Add(HeaderStream, 'word\header1.xml');
69 | finally
70 | DocumentStream.Free;
71 | end;
72 | FZipFile.Close;
73 | finally
74 | FZipFile.Free;
75 | end;
76 | end;
77 |
78 | function TForm3.SaveXmlDocToStream(XmlDocument : TXmlDocument) : TStream;
79 | begin
80 | Result := TMemoryStream.Create;
81 | XmlDocument.SaveToStream(Result);
82 | Result.Position := 0;
83 | end;
84 |
85 | function TForm3.CreateContentTypes: TStream;
86 | begin
87 | var XmlDocument := TXmlDocument.Create(self);
88 | try
89 | CreateXmlHeader(XmlDocument);
90 | // Root Node
91 | var Root := XmlDocument.addChild('Types',
92 | 'http://schemas.openxmlformats.org/package/2006/content-types');
93 | // Type Definition
94 | var TypeNode := Root.addChild('Default');
95 | TypeNode.Attributes['Extension'] := 'rels';
96 | TypeNode.Attributes['ContentType'] :=
97 | 'application/vnd.openxmlformats-package.relationships+xml';
98 | TypeNode := Root.addChild('Default');
99 | TypeNode.Attributes['Extension'] := 'xml';
100 | TypeNode.Attributes['ContentType'] :=
101 | 'application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml';
102 | TypeNode := Root.AddChild('Override');
103 | TypeNode.Attributes['PartName'] := '/word/header1.xml';
104 | TypeNode.Attributes['ContentType'] := 'application/vnd.openxmlformats-officedocument.wordprocessingml.header+xml';
105 | Result := SaveXmlDocToStream(XmlDocument);
106 | finally
107 | XmlDocument.Free
108 | end;
109 | end;
110 |
111 | procedure TForm3.CreateXmlHeader(XmlDocument : TXmlDocument);
112 | begin
113 | XmlDocument.Options := [doNodeAutoIndent];
114 | XmlDocument.Active := True;
115 | XmlDocument.Encoding := 'UTF-8';
116 | XmlDocument.Version := '1.0';
117 | XmlDocument.StandAlone := 'yes';
118 | end;
119 |
120 | function TForm3.CreateRels: TStream;
121 | begin
122 | var XmlDocument := TXmlDocument.Create(self);
123 | try
124 | CreateXmlHeader(XmlDocument);
125 | // Root Node
126 | var Root := XmlDocument.addChild('Relationships',
127 | 'http://schemas.openxmlformats.org/package/2006/relationships');
128 | // Relationship Definition
129 | var Rel := Root.addChild('Relationship');
130 | Rel.Attributes['Id'] := 'rId1';
131 | Rel.Attributes['Type'] :=
132 | 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument';
133 | Rel.Attributes['Target'] := 'word/document.xml';
134 | Result := SaveXmlDocToStream(XmlDocument);
135 | finally
136 | XmlDocument.Free;
137 | end;
138 | end;
139 |
140 | function TForm3.CreateDocRels : TStream;
141 | begin
142 | var XmlDocument := TXmlDocument.Create(self);
143 | try
144 | CreateXmlHeader(XmlDocument);
145 | // Root node
146 | var Root := XMLDocument.addChild('Relationships',
147 | 'http://schemas.openxmlformats.org/package/2006/relationships');
148 | // Relationship definitions
149 | var Rel := Root.AddChild('Relationship');
150 | Rel.Attributes['Id'] := 'rId1';
151 | Rel.Attributes['Type'] :=
152 | 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/header';
153 | Rel.Attributes['Target'] := 'header1.xml';
154 | Result := SaveXmlDocToStream(XmlDocument);
155 | finally
156 | XmlDocument.Free;
157 | end;
158 | end;
159 |
160 | function TForm3.CreateDocument: TStream;
161 | begin
162 | var XmlDocument := TXmlDocument.Create(self);
163 | try
164 | CreateXmlHeader(XmlDocument);
165 | // Root node
166 | var Root := XMLDocument.addChild('w:wordDocument');
167 | Root.DeclareNamespace('w',
168 | 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
169 | Root.DeclareNamespace('r',
170 | 'http://schemas.openxmlformats.org/officeDocument/2006/relationships');
171 | var Body := Root.addChild('w:body');
172 | for var i := 0 to Screen.Fonts.Count - 1 do begin
173 | AddFormattedText(Body, Screen.Fonts[i]);
174 | end;
175 | SetPageFormat(Body);
176 | Result := SaveXmlDocToStream(XmlDocument);
177 | finally
178 | XmlDocument.Free;
179 | end;
180 | end;
181 |
182 | procedure TForm3.AddFormattedText(Body: IXMLNode; FontName: String);
183 | begin
184 | var Run := Body.addChild('w:p').addChild('w:r');
185 | var RunPr := Run.addChild('w:rPr');
186 | var Font := RunPr.addChild('w:rFonts');
187 | Font.Attributes['w:ascii'] := FontName;
188 | Font.Attributes['w:hAnsi'] := FontName;
189 | Font.Attributes['w:cs'] := FontName;
190 | RunPr.addChild('w:sz').Attributes['w:val'] := 30;
191 | Run.addChild('w:t').NodeValue := FontName;
192 | Run.addChild('w:tab');
193 | Run.addChild('w:t').NodeValue :=
194 | 'The quick brown fox jumps over the lazy dog';
195 | end;
196 |
197 | procedure TForm3.SetPageFormat(Body: IXMLNode);
198 | begin
199 | var SectPr := Body.AddChild('sectPr');
200 | var Header := SectPr.AddChild('w:headerReference');
201 | Header.Attributes['w:type'] := 'default';
202 | Header.Attributes['r:id'] := 'rId1';
203 | var PgSz := SectPr.AddChild('w:pgSz');
204 | PgSz.Attributes['w:w'] := Round(297/25.4*1440);
205 | PgSz.Attributes['w:h'] := Round(210/25.4*1440);
206 | PgSz := SectPr.AddChild('w:pgMar');
207 | PgSz.Attributes['w:top'] := 1440;
208 | PgSz.Attributes['w:bottom'] := 1440;
209 | PgSz.Attributes['w:left'] := 720;
210 | PgSz.Attributes['w:right'] := 720;
211 | PgSz.Attributes['w:header'] := 720;
212 | PgSz.Attributes['w:footer'] := 720;
213 | end;
214 |
215 | function TForm3.CreateHeader : TStream;
216 | begin
217 | var XmlDocument := TXmlDocument.Create(self);
218 | try
219 | CreateXmlHeader(XmlDocument);
220 | // Root node
221 | var Root := XmlDocument.addChild('w:hdr');
222 | Root.DeclareNamespace('w',
223 | 'http://schemas.openxmlformats.org/wordprocessingml/2006/main');
224 | var Header := Root.addChild('w:p');
225 | Header.addChild('w:r').addChild('w:t').NodeValue := 'Text 1';
226 | var PTab := Header.addChild('w:r').addChild('w:ptab');
227 | PTab.Attributes['w:relativeTo'] := 'margin';
228 | PTab.Attributes['w:alignment'] := 'center';
229 | PTab.Attributes['w:leader'] := 'none';
230 | Header.addChild('w:r').addChild('w:t').NodeValue := 'Text 2';
231 | PTab := Header.addChild('w:r').addChild('w:ptab');
232 | PTab.Attributes['w:relativeTo'] := 'margin';
233 | PTab.Attributes['w:alignment'] := 'right';
234 | PTab.Attributes['w:leader'] := 'none';
235 | Header.addChild('w:fldSimple').Attributes['w:instr'] :=
236 | 'PAGE \* MERGEFORMAT';
237 | Result := SaveXmlDocToStream(XmlDocument);
238 | finally
239 | XmlDocument.Free;
240 | end;
241 | end;
242 |
243 | end.
244 |
--------------------------------------------------------------------------------
/ProcessOpenXml.dsk:
--------------------------------------------------------------------------------
1 | [Closed Files]
2 | File_0=TSourceModule,'D:\Documentos\Artigos\Artigos\CSharp\OpenXMLDelphi\CriaComplexo\Main.pas',0,1,1,60,7,0,0,,
3 | File_1=TSourceModule,'c:\program files (x86)\embarcadero\studio\20.0\SOURCE\XML\Xml.XMLDoc.pas',0,1,1374,1,1411,0,0,,
4 | File_2=TSourceModule,'D:\Projetos\Acbr\Fontes\ACBrDFe\ACBrNFe\ACBrNFeConfiguracoes.pas',0,1,55,36,71,0,0,,
5 | File_3=TSourceModule,'D:\Projetos\Acbr\Fontes\ACBrDFe\ACBrNFe\ACBrNFe.pas',0,1,211,1,226,0,0,,
6 | File_4=TSourceModule,'D:\Projetos\Acbr\Fontes\ACBrDFe\ACBrNFe\DANFE\NFe\Fortes\ACBrNFeDANFeRLClass.pas',0,1,226,1,233,0,0,,
7 | File_5=TSourceModule,'D:\Projetos\Acbr\Fontes\ACBrDFe\ACBrDFe.pas',0,1,254,1,269,0,0,,
8 | File_6=TSourceModule,'D:\Projetos\Acbr\Fontes\ACBrDFe\ACBrNFe\ACBrNFeNotasFiscais.pas',0,1,3473,1,3489,0,0,,
9 | File_7=TSourceModule,'D:\Projetos\Acbr\Fontes\ACBrDFe\ACBrNFe\DANFE\ACBrNFeDANFEClass.pas',0,1,336,1,336,0,0,,
10 | File_8=TSourceModule,'D:\Projetos\Acbr\Fontes\ACBrDFe\ACBrNFe\PCNNFe\pcnConversaoNFe.pas',0,1,64,1,80,0,0,,
11 | File_9=TSourceModule,'D:\Projetos\Acbr\DemoDll\DataModule.pas',0,1,411,1,438,0,0,,
12 | File_10=TSourceModule,'c:\program files (x86)\embarcadero\rad studio\7.0\source\Win32\rtl\win\Windows.pas',0,1,34362,1,34378,0,0,,
13 | File_11=TSourceModule,'D:\Projetos\Acbr\Fontes\Terceiros\synalist\synautil.pas',0,1,1796,1,1818,0,0,,
14 | File_12=TSourceModule,'D:\Projetos\Acbr\Fontes\ACBrTCP\ACBrMail.pas',0,1,924,1,951,0,0,,
15 | File_13=TSourceModule,'c:\program files (x86)\embarcadero\rad studio\7.0\source\Win32\rtl\common\IOUtils.pas',0,1,2322,29,2341,0,0,,
16 | File_14=TSourceModule,'c:\program files (x86)\embarcadero\rad studio\7.0\source\Win32\rtl\common\Classes.pas',0,1,6096,3,6137,0,0,,
17 |
18 | [Modules]
19 | Module0=D:\Documentos\Embarcadero\Studio\Projects\OpenXml\ComplexWord\Unit3.pas
20 | Module1=D:\Documentos\Embarcadero\Studio\Projects\OpenXml\CreateWord\Unit2.pas
21 | Module2=D:\Documentos\Embarcadero\Studio\Projects\OpenXml\Unit1.pas
22 | Count=3
23 | EditWindowCount=1
24 |
25 | [D:\Documentos\Embarcadero\Studio\Projects\OpenXml\ComplexWord\Unit3.pas]
26 | ModuleType=TSourceModule
27 |
28 | [D:\Documentos\Embarcadero\Studio\Projects\OpenXml\CreateWord\Unit2.pas]
29 | ModuleType=TSourceModule
30 |
31 | [D:\Documentos\Embarcadero\Studio\Projects\OpenXml\Unit1.pas]
32 | ModuleType=TSourceModule
33 |
34 | [EditWindow0]
35 | ViewCount=3
36 | CurrentEditView=D:\Documentos\Embarcadero\Studio\Projects\OpenXml\ComplexWord\Unit3.pas
37 | View0=0
38 | View1=1
39 | View2=2
40 | PercentageSizes=1
41 | Create=1
42 | Visible=1
43 | Docked=1
44 | State=0
45 | Left=0
46 | Top=0
47 | Width=9896
48 | Height=8786
49 | MaxLeft=-1
50 | MaxTop=-1
51 | ClientWidth=9896
52 | ClientHeight=8786
53 | DockedToMainForm=1
54 | BorlandEditorCodeExplorer=BorlandEditorCodeExplorer@EditWindow0
55 | TopPanelSize=0
56 | LeftPanelSize=892
57 | LeftPanelClients=PropertyInspector,DockSite3
58 | LeftPanelData=000008000101000000006A12000000000000017C030000000000000100000000550E000009000000446F636B53697465330100000000BC2000001100000050726F7065727479496E73706563746F72FFFFFFFF
59 | RightPanelSize=1003
60 | RightPanelClients=DockSite2,DockSite4
61 | RightPanelData=000008000101000000006A1200000000000001EB0300000000000001000000004412000009000000446F636B53697465320100000000BC20000009000000446F636B5369746534FFFFFFFF
62 | BottomPanelSize=0
63 | BottomPanelClients=DockSite1,MessageView
64 | BottomPanelData=0000080001020200000009000000446F636B53697465310F0000004D65737361676556696577466F726D1534000000000000022606000000000000FFFFFFFF
65 | BottomMiddlePanelSize=0
66 | BottomMiddlePanelClients=DockSite0,GraphDrawingModel
67 | BottomMiddelPanelData=0000080001020200000009000000446F636B536974653010000000477261706844726177696E67566965779D1D00000000000002F606000000000000FFFFFFFF
68 |
69 | [View0]
70 | CustomEditViewType=TEditView
71 | Module=D:\Documentos\Embarcadero\Studio\Projects\OpenXml\Unit1.pas
72 | CursorX=35
73 | CursorY=48
74 | TopLine=61
75 | LeftCol=1
76 | Elisions=
77 | Bookmarks=
78 | EditViewName=D:\Documentos\Embarcadero\Studio\Projects\OpenXml\Unit1.pas
79 |
80 | [View1]
81 | CustomEditViewType=TEditView
82 | Module=D:\Documentos\Embarcadero\Studio\Projects\OpenXml\CreateWord\Unit2.pas
83 | CursorX=15
84 | CursorY=137
85 | TopLine=124
86 | LeftCol=1
87 | Elisions=
88 | Bookmarks=
89 | EditViewName=D:\Documentos\Embarcadero\Studio\Projects\OpenXml\CreateWord\Unit2.pas
90 |
91 | [View2]
92 | CustomEditViewType=TEditView
93 | Module=D:\Documentos\Embarcadero\Studio\Projects\OpenXml\ComplexWord\Unit3.pas
94 | CursorX=11
95 | CursorY=175
96 | TopLine=213
97 | LeftCol=1
98 | Elisions=
99 | Bookmarks=
100 | EditViewName=D:\Documentos\Embarcadero\Studio\Projects\OpenXml\ComplexWord\Unit3.pas
101 |
102 | [UndockedDesigner]
103 | Count=0
104 |
105 | [Watches]
106 | Count=0
107 |
108 | [WatchWindow]
109 | WatchColumnWidth=120
110 | WatchShowColumnHeaders=1
111 | PercentageSizes=1
112 | Create=1
113 | Visible=1
114 | Docked=1
115 | State=0
116 | Left=0
117 | Top=0
118 | Width=3822
119 | Height=1080
120 | MaxLeft=-1
121 | MaxTop=-1
122 | ClientWidth=3822
123 | ClientHeight=1080
124 | TBDockHeight=218
125 | LRDockWidth=13600
126 | Dockable=1
127 | StayOnTop=0
128 |
129 | [Breakpoints]
130 | Count=0
131 |
132 | [EmbarcaderoWin32Debugger_AddressBreakpoints]
133 | Count=0
134 |
135 | [EmbarcaderoWin64Debugger_AddressBreakpoints]
136 | Count=0
137 |
138 | [Main Window]
139 | PercentageSizes=1
140 | Create=1
141 | Visible=1
142 | Docked=0
143 | State=2
144 | Left=143
145 | Top=279
146 | Width=8932
147 | Height=8519
148 | MaxLeft=-7
149 | MaxTop=-12
150 | MaxWidth=8932
151 | MaxHeight=8519
152 | ClientWidth=10026
153 | ClientHeight=9733
154 | BottomPanelSize=8380
155 | BottomPanelClients=EditWindow0
156 | BottomPanelData=0000080000000000000000000000000000000000000000000000000100000000000000000C0000004564697457696E646F775F30FFFFFFFF
157 |
158 | [ProjectManager]
159 | PercentageSizes=1
160 | Create=1
161 | Visible=1
162 | Docked=1
163 | State=0
164 | Left=0
165 | Top=0
166 | Width=1999
167 | Height=4175
168 | MaxLeft=-1
169 | MaxTop=-1
170 | ClientWidth=1999
171 | ClientHeight=4175
172 | TBDockHeight=5898
173 | LRDockWidth=2350
174 | Dockable=1
175 | StayOnTop=0
176 |
177 | [MessageView]
178 | PercentageSizes=1
179 | Create=1
180 | Visible=0
181 | Docked=1
182 | State=0
183 | Left=0
184 | Top=0
185 | Width=2767
186 | Height=1420
187 | MaxLeft=-1
188 | MaxTop=-1
189 | ClientWidth=2767
190 | ClientHeight=1420
191 | TBDockHeight=1420
192 | LRDockWidth=2767
193 | Dockable=1
194 | StayOnTop=0
195 |
196 | [ToolForm]
197 | PercentageSizes=1
198 | Create=1
199 | Visible=1
200 | Docked=1
201 | State=0
202 | Left=0
203 | Top=0
204 | Width=1003
205 | Height=3592
206 | MaxLeft=-1
207 | MaxTop=-1
208 | ClientWidth=1003
209 | ClientHeight=3592
210 | TBDockHeight=7148
211 | LRDockWidth=1999
212 | Dockable=1
213 | StayOnTop=0
214 |
215 | [ClipboardHistory]
216 | PercentageSizes=1
217 | Create=1
218 | Visible=0
219 | Docked=0
220 | State=0
221 | Left=0
222 | Top=0
223 | Width=2461
224 | Height=5400
225 | MaxLeft=-7
226 | MaxTop=-12
227 | ClientWidth=2357
228 | ClientHeight=4927
229 | TBDockHeight=5400
230 | LRDockWidth=2461
231 | Dockable=1
232 | StayOnTop=0
233 |
234 | [ProjectStatistics]
235 | PercentageSizes=1
236 | Create=1
237 | Visible=0
238 | Docked=0
239 | State=0
240 | Left=0
241 | Top=0
242 | Width=1719
243 | Height=6226
244 | MaxLeft=-7
245 | MaxTop=-12
246 | ClientWidth=1615
247 | ClientHeight=5752
248 | TBDockHeight=6226
249 | LRDockWidth=1719
250 | Dockable=1
251 | StayOnTop=0
252 |
253 | [PropertyInspector]
254 | PercentageSizes=1
255 | Create=1
256 | Visible=1
257 | Docked=1
258 | State=0
259 | Left=0
260 | Top=341
261 | Width=892
262 | Height=4648
263 | MaxLeft=-1
264 | MaxTop=-1
265 | ClientWidth=892
266 | ClientHeight=4648
267 | TBDockHeight=5194
268 | LRDockWidth=892
269 | Dockable=1
270 | StayOnTop=0
271 | SplitPos=77
272 |
273 | [frmDesignPreview]
274 | PercentageSizes=1
275 | Create=1
276 | Visible=1
277 | Docked=1
278 | State=0
279 | Left=0
280 | Top=0
281 | Width=1999
282 | Height=3641
283 | MaxLeft=-1
284 | MaxTop=-1
285 | ClientWidth=1999
286 | ClientHeight=3641
287 | TBDockHeight=5959
288 | LRDockWidth=2513
289 | Dockable=1
290 | StayOnTop=0
291 |
292 | [TemplateView]
293 | PercentageSizes=1
294 | Create=1
295 | Visible=0
296 | Docked=1
297 | State=0
298 | Left=0
299 | Top=0
300 | Width=273
301 | Height=364
302 | MaxLeft=-1
303 | MaxTop=-1
304 | ClientWidth=273
305 | ClientHeight=364
306 | TBDockHeight=364
307 | LRDockWidth=273
308 | Dockable=1
309 | StayOnTop=0
310 | Name=120
311 | Description=334
312 | filter=1
313 |
314 | [DebugLogView]
315 | PercentageSizes=1
316 | Create=1
317 | Visible=1
318 | Docked=1
319 | State=0
320 | Left=0
321 | Top=0
322 | Width=3822
323 | Height=1080
324 | MaxLeft=-1
325 | MaxTop=-1
326 | ClientWidth=3822
327 | ClientHeight=1080
328 | TBDockHeight=413
329 | LRDockWidth=4948
330 | Dockable=1
331 | StayOnTop=0
332 |
333 | [ThreadStatusWindow]
334 | PercentageSizes=1
335 | Create=1
336 | Visible=1
337 | Docked=1
338 | State=0
339 | Left=0
340 | Top=0
341 | Width=3822
342 | Height=1080
343 | MaxLeft=-1
344 | MaxTop=-1
345 | ClientWidth=3822
346 | ClientHeight=1080
347 | TBDockHeight=218
348 | LRDockWidth=7409
349 | Dockable=1
350 | StayOnTop=0
351 | Column0Width=145
352 | Column1Width=100
353 | Column2Width=115
354 | Column3Width=227
355 |
356 | [LocalVarsWindow]
357 | PercentageSizes=1
358 | Create=1
359 | Visible=1
360 | Docked=1
361 | State=0
362 | Left=0
363 | Top=0
364 | Width=3822
365 | Height=1080
366 | MaxLeft=-1
367 | MaxTop=-1
368 | ClientWidth=3822
369 | ClientHeight=1080
370 | TBDockHeight=1541
371 | LRDockWidth=3483
372 | Dockable=1
373 | StayOnTop=0
374 |
375 | [CallStackWindow]
376 | PercentageSizes=1
377 | Create=1
378 | Visible=1
379 | Docked=1
380 | State=0
381 | Left=0
382 | Top=0
383 | Width=3822
384 | Height=1080
385 | MaxLeft=-1
386 | MaxTop=-1
387 | ClientWidth=3822
388 | ClientHeight=1080
389 | TBDockHeight=2063
390 | LRDockWidth=3483
391 | Dockable=1
392 | StayOnTop=0
393 |
394 | [PatchForm]
395 | PercentageSizes=1
396 | Create=1
397 | Visible=1
398 | Docked=1
399 | State=0
400 | Left=0
401 | Top=0
402 | Width=2337
403 | Height=1141
404 | MaxLeft=-1
405 | MaxTop=-1
406 | ClientWidth=2337
407 | ClientHeight=1141
408 | TBDockHeight=2500
409 | LRDockWidth=3398
410 | Dockable=1
411 | StayOnTop=0
412 |
413 | [FindReferencsForm]
414 | PercentageSizes=1
415 | Create=1
416 | Visible=1
417 | Docked=1
418 | State=0
419 | Left=0
420 | Top=0
421 | Width=2337
422 | Height=1141
423 | MaxLeft=-1
424 | MaxTop=-1
425 | ClientWidth=2337
426 | ClientHeight=1141
427 | TBDockHeight=2318
428 | LRDockWidth=2826
429 | Dockable=1
430 | StayOnTop=0
431 |
432 | [RefactoringForm]
433 | PercentageSizes=1
434 | Create=1
435 | Visible=1
436 | Docked=1
437 | State=0
438 | Left=0
439 | Top=0
440 | Width=2337
441 | Height=1141
442 | MaxLeft=-1
443 | MaxTop=-1
444 | ClientWidth=2337
445 | ClientHeight=1141
446 | TBDockHeight=3204
447 | LRDockWidth=2826
448 | Dockable=1
449 | StayOnTop=0
450 |
451 | [ToDo List]
452 | PercentageSizes=1
453 | Create=1
454 | Visible=1
455 | Docked=1
456 | State=0
457 | Left=0
458 | Top=0
459 | Width=2337
460 | Height=1068
461 | MaxLeft=-1
462 | MaxTop=-1
463 | ClientWidth=2337
464 | ClientHeight=1068
465 | TBDockHeight=1153
466 | LRDockWidth=3678
467 | Dockable=1
468 | StayOnTop=0
469 | Column0Width=314
470 | Column1Width=30
471 | Column2Width=150
472 | Column3Width=172
473 | Column4Width=129
474 | SortOrder=4
475 | ShowHints=1
476 | ShowChecked=1
477 |
478 | [DataExplorerContainer]
479 | PercentageSizes=1
480 | Create=1
481 | Visible=1
482 | Docked=1
483 | State=0
484 | Left=0
485 | Top=0
486 | Width=1999
487 | Height=0
488 | MaxLeft=-1
489 | MaxTop=-1
490 | ClientWidth=1999
491 | ClientHeight=0
492 | TBDockHeight=4879
493 | LRDockWidth=7148
494 | Dockable=1
495 | StayOnTop=0
496 |
497 | [GraphDrawingModel]
498 | PercentageSizes=1
499 | Create=1
500 | Visible=0
501 | Docked=1
502 | State=0
503 | Left=0
504 | Top=0
505 | Width=2858
506 | Height=3204
507 | MaxLeft=-1
508 | MaxTop=-1
509 | ClientWidth=2858
510 | ClientHeight=3204
511 | TBDockHeight=3204
512 | LRDockWidth=2858
513 | Dockable=1
514 | StayOnTop=0
515 |
516 | [ClassBrowserTool]
517 | PercentageSizes=1
518 | Create=1
519 | Visible=0
520 | Docked=1
521 | State=0
522 | Left=-260
523 | Top=-251
524 | Width=1849
525 | Height=3143
526 | MaxLeft=-1
527 | MaxTop=-1
528 | ClientWidth=1849
529 | ClientHeight=3143
530 | TBDockHeight=3143
531 | LRDockWidth=1849
532 | Dockable=1
533 | StayOnTop=0
534 |
535 | [MetricsView]
536 | PercentageSizes=1
537 | Create=1
538 | Visible=1
539 | Docked=1
540 | State=0
541 | Left=0
542 | Top=0
543 | Width=2337
544 | Height=1214
545 | MaxLeft=-1
546 | MaxTop=-1
547 | ClientWidth=2337
548 | ClientHeight=1214
549 | TBDockHeight=4830
550 | LRDockWidth=3561
551 | Dockable=1
552 | StayOnTop=0
553 |
554 | [QAView]
555 | PercentageSizes=1
556 | Create=1
557 | Visible=1
558 | Docked=1
559 | State=0
560 | Left=0
561 | Top=0
562 | Width=2337
563 | Height=1214
564 | MaxLeft=-1
565 | MaxTop=-1
566 | ClientWidth=2337
567 | ClientHeight=1214
568 | TBDockHeight=4830
569 | LRDockWidth=3561
570 | Dockable=1
571 | StayOnTop=0
572 |
573 | [BreakpointWindow]
574 | PercentageSizes=1
575 | Create=1
576 | Visible=1
577 | Docked=1
578 | State=0
579 | Left=0
580 | Top=0
581 | Width=3822
582 | Height=1080
583 | MaxLeft=-1
584 | MaxTop=-1
585 | ClientWidth=3822
586 | ClientHeight=1080
587 | TBDockHeight=1541
588 | LRDockWidth=8743
589 | Dockable=1
590 | StayOnTop=0
591 | Column0Width=200
592 | Column1Width=75
593 | Column2Width=200
594 | Column3Width=200
595 | Column4Width=200
596 | Column5Width=75
597 | Column6Width=75
598 |
599 | [StructureView]
600 | PercentageSizes=1
601 | Create=1
602 | Visible=1
603 | Docked=1
604 | State=0
605 | Left=0
606 | Top=0
607 | Width=1895
608 | Height=3459
609 | MaxLeft=-1
610 | MaxTop=-1
611 | ClientWidth=1895
612 | ClientHeight=3459
613 | TBDockHeight=3677
614 | LRDockWidth=1895
615 | Dockable=1
616 | StayOnTop=0
617 |
618 | [ModelViewTool]
619 | PercentageSizes=1
620 | Create=1
621 | Visible=1
622 | Docked=1
623 | State=0
624 | Left=0
625 | Top=0
626 | Width=1999
627 | Height=0
628 | MaxLeft=-1
629 | MaxTop=-1
630 | ClientWidth=1999
631 | ClientHeight=0
632 | TBDockHeight=4879
633 | LRDockWidth=5306
634 | Dockable=1
635 | StayOnTop=0
636 |
637 | [BorlandEditorCodeExplorer@EditWindow0]
638 | PercentageSizes=1
639 | Create=1
640 | Visible=0
641 | Docked=0
642 | State=0
643 | Left=0
644 | Top=0
645 | Width=1823
646 | Height=6177
647 | MaxLeft=-7
648 | MaxTop=-12
649 | ClientWidth=1719
650 | ClientHeight=5704
651 | TBDockHeight=6177
652 | LRDockWidth=1823
653 | Dockable=1
654 | StayOnTop=0
655 |
656 | [DockHosts]
657 | DockHostCount=5
658 |
659 | [DockSite0]
660 | HostDockSite=DockBottomCenterPanel
661 | DockSiteType=1
662 | PercentageSizes=1
663 | Create=1
664 | Visible=0
665 | Docked=1
666 | State=0
667 | Left=8
668 | Top=8
669 | Width=2337
670 | Height=1481
671 | MaxLeft=-1
672 | MaxTop=-1
673 | ClientWidth=2337
674 | ClientHeight=1481
675 | TBDockHeight=1481
676 | LRDockWidth=2337
677 | Dockable=1
678 | StayOnTop=0
679 | TabPosition=1
680 | ActiveTabID=RefactoringForm
681 | TabDockClients=RefactoringForm,PatchForm,FindReferencsForm,ToDo List,MetricsView,QAView
682 |
683 | [DockSite1]
684 | HostDockSite=DockBottomPanel
685 | DockSiteType=1
686 | PercentageSizes=1
687 | Create=1
688 | Visible=0
689 | Docked=1
690 | State=0
691 | Left=8
692 | Top=8
693 | Width=3822
694 | Height=1420
695 | MaxLeft=-1
696 | MaxTop=-1
697 | ClientWidth=3822
698 | ClientHeight=1420
699 | TBDockHeight=1420
700 | LRDockWidth=3822
701 | Dockable=1
702 | StayOnTop=0
703 | TabPosition=1
704 | ActiveTabID=DebugLogView
705 | TabDockClients=DebugLogView,BreakpointWindow,ThreadStatusWindow,CallStackWindow,WatchWindow,LocalVarsWindow
706 |
707 | [DockSite2]
708 | HostDockSite=DockRightPanel
709 | DockSiteType=1
710 | PercentageSizes=1
711 | Create=1
712 | Visible=1
713 | Docked=1
714 | State=0
715 | Left=0
716 | Top=24
717 | Width=1003
718 | Height=4515
719 | MaxLeft=-1
720 | MaxTop=-1
721 | ClientWidth=1003
722 | ClientHeight=4515
723 | TBDockHeight=4600
724 | LRDockWidth=1003
725 | Dockable=1
726 | StayOnTop=0
727 | TabPosition=1
728 | ActiveTabID=ProjectManager
729 | TabDockClients=ProjectManager,ModelViewTool,DataExplorerContainer,frmDesignPreview
730 |
731 | [DockSite3]
732 | HostDockSite=DockLeftPanel
733 | DockSiteType=1
734 | PercentageSizes=1
735 | Create=1
736 | Visible=1
737 | Docked=1
738 | State=0
739 | Left=0
740 | Top=24
741 | Width=892
742 | Height=3459
743 | MaxLeft=-1
744 | MaxTop=-1
745 | ClientWidth=892
746 | ClientHeight=3459
747 | TBDockHeight=3556
748 | LRDockWidth=892
749 | Dockable=1
750 | StayOnTop=0
751 | TabPosition=1
752 | ActiveTabID=StructureView
753 | TabDockClients=StructureView,ClassBrowserTool
754 |
755 | [DockSite4]
756 | HostDockSite=DockRightPanel
757 | DockSiteType=1
758 | PercentageSizes=1
759 | Create=1
760 | Visible=1
761 | Docked=1
762 | State=0
763 | Left=0
764 | Top=428
765 | Width=1003
766 | Height=3592
767 | MaxLeft=-1
768 | MaxTop=-1
769 | ClientWidth=1003
770 | ClientHeight=3592
771 | TBDockHeight=4150
772 | LRDockWidth=1003
773 | Dockable=1
774 | StayOnTop=0
775 | TabPosition=1
776 | ActiveTabID=ToolForm
777 | TabDockClients=ToolForm,TemplateView
778 |
779 | [ActiveProject]
780 | ActiveProject=3
781 |
782 |
--------------------------------------------------------------------------------
/OpenXml.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {0D6E08B1-1CC7-4902-A742-C2398876829D}
4 | 18.6
5 | VCL
6 | OpenXml.dpr
7 | True
8 | Debug
9 | Win32
10 | 1
11 | Application
12 |
13 |
14 | true
15 |
16 |
17 | true
18 | Base
19 | true
20 |
21 |
22 | true
23 | Base
24 | true
25 |
26 |
27 | true
28 | Base
29 | true
30 |
31 |
32 | true
33 | Cfg_1
34 | true
35 | true
36 |
37 |
38 | true
39 | Base
40 | true
41 |
42 |
43 | true
44 | Cfg_2
45 | true
46 | true
47 |
48 |
49 | .\$(Platform)\$(Config)
50 | .\$(Platform)\$(Config)
51 | false
52 | false
53 | false
54 | false
55 | false
56 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)
57 | $(BDS)\bin\delphi_PROJECTICON.ico
58 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
59 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
60 | OpenXml
61 |
62 |
63 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;svnui;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
64 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
65 | Debug
66 | true
67 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
68 | 1033
69 | $(BDS)\bin\default_app.manifest
70 |
71 |
72 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
73 |
74 |
75 | DEBUG;$(DCC_Define)
76 | true
77 | false
78 | true
79 | true
80 | true
81 |
82 |
83 | false
84 | true
85 | PerMonitorV2
86 |
87 |
88 | false
89 | RELEASE;$(DCC_Define)
90 | 0
91 | 0
92 |
93 |
94 | true
95 | PerMonitorV2
96 |
97 |
98 |
99 | MainSource
100 |
101 |
102 |
103 | dfm
104 |
105 |
106 | Cfg_2
107 | Base
108 |
109 |
110 | Base
111 |
112 |
113 | Cfg_1
114 | Base
115 |
116 |
117 |
118 | Delphi.Personality.12
119 | Application
120 |
121 |
122 |
123 | OpenXml.dpr
124 |
125 |
126 |
127 |
128 |
129 | OpenXml.exe
130 | true
131 |
132 |
133 |
134 |
135 | 1
136 |
137 |
138 | Contents\MacOS
139 | 1
140 |
141 |
142 | 0
143 |
144 |
145 |
146 |
147 | classes
148 | 1
149 |
150 |
151 |
152 |
153 | res\xml
154 | 1
155 |
156 |
157 |
158 |
159 | library\lib\armeabi-v7a
160 | 1
161 |
162 |
163 |
164 |
165 | library\lib\armeabi
166 | 1
167 |
168 |
169 |
170 |
171 | library\lib\mips
172 | 1
173 |
174 |
175 |
176 |
177 | library\lib\armeabi-v7a
178 | 1
179 |
180 |
181 |
182 |
183 | res\drawable
184 | 1
185 |
186 |
187 |
188 |
189 | res\values
190 | 1
191 |
192 |
193 |
194 |
195 | res\values-v21
196 | 1
197 |
198 |
199 |
200 |
201 | res\drawable
202 | 1
203 |
204 |
205 |
206 |
207 | res\drawable-xxhdpi
208 | 1
209 |
210 |
211 |
212 |
213 | res\drawable-ldpi
214 | 1
215 |
216 |
217 |
218 |
219 | res\drawable-mdpi
220 | 1
221 |
222 |
223 |
224 |
225 | res\drawable-hdpi
226 | 1
227 |
228 |
229 |
230 |
231 | res\drawable-xhdpi
232 | 1
233 |
234 |
235 |
236 |
237 | res\drawable-small
238 | 1
239 |
240 |
241 |
242 |
243 | res\drawable-normal
244 | 1
245 |
246 |
247 |
248 |
249 | res\drawable-large
250 | 1
251 |
252 |
253 |
254 |
255 | res\drawable-xlarge
256 | 1
257 |
258 |
259 |
260 |
261 | 1
262 |
263 |
264 | Contents\MacOS
265 | 1
266 |
267 |
268 | 0
269 |
270 |
271 |
272 |
273 | Contents\MacOS
274 | 1
275 | .framework
276 |
277 |
278 | Contents\MacOS
279 | 1
280 | .framework
281 |
282 |
283 | 0
284 |
285 |
286 |
287 |
288 | 1
289 | .dylib
290 |
291 |
292 | 1
293 | .dylib
294 |
295 |
296 | 1
297 | .dylib
298 |
299 |
300 | Contents\MacOS
301 | 1
302 | .dylib
303 |
304 |
305 | Contents\MacOS
306 | 1
307 | .dylib
308 |
309 |
310 | 0
311 | .dll;.bpl
312 |
313 |
314 |
315 |
316 | 1
317 | .dylib
318 |
319 |
320 | 1
321 | .dylib
322 |
323 |
324 | 1
325 | .dylib
326 |
327 |
328 | Contents\MacOS
329 | 1
330 | .dylib
331 |
332 |
333 | Contents\MacOS
334 | 1
335 | .dylib
336 |
337 |
338 | 0
339 | .bpl
340 |
341 |
342 |
343 |
344 | 0
345 |
346 |
347 | 0
348 |
349 |
350 | 0
351 |
352 |
353 | 0
354 |
355 |
356 | Contents\Resources\StartUp\
357 | 0
358 |
359 |
360 | Contents\Resources\StartUp\
361 | 0
362 |
363 |
364 | 0
365 |
366 |
367 |
368 |
369 | 1
370 |
371 |
372 | 1
373 |
374 |
375 | 1
376 |
377 |
378 |
379 |
380 | 1
381 |
382 |
383 | 1
384 |
385 |
386 | 1
387 |
388 |
389 |
390 |
391 | 1
392 |
393 |
394 | 1
395 |
396 |
397 | 1
398 |
399 |
400 |
401 |
402 | 1
403 |
404 |
405 | 1
406 |
407 |
408 | 1
409 |
410 |
411 |
412 |
413 | 1
414 |
415 |
416 | 1
417 |
418 |
419 | 1
420 |
421 |
422 |
423 |
424 | 1
425 |
426 |
427 | 1
428 |
429 |
430 | 1
431 |
432 |
433 |
434 |
435 | 1
436 |
437 |
438 | 1
439 |
440 |
441 | 1
442 |
443 |
444 |
445 |
446 | 1
447 |
448 |
449 |
450 |
451 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
452 | 1
453 |
454 |
455 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
456 | 1
457 |
458 |
459 |
460 |
461 | 1
462 |
463 |
464 | 1
465 |
466 |
467 |
468 |
469 | ..\
470 | 1
471 |
472 |
473 | ..\
474 | 1
475 |
476 |
477 |
478 |
479 | 1
480 |
481 |
482 | 1
483 |
484 |
485 | 1
486 |
487 |
488 |
489 |
490 | 1
491 |
492 |
493 | 1
494 |
495 |
496 | 1
497 |
498 |
499 |
500 |
501 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
502 | 1
503 |
504 |
505 |
506 |
507 | ..\
508 | 1
509 |
510 |
511 | ..\
512 | 1
513 |
514 |
515 |
516 |
517 | Contents
518 | 1
519 |
520 |
521 | Contents
522 | 1
523 |
524 |
525 |
526 |
527 | Contents\Resources
528 | 1
529 |
530 |
531 | Contents\Resources
532 | 1
533 |
534 |
535 |
536 |
537 | library\lib\armeabi-v7a
538 | 1
539 |
540 |
541 | 1
542 |
543 |
544 | 1
545 |
546 |
547 | 1
548 |
549 |
550 | 1
551 |
552 |
553 | Contents\MacOS
554 | 1
555 |
556 |
557 | Contents\MacOS
558 | 1
559 |
560 |
561 | 0
562 |
563 |
564 |
565 |
566 | 1
567 |
568 |
569 | 1
570 |
571 |
572 |
573 |
574 | Assets
575 | 1
576 |
577 |
578 | Assets
579 | 1
580 |
581 |
582 |
583 |
584 | Assets
585 | 1
586 |
587 |
588 | Assets
589 | 1
590 |
591 |
592 |
593 |
594 |
595 |
596 |
597 |
598 |
599 |
600 |
601 |
602 |
603 | True
604 | False
605 |
606 |
607 | 12
608 |
609 |
610 |
611 |
612 |
613 |
--------------------------------------------------------------------------------
/CreateWord/CreateWord.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {D8BB2ECE-9410-4C61-8B23-A0B2ECE647B7}
4 | 18.6
5 | VCL
6 | CreateWord.dpr
7 | True
8 | Debug
9 | Win32
10 | 1
11 | Application
12 |
13 |
14 | true
15 |
16 |
17 | true
18 | Base
19 | true
20 |
21 |
22 | true
23 | Base
24 | true
25 |
26 |
27 | true
28 | Base
29 | true
30 |
31 |
32 | true
33 | Cfg_1
34 | true
35 | true
36 |
37 |
38 | true
39 | Base
40 | true
41 |
42 |
43 | true
44 | Cfg_2
45 | true
46 | true
47 |
48 |
49 | .\$(Platform)\$(Config)
50 | .\$(Platform)\$(Config)
51 | false
52 | false
53 | false
54 | false
55 | false
56 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)
57 | $(BDS)\bin\delphi_PROJECTICON.ico
58 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
59 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
60 | CreateWord
61 |
62 |
63 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;svnui;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
64 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
65 | Debug
66 | true
67 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
68 | 1033
69 | $(BDS)\bin\default_app.manifest
70 |
71 |
72 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
73 |
74 |
75 | DEBUG;$(DCC_Define)
76 | true
77 | false
78 | true
79 | true
80 | true
81 |
82 |
83 | false
84 | true
85 | PerMonitorV2
86 |
87 |
88 | false
89 | RELEASE;$(DCC_Define)
90 | 0
91 | 0
92 |
93 |
94 | true
95 | PerMonitorV2
96 |
97 |
98 |
99 | MainSource
100 |
101 |
102 |
103 | dfm
104 |
105 |
106 | Cfg_2
107 | Base
108 |
109 |
110 | Base
111 |
112 |
113 | Cfg_1
114 | Base
115 |
116 |
117 |
118 | Delphi.Personality.12
119 | Application
120 |
121 |
122 |
123 | CreateWord.dpr
124 |
125 |
126 |
127 |
128 |
129 | CreateWord.exe
130 | true
131 |
132 |
133 |
134 |
135 | 1
136 |
137 |
138 | Contents\MacOS
139 | 1
140 |
141 |
142 | 0
143 |
144 |
145 |
146 |
147 | classes
148 | 1
149 |
150 |
151 |
152 |
153 | res\xml
154 | 1
155 |
156 |
157 |
158 |
159 | library\lib\armeabi-v7a
160 | 1
161 |
162 |
163 |
164 |
165 | library\lib\armeabi
166 | 1
167 |
168 |
169 |
170 |
171 | library\lib\mips
172 | 1
173 |
174 |
175 |
176 |
177 | library\lib\armeabi-v7a
178 | 1
179 |
180 |
181 |
182 |
183 | res\drawable
184 | 1
185 |
186 |
187 |
188 |
189 | res\values
190 | 1
191 |
192 |
193 |
194 |
195 | res\values-v21
196 | 1
197 |
198 |
199 |
200 |
201 | res\drawable
202 | 1
203 |
204 |
205 |
206 |
207 | res\drawable-xxhdpi
208 | 1
209 |
210 |
211 |
212 |
213 | res\drawable-ldpi
214 | 1
215 |
216 |
217 |
218 |
219 | res\drawable-mdpi
220 | 1
221 |
222 |
223 |
224 |
225 | res\drawable-hdpi
226 | 1
227 |
228 |
229 |
230 |
231 | res\drawable-xhdpi
232 | 1
233 |
234 |
235 |
236 |
237 | res\drawable-small
238 | 1
239 |
240 |
241 |
242 |
243 | res\drawable-normal
244 | 1
245 |
246 |
247 |
248 |
249 | res\drawable-large
250 | 1
251 |
252 |
253 |
254 |
255 | res\drawable-xlarge
256 | 1
257 |
258 |
259 |
260 |
261 | 1
262 |
263 |
264 | Contents\MacOS
265 | 1
266 |
267 |
268 | 0
269 |
270 |
271 |
272 |
273 | Contents\MacOS
274 | 1
275 | .framework
276 |
277 |
278 | Contents\MacOS
279 | 1
280 | .framework
281 |
282 |
283 | 0
284 |
285 |
286 |
287 |
288 | 1
289 | .dylib
290 |
291 |
292 | 1
293 | .dylib
294 |
295 |
296 | 1
297 | .dylib
298 |
299 |
300 | Contents\MacOS
301 | 1
302 | .dylib
303 |
304 |
305 | Contents\MacOS
306 | 1
307 | .dylib
308 |
309 |
310 | 0
311 | .dll;.bpl
312 |
313 |
314 |
315 |
316 | 1
317 | .dylib
318 |
319 |
320 | 1
321 | .dylib
322 |
323 |
324 | 1
325 | .dylib
326 |
327 |
328 | Contents\MacOS
329 | 1
330 | .dylib
331 |
332 |
333 | Contents\MacOS
334 | 1
335 | .dylib
336 |
337 |
338 | 0
339 | .bpl
340 |
341 |
342 |
343 |
344 | 0
345 |
346 |
347 | 0
348 |
349 |
350 | 0
351 |
352 |
353 | 0
354 |
355 |
356 | Contents\Resources\StartUp\
357 | 0
358 |
359 |
360 | Contents\Resources\StartUp\
361 | 0
362 |
363 |
364 | 0
365 |
366 |
367 |
368 |
369 | 1
370 |
371 |
372 | 1
373 |
374 |
375 | 1
376 |
377 |
378 |
379 |
380 | 1
381 |
382 |
383 | 1
384 |
385 |
386 | 1
387 |
388 |
389 |
390 |
391 | 1
392 |
393 |
394 | 1
395 |
396 |
397 | 1
398 |
399 |
400 |
401 |
402 | 1
403 |
404 |
405 | 1
406 |
407 |
408 | 1
409 |
410 |
411 |
412 |
413 | 1
414 |
415 |
416 | 1
417 |
418 |
419 | 1
420 |
421 |
422 |
423 |
424 | 1
425 |
426 |
427 | 1
428 |
429 |
430 | 1
431 |
432 |
433 |
434 |
435 | 1
436 |
437 |
438 | 1
439 |
440 |
441 | 1
442 |
443 |
444 |
445 |
446 | 1
447 |
448 |
449 |
450 |
451 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
452 | 1
453 |
454 |
455 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
456 | 1
457 |
458 |
459 |
460 |
461 | 1
462 |
463 |
464 | 1
465 |
466 |
467 |
468 |
469 | ..\
470 | 1
471 |
472 |
473 | ..\
474 | 1
475 |
476 |
477 |
478 |
479 | 1
480 |
481 |
482 | 1
483 |
484 |
485 | 1
486 |
487 |
488 |
489 |
490 | 1
491 |
492 |
493 | 1
494 |
495 |
496 | 1
497 |
498 |
499 |
500 |
501 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
502 | 1
503 |
504 |
505 |
506 |
507 | ..\
508 | 1
509 |
510 |
511 | ..\
512 | 1
513 |
514 |
515 |
516 |
517 | Contents
518 | 1
519 |
520 |
521 | Contents
522 | 1
523 |
524 |
525 |
526 |
527 | Contents\Resources
528 | 1
529 |
530 |
531 | Contents\Resources
532 | 1
533 |
534 |
535 |
536 |
537 | library\lib\armeabi-v7a
538 | 1
539 |
540 |
541 | 1
542 |
543 |
544 | 1
545 |
546 |
547 | 1
548 |
549 |
550 | 1
551 |
552 |
553 | Contents\MacOS
554 | 1
555 |
556 |
557 | Contents\MacOS
558 | 1
559 |
560 |
561 | 0
562 |
563 |
564 |
565 |
566 | 1
567 |
568 |
569 | 1
570 |
571 |
572 |
573 |
574 | Assets
575 | 1
576 |
577 |
578 | Assets
579 | 1
580 |
581 |
582 |
583 |
584 | Assets
585 | 1
586 |
587 |
588 | Assets
589 | 1
590 |
591 |
592 |
593 |
594 |
595 |
596 |
597 |
598 |
599 |
600 |
601 |
602 |
603 | True
604 | False
605 |
606 |
607 | 12
608 |
609 |
610 |
611 |
612 |
613 |
--------------------------------------------------------------------------------
/ComplexWord/ComplexWord.dproj:
--------------------------------------------------------------------------------
1 |
2 |
3 | {D76777DF-7571-41E2-BF42-1BF3B3EEDF4F}
4 | 18.6
5 | VCL
6 | ComplexWord.dpr
7 | True
8 | Debug
9 | Win32
10 | 1
11 | Application
12 |
13 |
14 | true
15 |
16 |
17 | true
18 | Base
19 | true
20 |
21 |
22 | true
23 | Base
24 | true
25 |
26 |
27 | true
28 | Base
29 | true
30 |
31 |
32 | true
33 | Cfg_1
34 | true
35 | true
36 |
37 |
38 | true
39 | Base
40 | true
41 |
42 |
43 | true
44 | Cfg_2
45 | true
46 | true
47 |
48 |
49 | .\$(Platform)\$(Config)
50 | .\$(Platform)\$(Config)
51 | false
52 | false
53 | false
54 | false
55 | false
56 | System;Xml;Data;Datasnap;Web;Soap;Vcl;Vcl.Imaging;Vcl.Touch;Vcl.Samples;Vcl.Shell;$(DCC_Namespace)
57 | $(BDS)\bin\delphi_PROJECTICON.ico
58 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png
59 | $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png
60 | ComplexWord
61 |
62 |
63 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;svnui;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;svn;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
64 | Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace)
65 | Debug
66 | true
67 | CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=
68 | 1033
69 | $(BDS)\bin\default_app.manifest
70 |
71 |
72 | DBXSqliteDriver;RESTComponents;fmxase;DBXDb2Driver;DBXInterBaseDriver;vclactnband;vclFireDAC;emsclientfiredac;tethering;DataSnapFireDAC;FireDACADSDriver;DBXMSSQLDriver;DatasnapConnectorsFreePascal;FireDACMSSQLDriver;vcltouch;vcldb;bindcompfmx;DBXOracleDriver;inetdb;FmxTeeUI;emsedge;fmx;FireDACIBDriver;fmxdae;FireDACDBXDriver;dbexpress;IndyCore;vclx;dsnap;emsclient;DataSnapCommon;FireDACCommon;RESTBackendComponents;DataSnapConnectors;VCLRESTComponents;soapserver;vclie;bindengine;DBXMySQLDriver;CloudService;FireDACOracleDriver;FireDACMySQLDriver;DBXFirebirdDriver;FireDACCommonODBC;FireDACCommonDriver;DataSnapClient;inet;IndyIPCommon;bindcompdbx;vcl;IndyIPServer;DBXSybaseASEDriver;IndySystem;FireDACDb2Driver;dsnapcon;FireDACMSAccDriver;fmxFireDAC;FireDACInfxDriver;vclimg;TeeDB;FireDAC;emshosting;FireDACSqliteDriver;FireDACPgDriver;FireDACASADriver;DBXOdbcDriver;FireDACTDataDriver;FMXTee;soaprtl;DbxCommonDriver;Tee;DataSnapServer;xmlrtl;soapmidas;DataSnapNativeClient;fmxobj;vclwinx;FireDACDSDriver;rtl;emsserverresource;DbxClientDriver;DBXSybaseASADriver;CustomIPTransport;vcldsnap;bindcomp;appanalytics;DBXInformixDriver;IndyIPClient;bindcompvcl;TeeUI;dbxcds;VclSmp;adortl;FireDACODBCDriver;DataSnapIndy10ServerTransport;dsnapxml;DataSnapProviderClient;dbrtl;IndyProtocols;inetdbxpress;FireDACMongoDBDriver;DataSnapServerMidas;$(DCC_UsePackage)
73 |
74 |
75 | DEBUG;$(DCC_Define)
76 | true
77 | false
78 | true
79 | true
80 | true
81 |
82 |
83 | false
84 | true
85 | PerMonitorV2
86 |
87 |
88 | false
89 | RELEASE;$(DCC_Define)
90 | 0
91 | 0
92 |
93 |
94 | true
95 | PerMonitorV2
96 |
97 |
98 |
99 | MainSource
100 |
101 |
102 |
103 | dfm
104 |
105 |
106 | Cfg_2
107 | Base
108 |
109 |
110 | Base
111 |
112 |
113 | Cfg_1
114 | Base
115 |
116 |
117 |
118 | Delphi.Personality.12
119 | Application
120 |
121 |
122 |
123 | ComplexWord.dpr
124 |
125 |
126 |
127 |
128 |
129 | ComplexWord.exe
130 | true
131 |
132 |
133 |
134 |
135 | 1
136 |
137 |
138 | Contents\MacOS
139 | 1
140 |
141 |
142 | 0
143 |
144 |
145 |
146 |
147 | classes
148 | 1
149 |
150 |
151 |
152 |
153 | res\xml
154 | 1
155 |
156 |
157 |
158 |
159 | library\lib\armeabi-v7a
160 | 1
161 |
162 |
163 |
164 |
165 | library\lib\armeabi
166 | 1
167 |
168 |
169 |
170 |
171 | library\lib\mips
172 | 1
173 |
174 |
175 |
176 |
177 | library\lib\armeabi-v7a
178 | 1
179 |
180 |
181 |
182 |
183 | res\drawable
184 | 1
185 |
186 |
187 |
188 |
189 | res\values
190 | 1
191 |
192 |
193 |
194 |
195 | res\values-v21
196 | 1
197 |
198 |
199 |
200 |
201 | res\drawable
202 | 1
203 |
204 |
205 |
206 |
207 | res\drawable-xxhdpi
208 | 1
209 |
210 |
211 |
212 |
213 | res\drawable-ldpi
214 | 1
215 |
216 |
217 |
218 |
219 | res\drawable-mdpi
220 | 1
221 |
222 |
223 |
224 |
225 | res\drawable-hdpi
226 | 1
227 |
228 |
229 |
230 |
231 | res\drawable-xhdpi
232 | 1
233 |
234 |
235 |
236 |
237 | res\drawable-small
238 | 1
239 |
240 |
241 |
242 |
243 | res\drawable-normal
244 | 1
245 |
246 |
247 |
248 |
249 | res\drawable-large
250 | 1
251 |
252 |
253 |
254 |
255 | res\drawable-xlarge
256 | 1
257 |
258 |
259 |
260 |
261 | 1
262 |
263 |
264 | Contents\MacOS
265 | 1
266 |
267 |
268 | 0
269 |
270 |
271 |
272 |
273 | Contents\MacOS
274 | 1
275 | .framework
276 |
277 |
278 | Contents\MacOS
279 | 1
280 | .framework
281 |
282 |
283 | 0
284 |
285 |
286 |
287 |
288 | 1
289 | .dylib
290 |
291 |
292 | 1
293 | .dylib
294 |
295 |
296 | 1
297 | .dylib
298 |
299 |
300 | Contents\MacOS
301 | 1
302 | .dylib
303 |
304 |
305 | Contents\MacOS
306 | 1
307 | .dylib
308 |
309 |
310 | 0
311 | .dll;.bpl
312 |
313 |
314 |
315 |
316 | 1
317 | .dylib
318 |
319 |
320 | 1
321 | .dylib
322 |
323 |
324 | 1
325 | .dylib
326 |
327 |
328 | Contents\MacOS
329 | 1
330 | .dylib
331 |
332 |
333 | Contents\MacOS
334 | 1
335 | .dylib
336 |
337 |
338 | 0
339 | .bpl
340 |
341 |
342 |
343 |
344 | 0
345 |
346 |
347 | 0
348 |
349 |
350 | 0
351 |
352 |
353 | 0
354 |
355 |
356 | Contents\Resources\StartUp\
357 | 0
358 |
359 |
360 | Contents\Resources\StartUp\
361 | 0
362 |
363 |
364 | 0
365 |
366 |
367 |
368 |
369 | 1
370 |
371 |
372 | 1
373 |
374 |
375 | 1
376 |
377 |
378 |
379 |
380 | 1
381 |
382 |
383 | 1
384 |
385 |
386 | 1
387 |
388 |
389 |
390 |
391 | 1
392 |
393 |
394 | 1
395 |
396 |
397 | 1
398 |
399 |
400 |
401 |
402 | 1
403 |
404 |
405 | 1
406 |
407 |
408 | 1
409 |
410 |
411 |
412 |
413 | 1
414 |
415 |
416 | 1
417 |
418 |
419 | 1
420 |
421 |
422 |
423 |
424 | 1
425 |
426 |
427 | 1
428 |
429 |
430 | 1
431 |
432 |
433 |
434 |
435 | 1
436 |
437 |
438 | 1
439 |
440 |
441 | 1
442 |
443 |
444 |
445 |
446 | 1
447 |
448 |
449 |
450 |
451 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
452 | 1
453 |
454 |
455 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
456 | 1
457 |
458 |
459 |
460 |
461 | 1
462 |
463 |
464 | 1
465 |
466 |
467 |
468 |
469 | ..\
470 | 1
471 |
472 |
473 | ..\
474 | 1
475 |
476 |
477 |
478 |
479 | 1
480 |
481 |
482 | 1
483 |
484 |
485 | 1
486 |
487 |
488 |
489 |
490 | 1
491 |
492 |
493 | 1
494 |
495 |
496 | 1
497 |
498 |
499 |
500 |
501 | ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF
502 | 1
503 |
504 |
505 |
506 |
507 | ..\
508 | 1
509 |
510 |
511 | ..\
512 | 1
513 |
514 |
515 |
516 |
517 | Contents
518 | 1
519 |
520 |
521 | Contents
522 | 1
523 |
524 |
525 |
526 |
527 | Contents\Resources
528 | 1
529 |
530 |
531 | Contents\Resources
532 | 1
533 |
534 |
535 |
536 |
537 | library\lib\armeabi-v7a
538 | 1
539 |
540 |
541 | 1
542 |
543 |
544 | 1
545 |
546 |
547 | 1
548 |
549 |
550 | 1
551 |
552 |
553 | Contents\MacOS
554 | 1
555 |
556 |
557 | Contents\MacOS
558 | 1
559 |
560 |
561 | 0
562 |
563 |
564 |
565 |
566 | 1
567 |
568 |
569 | 1
570 |
571 |
572 |
573 |
574 | Assets
575 | 1
576 |
577 |
578 | Assets
579 | 1
580 |
581 |
582 |
583 |
584 | Assets
585 | 1
586 |
587 |
588 | Assets
589 | 1
590 |
591 |
592 |
593 |
594 |
595 |
596 |
597 |
598 |
599 |
600 |
601 |
602 |
603 | True
604 | False
605 |
606 |
607 | 12
608 |
609 |
610 |
611 |
612 |
613 |
--------------------------------------------------------------------------------