diff --git a/Demos/Main/1.fr3 b/Demos/Main/1.fr3 new file mode 100644 index 0000000..e47ae09 --- /dev/null +++ b/Demos/Main/1.fr3 @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/10.FR3 b/Demos/Main/10.FR3 new file mode 100644 index 0000000..d5daf62 --- /dev/null +++ b/Demos/Main/10.FR3 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/100.fr3 b/Demos/Main/100.fr3 new file mode 100644 index 0000000..e3975c1 --- /dev/null +++ b/Demos/Main/100.fr3 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/101.fr3 b/Demos/Main/101.fr3 new file mode 100644 index 0000000..8970f93 --- /dev/null +++ b/Demos/Main/101.fr3 @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/102.fr3 b/Demos/Main/102.fr3 new file mode 100644 index 0000000..63404ce --- /dev/null +++ b/Demos/Main/102.fr3 @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/Demos/Main/103.fr3 b/Demos/Main/103.fr3 new file mode 100644 index 0000000..7aba74f --- /dev/null +++ b/Demos/Main/103.fr3 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Demos/Main/104.fr3 b/Demos/Main/104.fr3 new file mode 100644 index 0000000..2cfd896 --- /dev/null +++ b/Demos/Main/104.fr3 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/105.fr3 b/Demos/Main/105.fr3 new file mode 100644 index 0000000..f7ce1c2 --- /dev/null +++ b/Demos/Main/105.fr3 @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/11.FR3 b/Demos/Main/11.FR3 new file mode 100644 index 0000000..99cfe40 --- /dev/null +++ b/Demos/Main/11.FR3 @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/12.FR3 b/Demos/Main/12.FR3 new file mode 100644 index 0000000..1c3c784 --- /dev/null +++ b/Demos/Main/12.FR3 @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/13.fr3 b/Demos/Main/13.fr3 new file mode 100644 index 0000000..406ca2d --- /dev/null +++ b/Demos/Main/13.fr3 @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/Demos/Main/2.fr3 b/Demos/Main/2.fr3 new file mode 100644 index 0000000..13fec8d --- /dev/null +++ b/Demos/Main/2.fr3 @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/21.FR3 b/Demos/Main/21.FR3 new file mode 100644 index 0000000..b4f242c --- /dev/null +++ b/Demos/Main/21.FR3 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Demos/Main/22.FR3 b/Demos/Main/22.FR3 new file mode 100644 index 0000000..2c02662 --- /dev/null +++ b/Demos/Main/22.FR3 @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/23.FR3 b/Demos/Main/23.FR3 new file mode 100644 index 0000000..6db8851 --- /dev/null +++ b/Demos/Main/23.FR3 @@ -0,0 +1,6 @@ + + + + + + diff --git a/Demos/Main/24.FR3 b/Demos/Main/24.FR3 new file mode 100644 index 0000000..497997a --- /dev/null +++ b/Demos/Main/24.FR3 @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/25.fr3 b/Demos/Main/25.fr3 new file mode 100644 index 0000000..860bcff --- /dev/null +++ b/Demos/Main/25.fr3 @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/3.fr3 b/Demos/Main/3.fr3 new file mode 100644 index 0000000..200445e --- /dev/null +++ b/Demos/Main/3.fr3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/31.fr3 b/Demos/Main/31.fr3 new file mode 100644 index 0000000..43e20bd --- /dev/null +++ b/Demos/Main/31.fr3 @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/32.fr3 b/Demos/Main/32.fr3 new file mode 100644 index 0000000..9aded9c --- /dev/null +++ b/Demos/Main/32.fr3 @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/Demos/Main/33.FR3 b/Demos/Main/33.FR3 new file mode 100644 index 0000000..151d745 --- /dev/null +++ b/Demos/Main/33.FR3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/34.FR3 b/Demos/Main/34.FR3 new file mode 100644 index 0000000..2cf389e --- /dev/null +++ b/Demos/Main/34.FR3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/35.fr3 b/Demos/Main/35.fr3 new file mode 100644 index 0000000..fa1fe47 --- /dev/null +++ b/Demos/Main/35.fr3 @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/36.fr3 b/Demos/Main/36.fr3 new file mode 100644 index 0000000..73137f5 --- /dev/null +++ b/Demos/Main/36.fr3 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/4.FR3 b/Demos/Main/4.FR3 new file mode 100644 index 0000000..ed9c679 --- /dev/null +++ b/Demos/Main/4.FR3 @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/41.FR3 b/Demos/Main/41.FR3 new file mode 100644 index 0000000..341d8fe --- /dev/null +++ b/Demos/Main/41.FR3 @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/Demos/Main/42.FR3 b/Demos/Main/42.FR3 new file mode 100644 index 0000000..fcc981a --- /dev/null +++ b/Demos/Main/42.FR3 @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/Demos/Main/43.FR3 b/Demos/Main/43.FR3 new file mode 100644 index 0000000..e600a0c --- /dev/null +++ b/Demos/Main/43.FR3 @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/Demos/Main/5.FR3 b/Demos/Main/5.FR3 new file mode 100644 index 0000000..07c29bb --- /dev/null +++ b/Demos/Main/5.FR3 @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/Demos/Main/6.FR3 b/Demos/Main/6.FR3 new file mode 100644 index 0000000..8b049bf --- /dev/null +++ b/Demos/Main/6.FR3 @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/60.fr3 b/Demos/Main/60.fr3 new file mode 100644 index 0000000..1b25a7c --- /dev/null +++ b/Demos/Main/60.fr3 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Demos/Main/61.FR3 b/Demos/Main/61.FR3 new file mode 100644 index 0000000..770db68 --- /dev/null +++ b/Demos/Main/61.FR3 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Demos/Main/62.FR3 b/Demos/Main/62.FR3 new file mode 100644 index 0000000..7fb6cb7 --- /dev/null +++ b/Demos/Main/62.FR3 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Demos/Main/63.FR3 b/Demos/Main/63.FR3 new file mode 100644 index 0000000..062df9c --- /dev/null +++ b/Demos/Main/63.FR3 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Demos/Main/64.FR3 b/Demos/Main/64.FR3 new file mode 100644 index 0000000..bb5dff2 --- /dev/null +++ b/Demos/Main/64.FR3 @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/65.FR3 b/Demos/Main/65.FR3 new file mode 100644 index 0000000..43e5746 --- /dev/null +++ b/Demos/Main/65.FR3 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Demos/Main/66.FR3 b/Demos/Main/66.FR3 new file mode 100644 index 0000000..ef4d006 --- /dev/null +++ b/Demos/Main/66.FR3 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Demos/Main/67.FR3 b/Demos/Main/67.FR3 new file mode 100644 index 0000000..28ee795 --- /dev/null +++ b/Demos/Main/67.FR3 @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/68.FR3 b/Demos/Main/68.FR3 new file mode 100644 index 0000000..40b99f0 --- /dev/null +++ b/Demos/Main/68.FR3 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Demos/Main/69.FR3 b/Demos/Main/69.FR3 new file mode 100644 index 0000000..fdd8e27 --- /dev/null +++ b/Demos/Main/69.FR3 @@ -0,0 +1,7 @@ + + + + + + + diff --git a/Demos/Main/7.FR3 b/Demos/Main/7.FR3 new file mode 100644 index 0000000..717f0bc --- /dev/null +++ b/Demos/Main/7.FR3 @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/Demos/Main/70.fr3 b/Demos/Main/70.fr3 new file mode 100644 index 0000000..f665600 --- /dev/null +++ b/Demos/Main/70.fr3 @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/71.fr3 b/Demos/Main/71.fr3 new file mode 100644 index 0000000..9dcec19 --- /dev/null +++ b/Demos/Main/71.fr3 @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/72.fr3 b/Demos/Main/72.fr3 new file mode 100644 index 0000000..8bca00f --- /dev/null +++ b/Demos/Main/72.fr3 @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/73.fr3 b/Demos/Main/73.fr3 new file mode 100644 index 0000000..ae9209e --- /dev/null +++ b/Demos/Main/73.fr3 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Demos/Main/8.FR3 b/Demos/Main/8.FR3 new file mode 100644 index 0000000..a033d7a --- /dev/null +++ b/Demos/Main/8.FR3 @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/80.fr3 b/Demos/Main/80.fr3 new file mode 100644 index 0000000..1e8f33a --- /dev/null +++ b/Demos/Main/80.fr3 @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/81.fr3 b/Demos/Main/81.fr3 new file mode 100644 index 0000000..751707a --- /dev/null +++ b/Demos/Main/81.fr3 @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/82.fr3 b/Demos/Main/82.fr3 new file mode 100644 index 0000000..71b2341 --- /dev/null +++ b/Demos/Main/82.fr3 @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/Demos/Main/9.FR3 b/Demos/Main/9.FR3 new file mode 100644 index 0000000..ba748c3 --- /dev/null +++ b/Demos/Main/9.FR3 @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/93.fr3 b/Demos/Main/93.fr3 new file mode 100644 index 0000000..b6d090b --- /dev/null +++ b/Demos/Main/93.fr3 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/94.fr3 b/Demos/Main/94.fr3 new file mode 100644 index 0000000..cbb99ac --- /dev/null +++ b/Demos/Main/94.fr3 @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/95.fr3 b/Demos/Main/95.fr3 new file mode 100644 index 0000000..0c091f4 --- /dev/null +++ b/Demos/Main/95.fr3 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/96.fr3 b/Demos/Main/96.fr3 new file mode 100644 index 0000000..dcdafec --- /dev/null +++ b/Demos/Main/96.fr3 @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/97.fr3 b/Demos/Main/97.fr3 new file mode 100644 index 0000000..2119aab --- /dev/null +++ b/Demos/Main/97.fr3 @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/98.fr3 b/Demos/Main/98.fr3 new file mode 100644 index 0000000..5617873 --- /dev/null +++ b/Demos/Main/98.fr3 @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/99.fr3 b/Demos/Main/99.fr3 new file mode 100644 index 0000000..458f26b --- /dev/null +++ b/Demos/Main/99.fr3 @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Demos/Main/Data/biolife.xml b/Demos/Main/Data/biolife.xml new file mode 100644 index 0000000..ba0304a --- /dev/null +++ b/Demos/Main/Data/biolife.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/country.xml b/Demos/Main/Data/country.xml new file mode 100644 index 0000000..86224ec --- /dev/null +++ b/Demos/Main/Data/country.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/crosstest.xml b/Demos/Main/Data/crosstest.xml new file mode 100644 index 0000000..aa54760 --- /dev/null +++ b/Demos/Main/Data/crosstest.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/currency_quoting.xml b/Demos/Main/Data/currency_quoting.xml new file mode 100644 index 0000000..b04c275 --- /dev/null +++ b/Demos/Main/Data/currency_quoting.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/customer.xml b/Demos/Main/Data/customer.xml new file mode 100644 index 0000000..eacfb9f --- /dev/null +++ b/Demos/Main/Data/customer.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/customer_query.xml b/Demos/Main/Data/customer_query.xml new file mode 100644 index 0000000..c03c78b --- /dev/null +++ b/Demos/Main/Data/customer_query.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/employee.xml b/Demos/Main/Data/employee.xml new file mode 100644 index 0000000..233020a --- /dev/null +++ b/Demos/Main/Data/employee.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/items.xml b/Demos/Main/Data/items.xml new file mode 100644 index 0000000..e764f8b --- /dev/null +++ b/Demos/Main/Data/items.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/nextcust.xml b/Demos/Main/Data/nextcust.xml new file mode 100644 index 0000000..08fdbe4 --- /dev/null +++ b/Demos/Main/Data/nextcust.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/nextitem.xml b/Demos/Main/Data/nextitem.xml new file mode 100644 index 0000000..b809135 --- /dev/null +++ b/Demos/Main/Data/nextitem.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/nextord.xml b/Demos/Main/Data/nextord.xml new file mode 100644 index 0000000..ec8aae1 --- /dev/null +++ b/Demos/Main/Data/nextord.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/orders.xml b/Demos/Main/Data/orders.xml new file mode 100644 index 0000000..1ef206e --- /dev/null +++ b/Demos/Main/Data/orders.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/parts.xml b/Demos/Main/Data/parts.xml new file mode 100644 index 0000000..cebe67d --- /dev/null +++ b/Demos/Main/Data/parts.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/unicode.xml b/Demos/Main/Data/unicode.xml new file mode 100644 index 0000000..615b696 --- /dev/null +++ b/Demos/Main/Data/unicode.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Data/vendors.xml b/Demos/Main/Data/vendors.xml new file mode 100644 index 0000000..9d89de5 --- /dev/null +++ b/Demos/Main/Data/vendors.xml @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Project1.deployproj b/Demos/Main/Project1.deployproj new file mode 100644 index 0000000..e124f86 --- /dev/null +++ b/Demos/Main/Project1.deployproj @@ -0,0 +1,1449 @@ + + + + 12 + + + + + + + + + + + + Project1\ + Project1.exe + ProjectOutput + 0 + + + True + True + + + + + Project1\ + 7.FR3 + File + 0 + + + True + + + Project1\ + 35.fr3 + File + 0 + + + True + + + Project1\ + 61.FR3 + File + 0 + + + True + + + Project1\ + 21.FR3 + File + 0 + + + True + + + Project1\ + 65.FR3 + File + 0 + + + True + + + Project1\ + 96.fr3 + File + 0 + + + True + + + Project1\ + awards.png + File + 0 + + + True + + + Project1\ + 3.fr3 + File + 0 + + + True + + + Project1\ + 12.FR3 + File + 0 + + + True + + + Project1\ + 66.FR3 + File + 0 + + + True + + + Project1\ + 67.FR3 + File + 0 + + + True + + + Project1\ + 102.fr3 + File + 0 + + + True + + + Project1\ + 99.fr3 + File + 0 + + + True + + + Project1\Data\ + nextitem.xml + File + 0 + + + True + + + Project1\ + 69.FR3 + File + 0 + + + True + + + Project1\ + 68.FR3 + File + 0 + + + True + + + Project1\ + 94.fr3 + File + 0 + + + True + + + Project1\Data\ + nextcust.xml + File + 0 + + + True + + + Project1\Data\ + items.xml + File + 0 + + + True + + + Project1\Data\ + orders.xml + File + 0 + + + True + + + Project1\Data\ + vendors.xml + File + 0 + + + True + + + Project1\ + 36.fr3 + File + 0 + + + True + + + Project1\ + 41.FR3 + File + 0 + + + True + + + Project1\ + 33.FR3 + File + 0 + + + True + + + Project1\ + 104.fr3 + File + 0 + + + True + + + Project1\Data\ + customer_query.xml + File + 0 + + + True + + + Project1\ + 80.fr3 + File + 0 + + + True + + + Project1\ + 34.FR3 + File + 0 + + + True + + + Project1\Data\ + currency_quoting.xml + File + 0 + + + True + + + Project1\ + Project1 + ProjectOutput + 1 + + + True + True + + + Project1\ + 9.FR3 + File + 0 + + + True + + + Project1\ + 93.fr3 + File + 0 + + + True + + + Project1\ + 98.fr3 + File + 0 + + + True + + + Project1\ + 2.fr3 + File + 0 + + + True + + + Project1\ + 24.FR3 + File + 0 + + + True + + + Project1\ + 43.FR3 + File + 0 + + + True + + + Project1\Data\ + biolife.xml + File + 0 + + + True + + + Project1\Data\ + unicode.xml + File + 0 + + + True + + + Project1\ + 81.fr3 + File + 0 + + + True + + + Project1\ + 97.fr3 + File + 0 + + + True + + + Project1\ + 73.fr3 + File + 0 + + + True + + + Project1\ + 101.fr3 + File + 0 + + + True + + + Project1\ + 95.fr3 + File + 0 + + + True + + + Project1\ + 100.fr3 + File + 0 + + + True + + + Project1\ + 22.FR3 + File + 0 + + + True + + + Project1\ + 23.FR3 + File + 0 + + + True + + + Project1\ + 31.fr3 + File + 0 + + + True + + + Project1\ + 64.FR3 + File + 0 + + + True + + + Project1\ + 71.fr3 + File + 0 + + + True + + + Project1\Data\ + crosstest.xml + File + 0 + + + True + + + Project1\ + 5.FR3 + File + 0 + + + True + + + Project1\ + 63.FR3 + File + 0 + + + True + + + Project1\ + 70.fr3 + File + 0 + + + True + + + Project1\Data\ + customer.xml + File + 0 + + + True + + + Project1\ + 82.fr3 + File + 0 + + + True + + + Project1\ + 1.fr3 + File + 0 + + + True + + + Project1\ + 25.fr3 + File + 0 + + + True + + + Project1\ + 72.fr3 + File + 0 + + + True + + + Project1\ + 10.FR3 + File + 0 + + + True + + + Project1\ + 11.FR3 + File + 0 + + + True + + + Project1\ + libmidas.so.2 + File + 0 + + + True + + + Project1\ + 13.fr3 + File + 0 + + + True + + + Project1\ + 60.fr3 + File + 0 + + + True + + + Project1\Data\ + parts.xml + File + 0 + + + True + + + Project1\ + 32.fr3 + File + 0 + + + True + + + Project1\ + 62.FR3 + File + 0 + + + True + + + Project1\Data\ + employee.xml + File + 0 + + + True + + + Project1\Data\ + country.xml + File + 0 + + + True + + + Project1\ + 42.FR3 + File + 0 + + + True + + + Project1\ + 105.fr3 + File + 0 + + + True + + + Project1\ + 103.fr3 + File + 0 + + + True + + + Project1\ + 4.FR3 + File + 0 + + + True + + + Project1\ + 6.FR3 + File + 0 + + + True + + + Project1\ + 8.FR3 + File + 0 + + + True + + + Project1\Data\ + nextord.xml + File + 0 + + + True + + + + + Project1.app\Contents\MacOS\ + 94.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 100.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 25.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 70.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 32.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 82.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 41.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 96.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 73.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 34.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + unicode.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + parts.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 23.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 35.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 80.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 65.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 2.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 98.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 36.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + vendors.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + nextitem.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + libmidas.dylib + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + nextord.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 64.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 21.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + orders.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + items.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + crosstest.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + customer_query.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 72.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 66.FR3 + File + 0 + + + True + + + Project1.app\Contents\ + Info.plist + ProjectOSXInfoPList + 1 + + + True + + + Project1.app\..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF\ + Project1 + ProjectOSXDebug + 1 + + + True + + + Project1.app\Contents\MacOS\ + 3.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 11.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 13.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 61.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 5.FR3 + File + 0 + + + True + + + Project1.app\..\ + Project1.entitlements + ProjectOSXEntitlements + 1 + + + True + + + Project1.app\Contents\MacOS\ + 67.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 97.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + currency_quoting.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 63.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 71.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + Project1 + ProjectOutput + 1 + + + True + True + + + Project1.app\Contents\MacOS\ + 101.fr3 + File + 0 + + + True + + + Project1.app\Contents\Resources\ + Project1.icns + ProjectOSXResource + 1 + + + True + + + Project1.app\Contents\MacOS\ + 60.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 99.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 12.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 33.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 62.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 95.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 8.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 105.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + awards.png + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 10.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 104.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 24.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 103.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 43.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 7.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + libmidas.dylib + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + biolife.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 22.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 69.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 81.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 42.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 31.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 9.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 93.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + country.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 1.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + employee.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 68.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 4.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 102.fr3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + customer.xml + File + 0 + + + True + + + Project1.app\Contents\MacOS\ + 6.FR3 + File + 0 + + + True + + + Project1.app\Contents\MacOS\Data\ + nextcust.xml + File + 0 + + + True + + + + + + Project1.app\ + libcgunwind.1.0.dylib + DependencyModule + 1 + + + True + + + Project1.app\ + libpcre.dylib + DependencyModule + 1 + + + True + + + + diff --git a/Demos/Main/Project1.dpr b/Demos/Main/Project1.dpr new file mode 100644 index 0000000..b7540a2 --- /dev/null +++ b/Demos/Main/Project1.dpr @@ -0,0 +1,17 @@ +program Project1; +uses + FMX.Forms, + FMX.Types, + Unit2 in 'Unit2.pas' {Form2}, + Unit3 in 'Unit3.pas' {DataModule3: TDataModule}; + +{$R *.res} + +begin + + GlobalUseDirect2D := False; + Application.Initialize; + Application.CreateForm(TDataModule3, DataModule3); + Application.CreateForm(TForm2, Form2); + Application.Run; +end. diff --git a/Demos/Main/Project1.dproj b/Demos/Main/Project1.dproj new file mode 100644 index 0000000..5da5c1b --- /dev/null +++ b/Demos/Main/Project1.dproj @@ -0,0 +1,1536 @@ + + + {C4BF2255-45AC-4C6F-8A35-10B1653A42E5} + Project1.dpr + True + Debug + 4225 + Application + FMX + 18.7 + Linux64 + Ubuntu 18.04 LTS + ubuntu18.04.sdk + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + false + false + false + false + false + 00400000 + Project1 + 1049 + CompanyName=;FileDescription=;FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=;ProductVersion=1.0.0.0;Comments=;CFBundleName= + System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) + $(BDS)\bin\delphi_PROJECTICON.ico + $(BDS)\bin\delphi_PROJECTICNS.icns + + + package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= + Debug + true + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png + true + true + true + true + true + true + true + true + true + true + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_24x24.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_NotificationIcon_96x96.png + android-support-v4.dex.jar;cloud-messaging.dex.jar;com-google-android-gms.play-services-ads-base.17.2.0.dex.jar;com-google-android-gms.play-services-ads-identifier.16.0.0.dex.jar;com-google-android-gms.play-services-ads-lite.17.2.0.dex.jar;com-google-android-gms.play-services-ads.17.2.0.dex.jar;com-google-android-gms.play-services-analytics-impl.16.0.8.dex.jar;com-google-android-gms.play-services-analytics.16.0.8.dex.jar;com-google-android-gms.play-services-base.16.0.1.dex.jar;com-google-android-gms.play-services-basement.16.2.0.dex.jar;com-google-android-gms.play-services-gass.17.2.0.dex.jar;com-google-android-gms.play-services-identity.16.0.0.dex.jar;com-google-android-gms.play-services-maps.16.1.0.dex.jar;com-google-android-gms.play-services-measurement-base.16.4.0.dex.jar;com-google-android-gms.play-services-measurement-sdk-api.16.4.0.dex.jar;com-google-android-gms.play-services-stats.16.0.1.dex.jar;com-google-android-gms.play-services-tagmanager-v4-impl.16.0.8.dex.jar;com-google-android-gms.play-services-tasks.16.0.1.dex.jar;com-google-android-gms.play-services-wallet.16.0.1.dex.jar;com-google-firebase.firebase-analytics.16.4.0.dex.jar;com-google-firebase.firebase-common.16.1.0.dex.jar;com-google-firebase.firebase-iid-interop.16.0.1.dex.jar;com-google-firebase.firebase-iid.17.1.1.dex.jar;com-google-firebase.firebase-measurement-connector.17.0.1.dex.jar;com-google-firebase.firebase-messaging.17.5.0.dex.jar;fmx.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar + + + CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false + iPhoneAndiPad + true + Debug + $(MSBuildProjectName) + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1125x2436.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2436x1125.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_828x1792.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1136x640.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2688.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1334x750.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1792x828.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2688x1242.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1668x2224.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1668x2388.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_2048x2732.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2224x1668.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2388x1668.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2732x2048.png + + + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1125x2436.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2436x1125.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_828x1792.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1136x640.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2688.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1334x750.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1792x828.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2688x1242.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1668x2224.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1668x2388.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_2048x2732.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2224x1668.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2388x1668.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2732x2048.png + + + CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri;ITSAppUsesNonExemptEncryption=false + iPhoneAndiPad + true + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1125x2436.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2436x1125.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_120x120.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_828x1792.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1136x640.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2688.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1334x750.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1792x828.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2688x1242.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_167x167.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1668x2224.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1668x2388.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_2048x2732.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2224x1668.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2388x1668.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2732x2048.png + + + $(BDS)\bin\delphi_PROJECTICNS.icns + + + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments=;ProgramID=com.embarcadero.$(MSBuildProjectName) + 1033 + $(BDS)\bin\default_app.manifest + true + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + + + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + + + RELEASE;$(DCC_Define) + 0 + false + 0 + + + true + PerMonitorV2 + + + DEBUG;$(DCC_Define) + false + true + + + true + + + Debug + + + true + + + $(BDS)\bin\delphi_PROJECTICNS.icns + + + Debug + + + true + PerMonitorV2 + + + + MainSource + + +
Form2
+
+ +
DataModule3
+ TDataModule +
+ + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + +
+ + Delphi.Personality.12 + + + + + Project1.dpr + + + + False + False + False + False + True + False + True + True + False + + + + + 73.fr3 + true + + + + + 101.fr3 + true + + + + + 7.FR3 + true + + + + + 95.fr3 + true + + + + + 100.fr3 + true + + + + + 35.fr3 + true + + + + + 22.FR3 + true + + + + + 31.fr3 + true + + + + + 61.FR3 + true + + + + + 64.FR3 + true + + + + + 71.fr3 + true + + + + + 23.FR3 + true + + + + + .\Data\ + crosstest.xml + true + + + + + 21.FR3 + true + + + + + 65.FR3 + true + + + + + 5.FR3 + true + + + + + 96.fr3 + true + + + + + awards.png + true + + + + + 3.fr3 + true + + + + + 63.FR3 + true + + + + + 12.FR3 + true + + + + + 66.FR3 + true + + + + + 67.FR3 + true + + + + + 102.fr3 + true + + + + + 99.fr3 + true + + + + + .\Data\ + nextitem.xml + true + + + + + 69.FR3 + true + + + + + 70.fr3 + true + + + + + 68.FR3 + true + + + + + true + + + + + .\Data\ + customer.xml + true + + + + + 94.fr3 + true + + + + + .\Data\ + nextcust.xml + true + + + + + 82.fr3 + true + + + + + true + + + + + 1.fr3 + true + + + + + .\Data\ + items.xml + true + + + + + 25.fr3 + true + + + + + 72.fr3 + true + + + + + .\Data\ + orders.xml + true + + + + + 36.fr3 + true + + + + + .\Data\ + vendors.xml + true + + + + + 41.FR3 + true + + + + + 11.FR3 + true + + + + + 10.FR3 + true + + + + + libmidas.so.2 + true + + + + + 13.fr3 + true + + + + + 60.fr3 + true + + + + + 33.FR3 + true + + + + + .\Data\ + parts.xml + true + + + + + 32.fr3 + true + + + + + 104.fr3 + true + + + + + 62.FR3 + true + + + + + .\Data\ + employee.xml + true + + + + + .\Data\ + country.xml + true + + + + + 42.FR3 + true + + + + + .\Data\ + customer_query.xml + true + + + + + 80.fr3 + true + + + + + 105.fr3 + true + + + + + 34.FR3 + true + + + + + 103.fr3 + true + + + + + 4.FR3 + true + + + + + .\Data\ + currency_quoting.xml + true + + + + + true + + + + + Project1 + true + + + + + 6.FR3 + true + + + + + 9.FR3 + true + + + + + 2.fr3 + true + + + + + 93.fr3 + true + + + + + 98.fr3 + true + + + + + 24.FR3 + true + + + + + Project1.exe + true + + + + + 8.FR3 + true + + + + + 43.FR3 + true + + + + + .\Data\ + nextord.xml + true + + + + + .\Data\ + biolife.xml + true + + + + + .\Data\ + unicode.xml + true + + + + + 81.fr3 + true + + + + + 97.fr3 + true + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + classes + 1 + + + + + res\xml + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\armeabi + 1 + + + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + + + res\values + 1 + + + + + res\values-v21 + 1 + + + + + res\values + 1 + + + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-xxxhdpi + 1 + + + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + + + res\values + 1 + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + 0 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + 1 + + + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + + + Contents + 1 + + + Contents + 1 + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + + + + + + + + + + 12 + + + + +
diff --git a/Demos/Main/Project1.res b/Demos/Main/Project1.res new file mode 100644 index 0000000..36f26e2 Binary files /dev/null and b/Demos/Main/Project1.res differ diff --git a/Demos/Main/Unit2.fmx b/Demos/Main/Unit2.fmx new file mode 100644 index 0000000..d731256 --- /dev/null +++ b/Demos/Main/Unit2.fmx @@ -0,0 +1,735 @@ +object Form2: TForm2 + Tag = 42 + Left = 0 + Top = 0 + BorderStyle = bsSingle + Caption = 'FastReport for Firemonkey' + ClientHeight = 561 + ClientWidth = 567 + OnCreate = FormCreate + object ToolBar1: TToolBar + Align = alMostTop + Height = 67.000000000000000000 + Width = 567.000000000000000000 + object Image1: TImage + Bitmap.PNG = { + 89504E470D0A1A0A0000000D4948445200000040000000400806000000AA6971 + DE000013E249444154785EE55B7950D675B767154410455C90555476D9641511 + 01C17D4DC50541710BCD5D7349DC454184877D5F15DCC8356DBDDD32D3D79A6E + B7A96E534DDDA6E9BE4DF76D6A6A7AFFFEDCF3F9C2030F28CFEFC19CE91D6F33 + 6734447CCEE77BBEE77CCEE79CAFB9999919C4FE5FFF4700909090A06CCA9429 + 5D161F1F0FBD4D9E3C197A8B8B8B83B2499330A9D3626363418B898951161D1D + DD65515151A04546462A8B8888503671E2444C0C0F47B858585898B2D0D05065 + 212121CA828383954D983001414141CA0203039505040420C0DF1FFE627E7E7E + CA7C7D7DE1EBE3031FB1F1E3C72B1B376E1CC68D1D8BB162DEDEDECA3A0F5E1D + 7E97F3393939A01D3C78102FBDF492B203070E60FFFEFDCAF6EDDB87BD7BF7E2 + C5175FC49E3D7B94EDDEBD1BBB76EDC2CE9D3BB163C70E6CDFBE1DDBB66DC3D6 + AD5B956DD9B2052FBCF002366FDE8C4D9B36213B3B1BCF3FFF3C366EDC880DEB + D763DDBA7558BB762DB2B2B2B066CD1AAC5EBD1A999999C8C8C8C0AA55AB909E + 9E8E952B5660F9F2E558B66C19D2D2D2B074E9522C59B2048B9F7B0E8B162DC2 + C2850BB160C102CC9F3F1FF3E6CEC59C3973307BF66CCC9A350B3367CEC48CE9 + D3919A9A8A9494144C9B360D63C68C819797971E840E00F4CEBFF1C61BA0BDFE + FAEB78EDB5D770E7CE1DDCBE7D1BAFBCF20A6EDDBA859B376FE2FAF5EBB876ED + 1AAE5EBD8A975F7E1957AE5CC1E5CB9771E9D2255CB870016D6D6D683DDF8A73 + E7CEA1A5A5054D4D4D686C6C447D7D3DEAEAEA50535383EAAA2A545656A2BCBC + 1C656565282929814EA743515111CE9E3D8B3367CE203F3F1FA74F9F466E6E2E + 4E9E3881E3C78FE3E8D1A3387CF8300E751E140F8807A30EA5F33078103C0405 + 3E81CFDEA440DFB06103929392919898D81300863D0178F3CD3795F3FFFCE73F + F1C71F7FE0F7DF7FC76FBFFD865F7FFD15BFFCF20B7EFEF967FCE37FFF819F7E + FA093FFEF823FEFE3F7FC70F3FFC80EFBFFF1EDF7DF71DBEFDF65B7CF3CD37F8 + FAEBAFF1E5975FE28B2FBEC0E79F7F8E4F3FFD149F7CF2093EFEF8637CF4D147 + F8F0C30FF1F0E1433CB87F1FF7EEDDC3DDBB77F1CE3BEFE0EDB7DFC65BF21908 + FEABAFBEAA80BFD50938C16E17A0F520B79E3FDF052E81ADADAD55A056545428 + 408B8B8B3BC02C28E800F2D429156D8CB4A953A7C2D3D3B33B020800C3FE5976 + FEE4C993387EEC38D6C81563C4F709C0B378F27AE78F1C3982CC8C4C95E43D3C + 3C7A4600131E43EF590B7B43E70F1D3AA4126BBC54347777F76E0058EA080093 + DEB374E77B3B7F507C5CB972A52AE18F00C06CFA9A249E6725E13DCE79967296 + 5372173737B79E11400098799F856CDF97F37BA554924790B0B9B91A00408647 + 7458F3B54ADD7F4BA9FBFAABAF5579FBECB3CFE4D7FF7ABAA5AEBDBD83535CBC + A8F804B9047984A9A5CE98F3246D4B8540C544C7C0D5D5B53B020800C904EBAE + 569DFFEACBAF70FFFD0758B16C0D621366C03F3C0EE38327C12B301A1EFE9170 + F7FB73E6217F7FB8BB1F46B98D836E6636DA845091449952E7B59CDFB9632716 + 2F5EAC68F9E8D1A30D0090A4B04F282ED99E16C9F9F83FFE13AB3336C2D36B3C + 06DA39C0CA7A002C2C2C61666E6EC8AFFFDCEFE567595BDB2036663A6ED5B6A3 + B9A959484EB55192638AF36487A4CEEC477A00C0AC488E4FD6A5C5F01EFCED21 + 52662E8483A313CC2D2CFE9CA31D9DE863CDDCDC022EC35D51B3E3145A1A9A50 + 6984E199EA3CA9F142E919D888B9B8B8744700012097BE71E38626BDBDFFE06F + 989A3A1776F68E4FF7D47B01C1A87273F144F5CEE368AA6B40791FF4B63FCE6F + 96668C0D13BB5097510600B02CB0B36393A3C5EDDFBFFF000929730480C182A0 + 76D89BCBF7585A5829A353E6468C7F6E25DF676B650BA7C1CE488E9F89D6AA66 + D4D7D6A966A937B7EFAFF36C88E64AB7C8F67BD4A851DD1140009821D9E16935 + 36EFDD7B5F0130709036007428306C0A0A8266A33166291AA297A0294A2C2015 + CDBDAC31603E1AC46A03E7A12C2805C5D1F3D05ED18CA6DA0609FF4A144BA758 + D8D925B2437C12E7D97EB355A6EE3072E4C86E005817D9D3B3B5D5EAEAEEBD7F + 1F714933616B67AF71FFCDE1347C344E6D9726EBCA75BC7EE755DC91247BE3FA + 0DF5EFB0D4B17536ECEA1A1B1AD020C65F5BEA1B70BEA21A0D053A541514A1EA + AC98AE0465BA629CC9CBC709698DC9ED496FC9F058C659E77990CCF6FA769861 + AF5A61719EBAC36CD10828B83C0A80081AED5283B55ADA079203A2E25330C0D6 + CE2800169696080B8FC7AD76713EAF022D113351EB14885AC700D43AF8A17690 + EFE3CD5EFE6CB03F6A9C8250352C001523C351E51E83E6E839B8BE250737734B + 509E9B8793478FF5DB790A2E1448A8348D1831A2670450D1A1B0A1D5CF3FFCE0 + 0384444F85D5001BA300585A5921227C325EB92AE249C64E543887A0D8CC456C + 1474261ABF57FD1D0B7794D878A3D22918B5DE71684C5D86B3874418399863F2 + C9D3F94C519966CC98A124B61E0050C3A38A42B1414BCC78F8F00304454C81A5 + D5000D00AC112500DCBCFC32AEA56D4599FD78931DEF1B2001C3D20D2583C6A3 + C2230A270F1FC17E21705A61AF779EF2DA7491C6A82F0E1F3EBC3B020800B5BC + 8B423FB5941C5E814093001880293129B871E52A6E67E7A07A7838CAAC3D512A + 0E949A8F96937515F356562ABFE7D7D4D7CD5D34812A327343E18031A81F1329 + 5170504961DB3B25B0DE77DED0F915A22D52179C20C26A0F00A8E03269907B6B + C958F7A40A04456A47007340F084685CBFF232DEAE388F8BD3B3702176312EC5 + A5E1F2A434B44F598BEBD33729BB363D1BD76667E36A4A16CE0724A1C4DACD24 + 107403C7A12D6B17725EDC8BAD4272B49C5F268D1045512ACBC39D9DBB238000 + 50C16D6D6DD56C6CEEDE7DCFA42B408E3074C8701C9BBF168DA5D5385FD380CB + 6D2298B6B6A1B9596ABBE8781DE268B5B21AB15AB186CA6A5C885F009D95A736 + 08969EA81A3F19B92F1EC00E89E06C836CDFFBE4E93C95E4E4A42425A93B1B02 + C0E68034919D979680F9EEBB77112077DBD2CA5A93065B0A557612104242E210 + 169988E08909080A9F82A0D029F00D884660A8FC3F2D2C01C1C217326665E246 + 590BEAA5DCE90679A3D0CCDD2808459220CB24B9D6AFDF8D97B6EF52523B4B5D + 5FCE3F27323A15E14099273C0200B57B4AD8DAEAEDBBF00D8D8385A59526008A + E74B63C3EFA599CBB550FD031BA72EB3505FB792E6C7CDC9050533D6A23AEF2C + 748E3E028076C528B597723A63050E6EDE86F552EB8D39CF3E808A30072ACEC3 + 86755F0176471C5CB0EFD696AEFF1D3EA1934C07C048C3D3BB11721EE880DCE4 + 7454E6E64337C4CF24004AACBD501D94883DD99BB156246F963A667B263C7DD8 + F3E4E9FCFC79F3902082282749C37A03C0A90DFB6E4DDDFEADB7E017D68F08E8 + 0700C30580D3720DCA4F9C469163A000E0AA99074AACDC503936063B3766ABA9 + 9231E74983A97F7284D60300B6871C593131690D2D289C064E8C372907F4D5EA + F6F57502909B9486D263B9D00D66046897C412298735C1D3B063C3F3C810C5B7 + AF93A7F31C954D96CED74FE687C39C9CBAAF0001205FE6D84A6B6273FBF69D4E + 008C1321E3CEEBBBC88E5CC0BCC0A4EA32C419A79357A2F8B80060CF1CE0A111 + 0192041DFCD1342753226013D245F17D5CD8EB9DE78C908D9FAF8F2F9C0C0160 + 7FCC0CCAB2A435AEA26A646A152008E6E2A0BD5402A751EE70161BE1EA85116E + 6331D27D1C467AF8C0C5D317AE5EBEF0F0F693FB390BAD27CA512C5C5F673706 + 455A57C0DC0DE5238351BF4188D0FAE795E2CB526778E70D9D4F1512142BA48F + 93E34700E0E0B0BABA5A7B562703525F1393204FF6A4DF1CD40AB035D56252E7 + ABA4B5AD2CAF1081A31CA525A528299692572843D18242E8C4CACE14E25AD63E + E86C4C0040FA83DA094938B86133D665AE51536363CE272727AB913D47E63D00 + A040C012C269ADD6A0F2C68D9BF00931AD0A04452429C7EBAB6AF07A411DDEC8 + 975FF3ABF196AE11EF56B5E1BDFA76BC5B7309FF567E1E6F9634E2D59365B830 + 7D85F40D3E4289471BE700961E281936010D593BB0356B3DD24C709E1C204A2A + DE78D917183A7468770E20009C9C72B2AA39A515D1C4A40890D0CF4AC91000AA + D19E9E8DDAA024D40BCD6D084C46BD7F126AC7C6A3DA33163563E250EB93803A + DF4454BB47A3549C2FB230E6BC2446AB315226035197BC1C7BD66EC49AF4559A + 274FE7391465BEE3C20401E0F5540B125448C8A0A8BB698DA82F5FBE027F5506 + 8D33418A9ACBA6A52B7A7B69C13A548E0C418970F7629BB1D0597B4367E9258E + D23CBB7F3567D23392F9E5CEF36794B946A1227129B6676DC0CAE52BD4A284BE + CEF7BEF30C7BBDF3F193E3951EC84D914700E0DCBCB4B454633EDF8EB60B1725 + 09C6699641DEFF9504A0A20A171767CB69C7A0DCD10F65D2CAB2B72FB624CDE5 + 49D361BDF5CDFC4AACDD51EE1C880AB9F395CBB3B13B6B235629E7179BEC3C57 + 7AC2E5B0C77AF70280121129248547ADE58456696618015ABD00C5CF15492B51 + 595A8EF65D47D13C75319A2267A1313445C27F12CA1C7D250A3CB4333D4511C9 + 074D63E2D1BC6A0B8E6465E385D56B91B1321D4B64C8B170C142C5F0B44E9ECE + B302D057EE08F588000580B0286E55686D669C97498D7FD8241300B04072CC4C + E88A74A83CABC3A5C3F9B8BCE7182E6DCF41DBBA9DA88B988162213B45D2D1B1 + BF37AA1259B8A16DD212E46DD886ED72E75748B9E38487BB41FD713E5A9ABE10 + 5183BC654788005874CC35CC9446461A49D9D9E85A8AB4CB2D2DE74C03407200 + 01E0AE4FDEA9D3D0E517A02CFF2C4A4FE5A3E8C8099CDD7710755173D0129882 + 420B6DC253623B1E8D89CBB14D32FE8AB4654FE47CA42440AA415C927A04006E + 661516161ADDC93927DD62434363670E30CE049904D384D5E59DCE538B4D4744 + BE3A7CE8307244C139B05F36CF44C43820D3A87DA2E4B6FA4FD56E7C2401164B + 026C929FB93E63359E5BB8C8E4B0E7C9D379AEE4050506A905A94700E05A1AB7 + B3381C31B6905423438AA0899355FB6A8CEE1280D52999C83D99DB4BBDDDDBA1 + E189084B196BEB96AD6A8DAED92D422241E32A502E1BE08D7309CBB17C699A02 + 40ADC009C3EB9DEDF577DED0F930B9EA6C85B91FD40300AAA404A04036AA8C39 + 4FCDBE4A884D70643C06D80C340E80DCAF8589696AB5CD24DD5E9868B35BBCCA + 07C67282D203256FB4C5CA7EA0B4B804605AAF52D797F3BCFFFED209723F68C8 + 9021DD398000707786EB64C656D1EA6415AD4A24ABC9712918EC4022D1F77094 + 53A1900971387AE468BFA46B150966A4C17D478302C9C205CDC189583C7F0152 + A7A560AA901CB6BAC69CA718CA4D52AEC7F4008089817D745E5E9EF13D3C6175 + D552D70FA66F41A0A70F1CEC87C0DAC60E96D6B6A2EA50F1B1EE9CFD59C16680 + 1DB6FA24E358CE61932636864A4EBD73B8666560A758288CB0D83302CBE7CC43 + 4A62926A7559EA7A873D4F9ECE530AF3913E80EB318E8E8EDD114000B83C744A + 96097B8FAB7A6F66A84646C655BBE66722363A117EA1B1181B140D4F598EE072 + 031724B828E1273AE0C99D393822D9BE3FBABDBE9F6F76099353264F3096175C + 5038D01385A1D3903E67011213A6AA66479FF078E70D9DF7F7F3979DE171701D + ED0AC7C183BB01A04CCC7F980347AD0D4C92A512A9ED4567649D358FEBAC6232 + ABE33AEBB163C73AD658655E7728E710720EE4E0A57DFB8DCEEA8C69780DCEB1 + DAD5411865A94B280A1665615EEA0CD5EC30DB3FCE79863F49D068D90D18DC1B + 002E223361E9777B8DEFE488F3FA3D5E6E603EE1A0524BC024C969183AC13808 + 2C8F3273CC9FB90CB3935314D7EFCB79B6C12C811C8D3B383874470075726E4F + B15E3FCD852463535A539CD7D3DB16B738B90A231E658B52160BA54738EB1A8C + B929A9B2FC146DD479AECC7B4A05E05CD07ED0A0EE6E90B5914A0A43F7696D63 + 3D2DE7F5ABEEF58C04039E502C2D7391AD278AA59DE6C9C708D96157DBFBCE33 + ECD59B01BE151006E82E099053213B3BBB6E0028135349E1C2F4D3DAC6EA6B3E + DF9F93D7931CD6798EB46A46468816E08512DBB1281BE68FD2D8F95890324392 + B19CBC09CE7B797A49021CAD04D18103BB788C999289D95870C9406BE5FC4937 + 33B426365AFDFC54C9F0D385F1D544CE4739FB87059958953A1B936362558BAB + 75F2749E04C845EEFF502141B6B6B6DD8A1001E0F21017A58CEDDBFF55CE53C9 + A1984163BD9F9B321D739353911037599C0F37D97986FF48B9FF2C813603BA7A + 1933C58EF8D464B7ACC9F4F5D8E0AF76BE8BE149B8B3D4454C8C3039EC79F274 + 9EF59FF79F156080210094899971B924F1B89716FF32CE1B7475C64A9D3EE1E9 + C35EEF3CEB3FEFFF20A900D6D65D929E99CA929C9A6C9311F9D35845D32F243D + 49C233B5AB33F5CE1B3A3F4A36C3D805B20258CB0A8FFEC9A00280CB436C4B0D + DFD83C4B274FE759FF87480F602715C0CA1000CAC42C391C90EA1F183D8BCEF3 + FE33010EB4ED0D809004BEABE37C90AFAB9E55E7391166026409B4949D84AE2B + 409D9CCB431C8F7140C2D7554FB284F8AF78E719F63C79BDF3F6F6F6B0B1B1E9 + 09003B24322D3E2A542F3857CB4E1D5F6FEA5F6E4AABAC7FB9A97FB549E6B8A8 + F3C5E63C695AE676BED6347CA9D9F1339390285B19AA9653B0909E7D52E7135B + AEE6A827B49DDD1B851976A6A4E6E426EAF9AB5C4FF5E4B5F3B527B93C050DF6 + F46475DCFA6673C3FA3E4256DFB8FA42679D863A29C2C33BCFB0E7C9EB9DB791 + 1DC71E114000A8947282C21512FD1B627E603EA6501F9ABA7AE7078F8EEAA8C5 + ECBB23A4FBD2BFFDD5BFF9357CEBAB7FE34B298A7C43FFA6977987038A2EC744 + A7F3789C639DC98B6B6D7AE758CA9C249B2B07C5286EB0BDA5930E72C2F683EC + 55A963B667C2E39D67D8F3E4F5CE737FA9EB0AF0376C1369140C698A3CC807D2 + A3AD10976726343E36604DD5A3AF4E403E288D21A7C24E3EB0FE43731F479D0A + 3FB8184B118D1F5E9D50A7037A277852343AD1E5883843FEAE4C9CA1435D4E89 + 632436CAE401076BBC32C9F4CCF6349E789719BE73E81C109AB6F0D48F7597FE + 6E87FC55DFFF7F099F2797677AC83B0000000049454E44AE426082} + Height = 50.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 8.000000000000000000 + Width = 50.000000000000000000 + end + object Lb1: TLabel + Font.Family = 'Tahoma' + Font.Size = 14.000000000000000000 + Font.Style = [fsBold] + Height = 25.000000000000000000 + Position.X = 64.000000000000000000 + Position.Y = 13.000000000000000000 + Text = 'FastReport for FireMonkey' + Width = 209.000000000000000000 + end + object Label6: TLabel + Cursor = crHandPoint + Font.Family = 'Arial' + Font.Style = [fsItalic] + Height = 15.000000000000000000 + HitTest = True + Position.X = 64.000000000000000000 + Position.Y = 37.000000000000000000 + StyleLookup = 'Label6Style1' + Text = 'www.fast-report.com' + Width = 129.000000000000000000 + OnClick = Label6Click + end + end + object TreeView1: TTreeView + Align = alLeft + Height = 494.000000000000000000 + Position.Y = 67.000000000000000000 + UseSmallScrollBars = True + Width = 217.000000000000000000 + OnChange = TreeView1Change + object TreeViewItem1: TTreeViewItem + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Text = 'Basic reports' + Width = 213.000000000000000000 + object TreeViewItem6: TTreeViewItem + Tag = 1 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 95.000000000000000000 + Text = 'Simple list' + Width = 175.000000000000000000 + end + object TreeViewItem5: TTreeViewItem + Tag = 2 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 76.000000000000000000 + Text = 'Simple group' + Width = 175.000000000000000000 + end + object TreeViewItem3: TTreeViewItem + Tag = 3 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 38.000000000000000000 + Text = 'Nested group' + Width = 175.000000000000000000 + end + object TreeViewItem4: TTreeViewItem + Tag = 4 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 57.000000000000000000 + Text = 'Master-Detail-SubDetail' + Width = 175.000000000000000000 + end + object TreeViewItem2: TTreeViewItem + Tag = 5 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 19.000000000000000000 + Text = 'Master-Detail-Detail' + Width = 175.000000000000000000 + end + object UnicodeI: TTreeViewItem + Tag = 6 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 56.000000000000000000 + Position.Y = 56.000000000000000000 + Text = 'Multi-column list' + Width = 175.000000000000000000 + end + object TreeViewItem7: TTreeViewItem + Tag = 7 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Multi-column band' + Width = 50.000000000000000000 + end + object TreeViewItem8: TTreeViewItem + Tag = 8 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Memos and pictures' + Width = 50.000000000000000000 + end + object TreeViewItem9: TTreeViewItem + Tag = 9 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Split bands' + Width = 50.000000000000000000 + end + object TreeViewItem10: TTreeViewItem + Tag = 10 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Subreports' + Width = 50.000000000000000000 + end + object TreeViewItem11: TTreeViewItem + Tag = 11 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Side-by-side subreports' + Width = 50.000000000000000000 + end + object TreeViewItem12: TTreeViewItem + Tag = 12 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Report with title page' + Width = 50.000000000000000000 + end + object TreeViewItem13: TTreeViewItem + Tag = 13 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Interactive report' + Width = 50.000000000000000000 + end + object Charts: TTreeViewItem + Tag = 24 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Charts' + Width = 50.000000000000000000 + end + end + object TreeViewItem14: TTreeViewItem + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.Y = 19.000000000000000000 + StyleLookup = 'UnicodeIStyle1' + Text = 'Cross Tabs' + Width = 213.000000000000000000 + object TreeViewItem15: TTreeViewItem + Tag = 61 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'No Rows' + Width = 50.000000000000000000 + end + object TreeViewItem16: TTreeViewItem + Tag = 62 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'No columns' + Width = 50.000000000000000000 + end + object TreeViewItem17: TTreeViewItem + Tag = 63 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'One row, one column' + Width = 50.000000000000000000 + end + object TreeViewItem18: TTreeViewItem + Tag = 65 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Two rows, one column' + Width = 50.000000000000000000 + end + object TreeViewItem19: TTreeViewItem + Tag = 66 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Two columns, one row' + Width = 50.000000000000000000 + end + object TreeViewItem20: TTreeViewItem + Tag = 67 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Two cell values' + Width = 50.000000000000000000 + end + object TreeViewItem21: TTreeViewItem + Tag = 68 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Highlight' + Width = 50.000000000000000000 + end + object TreeViewItem22: TTreeViewItem + Tag = 69 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Alternate column each row' + Width = 50.000000000000000000 + end + object TreeViewItem24: TTreeViewItem + Tag = 60 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Cross from non-DB data' + Width = 50.000000000000000000 + end + object TreeViewItem25: TTreeViewItem + Tag = 70 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Old-style cross tab' + Width = 50.000000000000000000 + end + object TreeViewItem26: TTreeViewItem + Tag = 71 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Calendar' + Width = 50.000000000000000000 + end + object TreeViewItem27: TTreeViewItem + Tag = 73 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Expressions in the cross' + Width = 50.000000000000000000 + end + object TreeViewItem28: TTreeViewItem + Tag = 64 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Objects inside the cross' + Width = 50.000000000000000000 + end + object TreeViewItem51: TTreeViewItem + Tag = 101 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Crosstab features' + Width = 50.000000000000000000 + end + end + object TreeViewItem31: TTreeViewItem + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.Y = 38.000000000000000000 + StyleLookup = 'UnicodeIStyle1' + Text = 'Dialogs and script' + Width = 213.000000000000000000 + object TreeViewItem32: TTreeViewItem + Tag = 41 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Hello Fast Report' + Width = 50.000000000000000000 + end + object TreeViewItem33: TTreeViewItem + Tag = 42 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Ask for parameters' + Width = 50.000000000000000000 + end + object TreeViewItem34: TTreeViewItem + Tag = 43 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Controls and events' + Width = 50.000000000000000000 + end + end + object TreeViewItem23: TTreeViewItem + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.Y = 57.000000000000000000 + StyleLookup = 'UnicodeIStyle1' + Text = 'Other features' + Width = 213.000000000000000000 + object TreeViewItem30: TTreeViewItem + Tag = 31 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Rotation, fills and shapes' + Width = 50.000000000000000000 + end + object TreeViewItem39: TTreeViewItem + Tag = 32 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'HTML tags' + Width = 50.000000000000000000 + end + object TreeViewItem40: TTreeViewItem + Tag = 33 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Keep group together' + Width = 50.000000000000000000 + end + object TreeViewItem41: TTreeViewItem + Tag = 34 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Preview outline' + Width = 50.000000000000000000 + end + object TreeViewItem42: TTreeViewItem + Tag = 35 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'URLs, Anchors' + Width = 50.000000000000000000 + end + object TreeViewItem43: TTreeViewItem + Tag = 36 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Unicode' + Width = 50.000000000000000000 + end + object TreeViewItem47: TTreeViewItem + Tag = 93 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Endlesspage height' + Width = 50.000000000000000000 + end + object TreeViewItem48: TTreeViewItem + Tag = 94 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Endlesspage width and height' + Width = 50.000000000000000000 + end + object TreeViewItem49: TTreeViewItem + Tag = 97 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Drill-down groups' + Width = 50.000000000000000000 + end + object TreeViewItem50: TTreeViewItem + Tag = 98 + Height = 19.000000000000000000 + IsChecked = False + IsExpanded = False + IsSelected = False + Position.X = 5000.000000000000000000 + Position.Y = 5000.000000000000000000 + Text = 'Drill-down nested groups' + Width = 50.000000000000000000 + end + end + end + object Panel3: TPanel + Align = alClient + Height = 494.000000000000000000 + Position.X = 217.000000000000000000 + Position.Y = 67.000000000000000000 + Width = 350.000000000000000000 + object btnPreview: TButton + DisableFocusEffect = False + Height = 22.000000000000000000 + Position.X = 256.000000000000000000 + Position.Y = 456.000000000000000000 + Text = 'Preview' + Width = 80.000000000000000000 + OnClick = btnPreviewClick + end + object btnDesign: TButton + DisableFocusEffect = False + Height = 22.000000000000000000 + Position.X = 169.000000000000000000 + Position.Y = 456.000000000000000000 + Text = 'Design' + Width = 80.000000000000000000 + OnClick = btnDesignClick + end + object Label2: TLabel + Height = 425.000000000000000000 + Position.X = 16.000000000000000000 + Position.Y = 16.000000000000000000 + VertTextAlign = taLeading + Width = 321.000000000000000000 + end + end +end diff --git a/Demos/Main/Unit2.pas b/Demos/Main/Unit2.pas new file mode 100644 index 0000000..2df5402 --- /dev/null +++ b/Demos/Main/Unit2.pas @@ -0,0 +1,217 @@ +unit Unit2; + +interface + +uses + System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, + FMX.Types, FMX.Controls, FMX.Forms, FMX.Dialogs, FMX.Objects, + FMX.Layouts, FMX.ExtCtrls, FMX.TreeView, FMX.Edit, + FMX.frxClass, FMX.frxDesgn, FMX.frxCross, + {$IFDEF LINUX} + {$I tee.inc} + {$IFDEF TeeChartPro} + FMX.frxChart, + {$ENDIF} + {$ELSE} + FMX.frxChart, + {$ENDIF} + FMX.frxGradient, + FMX.frxExportText, FMX.frxExportHTML, FMX.frxExportImage, FMX.frxExportXML, FMX.frxExportCSV, FMX.frxExportPDF, + FMX.frxExportRTF, FMX.frxExportODF, + FMX.ConverterFR3toFRFMX, FMX.frxChBox +{$IFDEF VER250} + ,FMX.StdCtrls +{$ENDIF} +{$IFDEF VER260} +, FMX.Graphics +,FMX.StdCtrls +{$ENDIF} +{$IFDEF VER270} +, FMX.Graphics +,FMX.StdCtrls +{$ENDIF} +{$IFDEF VER280} +, FMX.Graphics +,FMX.StdCtrls +{$ENDIF} +{$IFDEF VER290} +, FMX.Graphics +,FMX.StdCtrls +{$ENDIF} +{$IFDEF VER300} +, FMX.Graphics +,FMX.StdCtrls +{$ENDIF} +{$IFDEF VER310} +, FMX.Graphics +,FMX.StdCtrls +{$ENDIF} +{$IFDEF VER320} +, FMX.Graphics +,FMX.StdCtrls +{$ENDIF} +{$IFDEF VER330} +, FMX.Graphics +,FMX.StdCtrls, FMX.Controls.Presentation +{$ENDIF} +{$IFDEF VER340} +, FMX.Graphics +,FMX.StdCtrls, FMX.Controls.Presentation +{$ENDIF} +{$IFDEF VER350} +, FMX.Graphics +,FMX.StdCtrls, FMX.Controls.Presentation +{$ENDIF} + {$IFDEF MSWINDOWS} + , Winapi.ShellAPI, Winapi.Windows + {$ENDIF} + {$IFDEF MACOS} + , Posix.Stdlib +{$ENDIF} +{$IFDEF LINUX} + , FMUX.Api +{$ENDIF}, FMX.frxBarcode, FMX.frxBarcode2DView; + +type + + TForm2 = class(TForm) + ToolBar1: TToolBar; + TreeView1: TTreeView; + UnicodeI: TTreeViewItem; + TreeViewItem2: TTreeViewItem; + TreeViewItem3: TTreeViewItem; + TreeViewItem4: TTreeViewItem; + TreeViewItem5: TTreeViewItem; + TreeViewItem6: TTreeViewItem; + Image1: TImage; + Lb1: TLabel; + TreeViewItem1: TTreeViewItem; + Label2: TLabel; + btnPreview: TButton; + TreeViewItem7: TTreeViewItem; + TreeViewItem8: TTreeViewItem; + TreeViewItem9: TTreeViewItem; + TreeViewItem10: TTreeViewItem; + TreeViewItem11: TTreeViewItem; + TreeViewItem12: TTreeViewItem; + TreeViewItem13: TTreeViewItem; + TreeViewItem14: TTreeViewItem; + TreeViewItem15: TTreeViewItem; + TreeViewItem16: TTreeViewItem; + TreeViewItem17: TTreeViewItem; + TreeViewItem18: TTreeViewItem; + TreeViewItem19: TTreeViewItem; + TreeViewItem20: TTreeViewItem; + TreeViewItem21: TTreeViewItem; + TreeViewItem22: TTreeViewItem; + TreeViewItem24: TTreeViewItem; + TreeViewItem25: TTreeViewItem; + TreeViewItem26: TTreeViewItem; + TreeViewItem27: TTreeViewItem; + TreeViewItem28: TTreeViewItem; + Charts: TTreeViewItem; + TreeViewItem31: TTreeViewItem; + TreeViewItem32: TTreeViewItem; + TreeViewItem33: TTreeViewItem; + TreeViewItem34: TTreeViewItem; + TreeViewItem47: TTreeViewItem; + TreeViewItem48: TTreeViewItem; + TreeViewItem49: TTreeViewItem; + TreeViewItem50: TTreeViewItem; + TreeViewItem51: TTreeViewItem; + Panel3: TPanel; + TreeViewItem23: TTreeViewItem; + TreeViewItem30: TTreeViewItem; + TreeViewItem39: TTreeViewItem; + TreeViewItem40: TTreeViewItem; + TreeViewItem41: TTreeViewItem; + TreeViewItem42: TTreeViewItem; + TreeViewItem43: TTreeViewItem; + Label6: TLabel; + btnDesign: TButton; + procedure FormCreate(Sender: TObject); + procedure TreeView1Change(Sender: TObject); + procedure Label6Click(Sender: TObject); + procedure btnDesignClick(Sender: TObject); + procedure btnPreviewClick(Sender: TObject); + private + FReport: TfrxReport; + FTXTExport: TfrxSimpleTextExport; + FHTMLExport: TfrxHTMLExport; + FJPEGExport: TfrxJPEGExport; + FTfrxGIFExport: TfrxGIFExport; + FPNGExport: TfrxPNGExport; + FTIFFExport: TfrxTIFFExport; + FBMPExport: TfrxBMPExport; + FXMLExport: TfrxXMLExport; + FRTFExport: TfrxRTFExport; + FPDFExport: TfrxPDFExport; + FCSVExport: TfrxCSVExport; + FAppDir: String; + { Private declarations } + public + { Public declarations } + end; + +var + Form2: TForm2; + +implementation + +{$R *.fmx} + +procedure TForm2.FormCreate(Sender: TObject); +begin + FAppDir := ExtractFilePath(ParamStr(0)); + FReport := TfrxReport.Create(Self); + + FTXTExport := TfrxSimpleTextExport.Create(Self); + FHTMLExport := TfrxHTMLExport.Create(Self); + FJPEGExport := TfrxJPEGExport.Create(Self); + FTfrxGIFExport := TfrxGIFExport.Create(Self); + FPNGExport := TfrxPNGExport.Create(Self); + FTIFFExport := TfrxTIFFExport.Create(Self); + FBMPExport := TfrxBMPExport.Create(Self); + FXMLExport := TfrxXMLExport.Create(Self); + FRTFExport := TfrxRTFExport.Create(Self); + FPDFExport := TfrxPDFExport.Create(Self); + FCSVExport := TfrxCSVExport.Create(Self); + TfrxODTExport.Create(Self); + TfrxODSExport.Create(Self); + TreeView1.ExpandAll; + TreeView1.Selected := TreeView1.Items[0].Items[0]; +end; + +procedure TForm2.btnDesignClick(Sender: TObject); +begin + FReport.DesignReport; +end; + +procedure TForm2.btnPreviewClick(Sender: TObject); +begin + FReport.ShowReport; +end; + +procedure TForm2.TreeView1Change(Sender: TObject); +begin + if not FReport.LoadFromFile(FAppDir + PathDelim + IntToStr(TreeView1.Selected.Tag) + '.fr3') then + FReport.LoadFromFile(FAppDir + PathDelim + IntToStr(TreeView1.Selected.Tag) + '.FR3'); + Label2.Text := FReport.ReportOptions.Description.Text; + FReport.Script.AddVariable('wPath', 'String', FAppDir{ + PathDelim}); +end; + +procedure TForm2.Label6Click(Sender: TObject); +begin +{$IFDEF MSWINDOWS} + ShellExecute(0, 'open', PChar('http://www.fast-report.com'), '', '', SW_SHOWNORMAL); +{$ENDIF} +{$IFDEF LINUX} + FmuxOpenUrl(PChar('http://www.fast-report.com')); +{$ENDIF} +{$IFDEF MACOS} + _system(PAnsiChar('open ' + AnsiString('http://www.fast-report.com'))); +{$ENDIF} + +end; + +end. \ No newline at end of file diff --git a/Demos/Main/Unit2.vlb b/Demos/Main/Unit2.vlb new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/Demos/Main/Unit2.vlb @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/Demos/Main/Unit3.dfm b/Demos/Main/Unit3.dfm new file mode 100644 index 0000000..34feacd --- /dev/null +++ b/Demos/Main/Unit3.dfm @@ -0,0 +1,128 @@ +object DataModule3: TDataModule3 + OldCreateOrder = False + OnCreate = DataModuleCreate + Height = 407 + Width = 580 + object CDBio: TClientDataSet + Aggregates = <> + Params = <> + Left = 24 + Top = 16 + end + object CDCust: TClientDataSet + Aggregates = <> + FieldDefs = <> + IndexDefs = <> + IndexFieldNames = 'Company' + Params = <> + StoreDefs = True + Left = 504 + Top = 16 + end + object CDCross: TClientDataSet + Aggregates = <> + Params = <> + Left = 120 + Top = 16 + end + object CDUnicode: TClientDataSet + Aggregates = <> + Params = <> + Left = 168 + Top = 16 + end + object CDCountry: TClientDataSet + Aggregates = <> + IndexFieldNames = 'Continent' + Params = <> + Left = 312 + Top = 208 + end + object CDCurQuote: TClientDataSet + Aggregates = <> + Params = <> + Left = 72 + Top = 88 + end + object CDCustQuery: TClientDataSet + Aggregates = <> + Params = <> + Left = 400 + Top = 16 + end + object CDEmpl: TClientDataSet + Aggregates = <> + Params = <> + Left = 144 + Top = 112 + end + object CDItems: TClientDataSet + Aggregates = <> + IndexFieldNames = 'OrderNo' + MasterFields = 'OrderNo' + MasterSource = OrdersDS + PacketRecords = 0 + Params = <> + Left = 504 + Top = 232 + end + object CDnextcust: TClientDataSet + Aggregates = <> + Params = <> + Left = 24 + Top = 168 + end + object CDnextitem: TClientDataSet + Aggregates = <> + Params = <> + Left = 80 + Top = 232 + end + object CDnextord: TClientDataSet + Aggregates = <> + Params = <> + Left = 136 + Top = 168 + end + object CDorders: TClientDataSet + Aggregates = <> + IndexFieldNames = 'CustNo' + MasterFields = 'CustNo' + MasterSource = CustDS + PacketRecords = 0 + Params = <> + Left = 504 + Top = 120 + end + object CDparts: TClientDataSet + Aggregates = <> + IndexFieldNames = 'PartNo' + MasterFields = 'PartNo' + MasterSource = ItemsDS + PacketRecords = 0 + Params = <> + Left = 504 + Top = 344 + end + object CDVendors: TClientDataSet + Aggregates = <> + Params = <> + Left = 16 + Top = 224 + end + object CustDS: TDataSource + DataSet = CDCust + Left = 504 + Top = 65 + end + object OrdersDS: TDataSource + DataSet = CDorders + Left = 504 + Top = 176 + end + object ItemsDS: TDataSource + DataSet = CDItems + Left = 504 + Top = 288 + end +end diff --git a/Demos/Main/Unit3.pas b/Demos/Main/Unit3.pas new file mode 100644 index 0000000..e415864 --- /dev/null +++ b/Demos/Main/Unit3.pas @@ -0,0 +1,147 @@ +unit Unit3; + +interface + +uses + System.SysUtils, System.Classes, Data.DB, Datasnap.DBClient, FMX.frxClass, FMX.frxDBSet; + +type + TDataModule3 = class(TDataModule) + CDBio: TClientDataSet; + CDCust: TClientDataSet; + CDCross: TClientDataSet; + CDUnicode: TClientDataSet; + CDCountry: TClientDataSet; + CDCurQuote: TClientDataSet; + CDCustQuery: TClientDataSet; + CDEmpl: TClientDataSet; + CDItems: TClientDataSet; + CDnextcust: TClientDataSet; + CDnextitem: TClientDataSet; + CDnextord: TClientDataSet; + CDorders: TClientDataSet; + CDparts: TClientDataSet; + CDVendors: TClientDataSet; + CustDS: TDataSource; + OrdersDS: TDataSource; + ItemsDS: TDataSource; + procedure DataModuleCreate(Sender: TObject); + private + FBiolife: TfrxDBDataSet; + FCustomers: TfrxDBDataSet; + FCrossTest: TfrxDBDataSet; + FUnicode: TfrxDBDataSet; + FOrders: TfrxDBDataset; + FItems: TfrxDBDataset; + FPart: TfrxDBDataset; + FSales: TfrxDBDataset; + FCountry: TfrxDBDataset; + { Private declarations } + public + { Public declarations } + end; + +var + DataModule3: TDataModule3; + +implementation + +{%CLASSGROUP 'System.Classes.TPersistent'} + +{$R *.dfm} + +procedure TDataModule3.DataModuleCreate(Sender: TObject); +var + DataPath: String; +begin + DataPath := ExtractFilePath(ParamStr(0)) + PathDelim + 'Data' + PathDelim; + FBiolife := TfrxDBDataSet.Create(Self); + FBiolife.Name := 'Biolife'; + FBiolife.UserName := 'Bio'; + CDBio.LoadFromFile(DataPath + 'biolife.xml'); + FBiolife.DataSet := CDBio; + FBiolife.FieldAliases.Delimiter := ';'; + FBiolife.FieldAliases.StrictDelimiter := True; + FBiolife.FieldAliases.DelimitedText := 'Species No=Species No;Category=Category;Common_Name=Common Name;Species Name=Species Name;Length (cm)=Length (cm);Length_In=Length In;Notes=Notes;Graphic=Graphic'; + + FCustomers := TfrxDBDataSet.Create(Self); + FCustomers.Name := 'Customers'; + FCustomers.UserName := 'Customers'; + FCustomers.FieldAliases.Delimiter := ';'; + FCustomers.FieldAliases.StrictDelimiter := True; + FCustomers.FieldAliases.DelimitedText := 'CustNo=Cust No;Company=Company;Addr1=Addr1;Addr2=Addr2;City=City;State=State;Zip=Zip;Country=Country;Phone=Phone;FAX=FAX;TaxRate=Tax Rate;Contact=Contact;LastInvoiceDate=Last Invoice Date'; + + + CDCust.LoadFromFile(DataPath + 'customer.xml'); + FCustomers.DataSet := CDCust; + + FCrossTest := TfrxDBDataSet.Create(Self); + FCrossTest.Name := 'Cross'; + FCrossTest.UserName := 'Cross'; + CDCross.LoadFromFile(DataPath + 'crosstest.xml'); + FCrossTest.DataSet := CDCross; + + FUnicode := TfrxDBDataSet.Create(Self); + + FUnicode.Name := 'Unicode'; + FUnicode.UserName := 'Unicode'; + CDUnicode.LoadFromFile(DataPath + 'unicode.xml'); + FUnicode.DataSet := CDUnicode; + + FOrders := TfrxDBDataset.Create(Self); + FOrders.Name := 'Orders'; + FOrders.UserName := 'Orders'; + CDorders.LoadFromFile(DataPath + 'orders.xml'); + FOrders.DataSet := CDorders; + FOrders.FieldAliases.Delimiter := ';'; + FOrders.FieldAliases.StrictDelimiter := True; + FOrders.FieldAliases.DelimitedText := 'OrderNo=Order No;CustNo=Cust No;CustCompany=Cust Company;SaleDate=Sale Date;ShipDate=Ship Date;EmpNo=Emp No;' + + 'ShipToContact=Ship To Contact;ShipToAddr1=Ship To Addr1;ShipToAddr2=Ship To Addr2;ShipToCity=Ship To City;ShipToState=Ship To State;ShipToZip=Ship To Zip;ShipToCountry=Ship To Country;ShipToPhone=Ship To Phone;ShipVIA=Ship VIA;'+ + 'PO=PO;Terms=Terms;PaymentMethod=Payment Method;ItemsTotal=Items Total;TaxRate=Tax Rate;Freight=Freight;AmountPaid=Amount Paid'; + + FItems := TfrxDBDataset.Create(Self); + FItems.Name := 'Items'; + FItems.UserName := 'Items'; + CDItems.LoadFromFile(DataPath + 'items.xml'); + FItems.DataSet := CDItems; + FItems.FieldAliases.Delimiter := ';'; + FItems.FieldAliases.StrictDelimiter := True; + //FItems.FieldAliases.DelimitedText := 'OrderNo=Order No;ItemNo=Item No;PartNo=Part No;PartName=Part Name;Qty=Qty;Price=Price;Discount=Discount;Total=Total;ExtendedPrice=Extended Price'; + + FPart := TfrxDBDataset.Create(Self); + FPart.Name := 'Parts'; + FPart.UserName := 'Parts'; + CDParts.LoadFromFile(DataPath + 'parts.xml'); + FPart.DataSet := CDParts; + FPart.FieldAliases.Delimiter := ';'; + FPart.FieldAliases.StrictDelimiter := True; + FPart.FieldAliases.DelimitedText := 'PartNo=Part No;VendorNo=Vendor No;Description=Description;OnHand=On Hand;OnOrder=On Order;Cost=Cost;ListPrice=List Price'; + + FSales := TfrxDBDataset.Create(Self); + FSales.Name := 'Sales'; + FSales.UserName := 'Sales'; + CDCustQuery.LoadFromFile(DataPath + 'customer_query.xml'); + FSales.DataSet := CDCustQuery; + FSales.FieldAliases.Delimiter := ';'; + FSales.FieldAliases.StrictDelimiter := True; +// FSales.FieldAliases.DelimitedText := 'CustNo=Cust No;Company=Company;Addr1=Addr1;Addr2=Addr2;City=City;State=State' + +// 'Zip=Zip;Country=Country;Phone=Phone;FAX=FAX;TaxRate=a.TaxRate;Contact=Contact' + +// 'LastInvoiceDate=LastInvoiceDate;OrderNo=Order No;CustNo=b.CustNo;SaleDate=Sale Date' + +// 'ShipDate=ShipDate;EmpNo=EmpNo;ShipToContact=ShipToContact;ShipToAddr1=ShipToAddr1' + +// 'ShipToAddr2=ShipToAddr2;ShipToCity=ShipToCity;ShipToState=ShipToState;ShipToZip=ShipToZip' + +// 'ShipToCountry=ShipToCountry;ShipToPhone=ShipToPhone;ShipVIA=ShipVIA;PO=PO;Terms=Terms' + +// 'PaymentMethod=PaymentMethod;ItemsTotal=ItemsTotal;TaxRate=b.TaxRate;Freight=Freight;AmountPaid=AmountPaid;OrderNo=c.OrderNo' + +// 'ItemNo=ItemNo;PartNo=Part No;Qty=Qty;Discount=Discount;PartNo=d.PartNo;VendorNo=VendorNo' + +// 'Description=Description;OnHand=OnHand;OnOrder=OnOrder;Cost=Cost;ListPrice=List Price'; + + + FCountry := TfrxDBDataset.Create(Self); + FCountry.Name := 'Country'; + FCountry.UserName := 'Country'; + CDCountry.LoadFromFile(DataPath + 'country.xml'); + FCountry.DataSet := CDCountry; + //FCountry.FieldAliases.Delimiter := ';'; + //FCountry.FieldAliases.DelimitedText := +end; + +end. diff --git a/Demos/Main/awards.png b/Demos/Main/awards.png new file mode 100644 index 0000000..0277dd9 Binary files /dev/null and b/Demos/Main/awards.png differ diff --git a/FastReports.url b/FastReports.url new file mode 100644 index 0000000..d3c5305 --- /dev/null +++ b/FastReports.url @@ -0,0 +1,2 @@ +[InternetShortcut] +URL=http://www.fast-report.com diff --git a/FastReportsT.url b/FastReportsT.url new file mode 100644 index 0000000..d606b9c --- /dev/null +++ b/FastReportsT.url @@ -0,0 +1,6 @@ +[InternetShortcut] +URL=http://www.fast-report.com/en/products/report-for-delphi-fastreport-4-feature-matrix.html +IDList= +HotKey=0 +[{000214A0-0000-0000-C000-000000000046}] +Prop3=19,2 diff --git a/FastScript/FMX.BaseTypeAliases.pas b/FastScript/FMX.BaseTypeAliases.pas new file mode 100644 index 0000000..2d807b0 --- /dev/null +++ b/FastScript/FMX.BaseTypeAliases.pas @@ -0,0 +1,283 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Graphics.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.BaseTypeAliases; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.Types, FMX.Objects, System.UITypes, System.UIConsts, FMX.Graphics, FMX.Controls, System.Types, System.TypInfo; + +type + + TCalloutPositionHelper = record helper for TCalloutPosition + const + cpTop = TCalloutPosition.Top deprecated 'Use TCalloutPosition.Top'; + cpLeft = TCalloutPosition.Left deprecated 'Use TCalloutPosition.Left'; + cpBottom = TCalloutPosition.Bottom deprecated 'Use TCalloutPosition.Bottom'; + cpRight = TCalloutPosition.Right deprecated 'Use TCalloutPosition.Right'; + end; + + TCornerHelper = record helper for TCorner + const + crTopLeft = TCorner.TopLeft deprecated 'Use TCorner.TopLeft'; + crTopRight = TCorner.TopRight deprecated 'Use TCorner.TopRight'; + crBottomLeft = TCorner.BottomLeft deprecated 'Use TCorner.BottomLeft'; + crBottomRight = TCorner.BottomRight deprecated 'Use TCorner.BottomRight'; + end; + + TCornerTypeHelper = record helper for TCornerType + const + ctRound = TCornerType.Round deprecated 'Use TCornerType.Round'; + ctBevel = TCornerType.Bevel deprecated 'Use TCornerType.Bevel'; + ctInnerRound = TCornerType.InnerRound deprecated 'Use TCornerType.InnerRound'; + ctInnerLine = TCornerType.InnerLine deprecated 'Use TCornerType.InnerLine'; + end; + + TSideHelper = record helper for TSide + const + sdTop = TSide.Top deprecated 'Use TSide.Top'; + sdLeft = TSide.Left deprecated 'Use TSide.Left'; + sdBottom = TSide.Bottom deprecated 'Use TSide.Bottom'; + sdRight = TSide.Right deprecated 'Use TSide.Right'; + end; + + TTextAlignHelper = record helper for TTextAlign + const + taCenter = TTextAlign.Center deprecated 'Use TTextAlign.Center'; + taLeading = TTextAlign.Leading deprecated 'Use TTextAlign.Leading'; + taTrailing = TTextAlign.Trailing deprecated 'Use TTextAlign.Trailing'; + end; + + TTextTrimmingHelper = record helper for TTextTrimming + const + ttNone = TTextTrimming.None deprecated 'Use TTextTrimming.None'; + ttCharacter = TTextTrimming.Character deprecated 'Use TTextTrimming.Character'; + ttWord = TTextTrimming.Word deprecated 'Use TTextTrimming.Word'; + end; + + TStyledSettingHelper = record helper for TStyledSetting + const + ssFamily = TStyledSetting.Family deprecated 'Use TStyledSetting.Family'; + ssSize = TStyledSetting.Size deprecated 'Use TStyledSetting.Size'; + ssStyle = TStyledSetting.Style deprecated 'Use TStyledSetting.Style'; + ssFontColor = TStyledSetting.FontColor deprecated 'Use TStyledSetting.FontColor'; + ssOther = TStyledSetting.Other deprecated 'Use TStyledSetting.Other'; + end; + + TMenuItemChangeHelper = record helper for TMenuItemChange + const + mcEnabled = TMenuItemChange.Enabled deprecated 'Use TMenuItemChange.Enabled'; + mcVisible = TMenuItemChange.Visible deprecated 'Use TMenuItemChange.Visible'; + mcText = TMenuItemChange.Text deprecated 'Use TMenuItemChange.Text'; + mcShortcut = TMenuItemChange.Shortcut deprecated 'Use TMenuItemChange.Shortcut'; + mcChecked = TMenuItemChange.Checked deprecated 'Use TMenuItemChange.Checked'; + mcBitmap = TMenuItemChange.Bitmap deprecated 'Use TMenuItemChange.Bitmap'; + end; + + TScreenOrientationHelper = record helper for TScreenOrientation + const + soPortrait = TScreenOrientation.Portrait deprecated 'Use TScreenOrientation.Portrait'; + soLandscape = TScreenOrientation.Landscape deprecated 'Use TScreenOrientation.Landscape'; + soInvertedPortrait = TScreenOrientation.InvertedPortrait deprecated 'Use TScreenOrientation.InvertedPortrait'; + soInvertedLandscape = TScreenOrientation.InvertedLandscape deprecated 'Use TScreenOrientation.InvertedLandscape'; + end; + + TFormStyleHelper = record helper for TFormStyle + const + fsNormal = TFormStyle.Normal deprecated 'Use TFormStyle.Normal'; + fsPopup = TFormStyle.Popup deprecated 'Use TFormStyle.Popup'; + fsStayOnTop = TFormStyle.StayOnTop deprecated 'Use TFormStyle.StayOnTop'; + end; + + TAlignLayoutHelper = record helper for TAlignLayout + const + alNone = TAlignLayout.None deprecated 'Use TAlignLayout.None'; + alTop = TAlignLayout.Top deprecated 'Use TAlignLayout.Top'; + alLeft = TAlignLayout.Left deprecated 'Use TAlignLayout.Left'; + alRight = TAlignLayout.Right deprecated 'Use TAlignLayout.Right'; + alBottom = TAlignLayout.Bottom deprecated 'Use TAlignLayout.Bottom'; + alMostTop = TAlignLayout.MostTop deprecated 'Use TAlignLayout.MostTop'; + alMostBottom = TAlignLayout.MostBottom deprecated 'Use TAlignLayout.MostBottom'; + alMostLeft = TAlignLayout.MostLeft deprecated 'Use TAlignLayout.MostLeft'; + alMostRight = TAlignLayout.MostRight deprecated 'Use TAlignLayout.MostRight'; + alClient = TAlignLayout.Client deprecated 'Use TAlignLayout.Client'; + alContents = TAlignLayout.Contents deprecated 'Use TAlignLayout.Contents'; + alCenter = TAlignLayout.Center deprecated 'Use TAlignLayout.Center'; + alVertCenter = TAlignLayout.VertCenter deprecated 'Use TAlignLayout.VertCenter'; + alHorzCenter = TAlignLayout.HorzCenter deprecated 'Use TAlignLayout.HorzCenter'; + alHorizontal = TAlignLayout.Horizontal deprecated 'Use TAlignLayout.Horizontal'; + alVertical = TAlignLayout.Vertical deprecated 'Use TAlignLayout.Vertical'; + alScale = TAlignLayout.Scale deprecated 'Use TAlignLayout.Scale'; + alFit = TAlignLayout.Fit deprecated 'Use TAlignLayout.Fit'; + alFitLeft = TAlignLayout.FitLeft deprecated 'Use TAlignLayout.FitLeft'; + alFitRight = TAlignLayout.FitRight deprecated 'Use TAlignLayout.FitRight'; + end; + + TGradientStyleHelper = record helper for TGradientStyle + const + gsLinear = TGradientStyle.Linear deprecated 'Use TGradientStyle.Linear'; + gsRadial = TGradientStyle.Radial deprecated 'Use TGradientStyle.Radial'; + end; + + TBrushKindHelper = record helper for TBrushKind + const + bkNone = TBrushKind.None deprecated 'Use TBrushKind.None'; + bkSolid = TBrushKind.Solid deprecated 'Use TBrushKind.Solid'; + bkGradient = TBrushKind.Gradient deprecated 'Use TBrushKind.Gradient'; + bkBitmap = TBrushKind.Bitmap deprecated 'Use TBrushKind.Bitmap'; + bkResource = TBrushKind.Resource deprecated 'Use TBrushKind.Resource'; + end; + + TStrokeCapHelper = record helper for TStrokeCap + const + scFlat = TStrokeCap.Flat deprecated 'Use TStrokeCap.Flat'; + scRound = TStrokeCap.Round deprecated 'Use TStrokeCap.Round'; + end; + + TStrokeJoinHelper = record helper for TStrokeJoin + const + sjMiter = TStrokeJoin.Miter deprecated 'Use TStrokeJoin.Miter'; + sjRound = TStrokeJoin.Round deprecated 'Use TStrokeJoin.Round'; + sjBevel = TStrokeJoin.Bevel deprecated 'Use TStrokeJoin.Bevel'; + end; + + TStrokeDashHelper = record helper for TStrokeDash + const + sdSolid = TStrokeDash.Solid deprecated 'Use TStrokeDash.Solid'; + sdDash = TStrokeDash.Dash deprecated 'Use TStrokeDash.Dash'; + sdDot = TStrokeDash.Dot deprecated 'Use TStrokeDash.Dot'; + sdDashDot = TStrokeDash.DashDot deprecated 'Use TStrokeDash.DashDot'; + sdDashDotDot = TStrokeDash.DashDotDot deprecated 'Use TStrokeDash.DashDotDot'; + sdCustom = TStrokeDash.Custom deprecated 'Use TStrokeDash.Custom'; + end; + + TFillTextFlagHelper = record helper for TFillTextFlag + const + ftRightToLeft = TFillTextFlag.RightToLeft deprecated 'Use TFillTextFlag.RightToLeft'; + end; + + TMapAccessHelper = record helper for TMapAccess + const + maRead = TMapAccess.Read deprecated 'Use TMapAccess.Read'; + maWrite = TMapAccess.Write deprecated 'Use TMapAccess.Write'; + maReadWrite = TMapAccess.ReadWrite deprecated 'Use TMapAccess.ReadWrite'; + end; + + TOrientationHelper = record helper for TOrientation + const + orHorizontal = TOrientation.Horizontal deprecated 'Use TOrientation.Horizontal'; + orVertical = TOrientation.Vertical deprecated 'Use TOrientation.Vertical'; + end; + + TPlacementHelper = record helper for TPlacement + const + plBottom = TPlacement.Bottom deprecated 'Use TPlacement.Bottom'; + plTop = TPlacement.Top deprecated 'Use TPlacement.Top'; + plLeft = TPlacement.Left deprecated 'Use TPlacement.Left'; + plRight = TPlacement.Right deprecated 'Use TPlacement.Right'; + plCenter = TPlacement.Center deprecated 'Use TPlacement.Center'; + plBottomCenter = TPlacement.BottomCenter deprecated 'Use TPlacement.BottomCenter'; + plTopCenter = TPlacement.TopCenter deprecated 'Use TPlacement.TopCenter'; + plLeftCenter = TPlacement.LeftCenter deprecated 'Use TPlacement.LeftCenter'; + plRightCenter = TPlacement.RightCenter deprecated 'Use TPlacement.RightCenter'; + plAbsolute = TPlacement.Absolute deprecated 'Use TPlacement.Absolute'; + plMouse = TPlacement.Mouse deprecated 'Use TPlacement.Mouse'; + plMouseCenter = TPlacement.MouseCenter deprecated 'Use TPlacement.MouseCenter'; + end; + + TVirtualKeyboardTypeHelper = record helper for TVirtualKeyboardType + const + vktDefault = TVirtualKeyboardType.Default deprecated 'Use TVirtualKeyboardType.Default'; + vktNumbersAndPunctuation = TVirtualKeyboardType.NumbersAndPunctuation deprecated 'Use TVirtualKeyboardType.NumbersAndPunctuation'; + vktNumberPad = TVirtualKeyboardType.NumberPad deprecated 'Use TVirtualKeyboardType.NumberPad'; + vktPhonePad = TVirtualKeyboardType.PhonePad deprecated 'Use TVirtualKeyboardType.PhonePad'; + vktAlphabet = TVirtualKeyboardType.Alphabet deprecated 'Use TVirtualKeyboardType.Alphabet'; + vktURL = TVirtualKeyboardType.URL deprecated 'Use TVirtualKeyboardType.URL'; + vktNamePhonePad = TVirtualKeyboardType.NamePhonePad deprecated 'Use TVirtualKeyboardType.NamePhonePad'; + vktEmailAddress = TVirtualKeyboardType.EmailAddress deprecated 'Use TVirtualKeyboardType.EmailAddress'; + end; + + TVirtualKeyboardStateHelper = record helper for TVirtualKeyboardState + const + vksAutoShow = TVirtualKeyboardState.AutoShow deprecated 'Use TVirtualKeyboardState.AutoShow'; + vksVisible = TVirtualKeyboardState.Visible deprecated 'Use TVirtualKeyboardState.Visible'; + vksError = TVirtualKeyboardState.Error deprecated 'Use TVirtualKeyboardState.Error'; + vksTransient = TVirtualKeyboardState.Transient deprecated 'Use TVirtualKeyboardState.Transient'; + end; + + TReturnKeyTypeHelper = record helper for TReturnKeyType + const + rktDefault = TReturnKeyType.Default deprecated 'Use TReturnKeyType.Default'; + rktDone = TReturnKeyType.Done deprecated 'Use TReturnKeyType.Done'; + rktGo = TReturnKeyType.Go deprecated 'Use TReturnKeyType.Go'; + rktNext = TReturnKeyType.Next deprecated 'Use TReturnKeyType.Next'; + rktSearch = TReturnKeyType.Search deprecated 'Use TReturnKeyType.Search'; + rktSend = TReturnKeyType.Send deprecated 'Use TReturnKeyType.Send'; + end; + +implementation + +initialization + AddEnumElementAliases(TypeInfo(TCalloutPosition), ['cpTop', 'cpLeft', 'cpBottom', 'cpRight']); + AddEnumElementAliases(TypeInfo(TCorner), ['crTopLeft', 'crTopRight', 'crBottomLeft', 'crBottomRight']); + AddEnumElementAliases(TypeInfo(TCornerType), ['ctRound', 'ctBevel', 'ctInnerRound', 'ctInnerLine']); + AddEnumElementAliases(TypeInfo(TSide), ['sdTop', 'sdLeft', 'sdBottom', 'sdRight']); + AddEnumElementAliases(TypeInfo(TTextAlign), ['taCenter', 'taLeading', 'taTrailing']); + AddEnumElementAliases(TypeInfo(TTextTrimming), ['ttNone', 'ttCharacter', 'ttWord']); + AddEnumElementAliases(TypeInfo(TStyledSetting), ['ssFamily', 'ssSize', 'ssStyle', 'ssFontColor', 'ssOther']); + AddEnumElementAliases(TypeInfo(TMenuItemChange), ['mcEnabled', 'mcVisible', 'mcText', 'mcShortcut', 'mcChecked', 'mcBitmap']); + AddEnumElementAliases(TypeInfo(TScreenOrientation), ['soPortrait', 'soLandscape', 'soInvertedPortrait', 'soInvertedLandscape']); + AddEnumElementAliases(TypeInfo(TFormStyle), ['fsNormal', 'fsPopup', 'fsStayOnTop']); + AddEnumElementAliases(TypeInfo(TAlignLayout), ['alNone', 'alTop', 'alLeft', 'alRight', 'alBottom', 'alMostTop', 'alMostBottom', 'alMostLeft', 'alMostRight', 'alClient', 'alContents', 'alCenter', 'alVertCenter', 'alHorzCenter', 'alHorizontal', 'alVertical', 'alScale', 'alFit', 'alFitLeft', 'alFitRight']); + AddEnumElementAliases(TypeInfo(TGradientStyle), ['gsLinear', 'gsRadial']); + AddEnumElementAliases(TypeInfo(TBrushKind), ['bkNone', 'bkSolid', 'bkGradient', 'bkBitmap', 'bkResource']); + AddEnumElementAliases(TypeInfo(TStrokeCap), ['scFlat', 'scRound']); + AddEnumElementAliases(TypeInfo(TStrokeJoin), ['sjMiter', 'sjRound', 'sjBevel']); + AddEnumElementAliases(TypeInfo(TStrokeDash), ['sdSolid', 'sdDash', 'sdDot', 'sdDashDot', 'sdDashDotDot', 'sdCustom']); + AddEnumElementAliases(TypeInfo(TMapAccess), ['maRead', 'maWrite', 'maReadWrite']); + AddEnumElementAliases(TypeInfo(TFillTextFlag), ['ftRightToLeft']); + AddEnumElementAliases(TypeInfo(TOrientation), ['orHorizontal', 'orVertical']); + AddEnumElementAliases(TypeInfo(TPlacement), ['plBottom', 'plTop', 'plLeft', 'plRight', 'plCenter', 'plBottomCenter', 'plTopCenter', 'plLeftCenter', 'plRightCenter', 'plAbsolute', 'plMouse', 'plMouseCenter']); + AddEnumElementAliases(TypeInfo(TVirtualKeyboardType), ['vktDefault', 'vktNumbersAndPunctuation', 'vktNumberPad', 'vktPhonePad', 'vktAlphabet', 'vktURL', 'vktNamePhonePad', 'vktEmailAddress']); + AddEnumElementAliases(TypeInfo(TReturnKeyType), ['rktDefault', 'rktDone', 'rktGo', 'rktNext', 'rktSearch']); + AddEnumElementAliases(TypeInfo(TVirtualKeyboardState), ['vksAutoShow', 'vksVisible', 'vksError', 'vksTransient']); + + +finalization + RemoveEnumElementAliases(TypeInfo(TCalloutPosition)); + RemoveEnumElementAliases(TypeInfo(TCorner)); + RemoveEnumElementAliases(TypeInfo(TCornerType)); + RemoveEnumElementAliases(TypeInfo(TSide)); + RemoveEnumElementAliases(TypeInfo(TTextAlign)); + RemoveEnumElementAliases(TypeInfo(TTextTrimming)); + RemoveEnumElementAliases(TypeInfo(TStyledSetting)); + RemoveEnumElementAliases(TypeInfo(TMenuItemChange)); + RemoveEnumElementAliases(TypeInfo(TScreenOrientation)); + RemoveEnumElementAliases(TypeInfo(TFormStyle)); + RemoveEnumElementAliases(TypeInfo(TAlignLayout)); + RemoveEnumElementAliases(TypeInfo(TGradientStyle)); + RemoveEnumElementAliases(TypeInfo(TBrushKind)); + RemoveEnumElementAliases(TypeInfo(TStrokeCap)); + RemoveEnumElementAliases(TypeInfo(TStrokeJoin)); + RemoveEnumElementAliases(TypeInfo(TStrokeDash)); + RemoveEnumElementAliases(TypeInfo(TMapAccess)); + RemoveEnumElementAliases(TypeInfo(TFillTextFlag)); + RemoveEnumElementAliases(TypeInfo(TOrientation)); + RemoveEnumElementAliases(TypeInfo(TPlacement)); + RemoveEnumElementAliases(TypeInfo(TVirtualKeyboardType)); + RemoveEnumElementAliases(TypeInfo(TReturnKeyType)); + RemoveEnumElementAliases(TypeInfo(TVirtualKeyboardState)); + + +end. diff --git a/FastScript/FMX.FormTypeAliases.pas b/FastScript/FMX.FormTypeAliases.pas new file mode 100644 index 0000000..99d3df6 --- /dev/null +++ b/FastScript/FMX.FormTypeAliases.pas @@ -0,0 +1,70 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Graphics.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.FormTypeAliases; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.Types, FMX.Objects, System.UITypes, System.UIConsts, FMX.Graphics, System.Types, System.TypInfo, FMX.Forms; + +type + TFmxFormBorderStyleHelper = record helper for TFmxFormBorderStyle + const + bsNone = TFmxFormBorderStyle.None deprecated 'Use TFmxFormBorderStyle.None'; + bsSingle = TFmxFormBorderStyle.Single deprecated 'Use TFmxFormBorderStyle.Single'; + bsSizeable = TFmxFormBorderStyle.Sizeable deprecated 'Use TFmxFormBorderStyle.Sizeable'; + bsToolWindow = TFmxFormBorderStyle.ToolWindow deprecated 'Use TFmxFormBorderStyle.ToolWindow'; + bsSizeToolWin = TFmxFormBorderStyle.SizeToolWin deprecated 'Use TFmxFormBorderStyle.SizeToolWin'; + end; + + TFormPositionHelper = record helper for TFormPosition + const + poDesigned = TFormPosition.Designed deprecated 'Use TFormPosition.Designed'; + poDefault = TFormPosition.Default deprecated 'Use TFormPosition.Default'; + poDefaultPosOnly = TFormPosition.DefaultPosOnly deprecated 'Use TFormPosition.DefaultPosOnly'; + poDefaultSizeOnly = TFormPosition.DefaultSizeOnly deprecated 'Use TFormPosition.DefaultSizeOnly'; + poScreenCenter = TFormPosition.ScreenCenter deprecated 'Use TFormPosition.ScreenCenter'; + poDesktopCenter = TFormPosition.DesktopCenter deprecated 'Use TFormPosition.DesktopCenter'; + poMainFormCenter = TFormPosition.MainFormCenter deprecated 'Use TFormPosition.MainFormCenter'; + poOwnerFormCenter = TFormPosition.OwnerFormCenter deprecated 'Use TFormPosition.OwnerFormCenter'; + end; + + TFmxFormStateHelper = record helper for TFmxFormState + const + fsRecreating = TFmxFormState.Recreating deprecated 'Use TFmxFormState.Recreating'; + fsModal = TFmxFormState.Modal deprecated 'Use TFmxFormState.Modal'; + fsReleased = TFmxFormState.Released deprecated 'Use TFmxFormState.Released'; + fsInDesigner = TFmxFormState.InDesigner deprecated 'Use TFmxFormState.InDesigner'; + fsWasNotShown = TFmxFormState.WasNotShown deprecated 'Use TFmxFormState.WasNotShown'; + fsShowing = TFmxFormState.Showing deprecated 'Use TFmxFormState.Showing'; + fsUpdateBorder = TFmxFormState.UpdateBorder deprecated 'Use TFmxFormState.UpdateBorder'; + fsActivation = TFmxFormState.Activation deprecated 'Use TFmxFormState.Activation'; + end; + + +implementation + +initialization + AddEnumElementAliases(TypeInfo(TFmxFormBorderStyle), ['bsNone', 'bsSingle', 'bsSizeable', 'bsToolWindow', 'bsSizeToolWin']); + AddEnumElementAliases(TypeInfo(TFormPosition), ['poDesigned', 'poDefault', 'poDefaultPosOnly', 'poDefaultSizeOnly', 'poScreenCenter', 'poDesktopCenter', + 'poMainFormCenter', 'poOwnerFormCenter']); + AddEnumElementAliases(TypeInfo(TFmxFormState), ['fsRecreating', 'fsModal', 'fsReleased', 'fsInDesigner', 'fsWasNotShown', 'fsShowing', 'fsUpdateBorder', + 'fsActivation']); + +finalization + RemoveEnumElementAliases(TypeInfo(TFmxFormBorderStyle)); + RemoveEnumElementAliases(TypeInfo(TFormPosition)); + RemoveEnumElementAliases(TypeInfo(TFmxFormState)); + +end. diff --git a/FastScript/FMX.fs_iadortti.pas b/FastScript/FMX.fs_iadortti.pas new file mode 100644 index 0000000..f858548 --- /dev/null +++ b/FastScript/FMX.fs_iadortti.pas @@ -0,0 +1,129 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ ADO classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iadortti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_itools, FMX.fs_idbrtti, + Data.DB, Data.Win.ADODB, Winapi.ADOInt, FMX.Types; + +type +{$i frxPlatformsAttribute.inc} + TfsADORTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddType('TDataType', fvtInt); + AddClass(TADOConnection, 'TComponent'); + AddClass(TParameter, 'TCollectionItem'); + with AddClass(TParameters, 'TCollection') do + begin + AddMethod('function AddParameter: TParameter', CallMethod); + AddDefaultProperty('Items', 'Integer', 'TParameter', CallMethod, True); + end; + with AddClass(TCustomADODataSet, 'TDataSet') do + begin + AddProperty('Sort', 'WideString', GetProp, SetProp); + end; + AddClass(TADOTable, 'TCustomADODataSet'); + with AddClass(TADOQuery, 'TCustomADODataSet') do + AddMethod('procedure ExecSQL', CallMethod); + with AddClass(TADOStoredProc, 'TCustomADODataSet') do + AddMethod('procedure ExecProc', CallMethod); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + + if ClassType = TParameters then + begin + if MethodName = 'ADDPARAMETER' then + Result := frxInteger(TParameters(Instance).AddParameter) + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(TParameters(Instance).Items[Caller.Params[0]]) + end + else if ClassType = TADOQuery then + begin + if MethodName = 'EXECSQL' then + TADOQuery(Instance).ExecSQL + end + else if ClassType = TADOStoredProc then + begin + if MethodName = 'EXECPROC' then + TADOStoredProc(Instance).ExecProc + end +end; + + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TCustomADODataSet then + begin + if PropName = 'SORT' then + Result := TCustomADODataSet(Instance).Sort; + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + + if ClassType = TCustomADODataSet then + begin + if PropName = 'SORT' then + TCustomADODataSet(Instance).Sort := Value; + end + +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsADORTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. + diff --git a/FastScript/FMX.fs_ibasic.pas b/FastScript/FMX.fs_ibasic.pas new file mode 100644 index 0000000..8a0c8e7 --- /dev/null +++ b/FastScript/FMX.fs_ibasic.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Basic grammar } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_ibasic; +{$i FMX.inc} +{$i fs_ibasic.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_ichartrtti.pas b/FastScript/FMX.fs_ichartrtti.pas new file mode 100644 index 0000000..4fdff87 --- /dev/null +++ b/FastScript/FMX.fs_ichartrtti.pas @@ -0,0 +1,181 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Chart } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_ichartrtti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_itools, FMX.fs_iformsrtti, FMX.Objects, + FMXTee.Chart, FMXTee.Series, FMXTee.Engine, FMXTee.Procs, FMXTee.Canvas, FMX.Types, System.Types; + + +type +{$i frxPlatformsAttribute.inc} + TfsChartRTTI = class(TFmxObject); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddType('TChartValue', fvtFloat); + AddEnum('TLegendStyle', 'lsAuto, lsSeries, lsValues, lsLastValues'); + AddEnum('TLegendAlignment', 'laLeft, laRight, laTop, laBottom'); + AddEnum('TLegendTextStyle', 'ltsPlain, ltsLeftValue, ltsRightValue, ltsLeftPercent,' + + 'ltsRightPercent, ltsXValue'); + AddEnum('TChartListOrder', 'loNone, loAscending, loDescending'); + AddEnum('TGradientDirection', 'gdTopBottom, gdBottomTop, gdLeftRight, gdRightLeft'); + AddEnum('TSeriesMarksStyle', 'smsValue, smsPercent, smsLabel, smsLabelPercent, ' + + 'smsLabelValue, smsLegend, smsPercentTotal, smsLabelPercentTotal, smsXValue'); + AddEnum('TAxisLabelStyle', 'talAuto, talNone, talValue, talMark, talText'); + AddEnum('THorizAxis', 'aTopAxis, aBottomAxis'); + AddEnum('TVertAxis', 'aLeftAxis, aRightAxis'); + AddEnum('TTeeBackImageMode', 'pbmStretch, pbmTile, pbmCenter'); + AddEnum('TPanningMode', 'pmNone, pmHorizontal, pmVertical, pmBoth'); + AddEnum('TSeriesPointerStyle', 'psRectangle, psCircle, psTriangle, ' + + 'psDownTriangle, psCross, psDiagCross, psStar, psDiamond, psSmallDot'); + AddEnum('TMultiArea', 'maNone, maStacked, maStacked100'); + AddEnum('TMultiBar', 'mbNone, mbSide, mbStacked, mbStacked100'); + AddEnum('TBarStyle', 'bsRectangle, bsPyramid, bsInvPyramid, bsCilinder, ' + + 'bsEllipse, bsArrow, bsRectGradient'); + + AddEnum('TPenEndStyle', 'esRound, esSquare, esFlat'); + AddEnum('TPenMode', 'pmBlack, pmWhite, pmNop, pmNot, pmCopy, pmNotCopy, ' + + 'pmMergePenNot, pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge, ' + + 'pmNotMerge, pmMask, pmNotMask, pmXor, pmNotXor'); + AddEnum('TPenStyle', 'psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame'); + AddClass(TChartValueList, 'TPersistent'); + AddClass(TChartAxisTitle, 'TPersistent'); + AddClass(TChartAxis, 'TPersistent'); + AddClass(TCustomChartLegend, 'TPersistent'); + AddClass(TChartLegend, 'TCustomChartLegend'); + AddClass(TSeriesMarks, 'TPersistent'); + AddClass(TChartGradient, 'TPersistent'); + AddClass(TChartWall, 'TPersistent'); + AddClass(TChartBrush, 'TBrush'); + AddClass(TChartTitle, 'TPersistent'); + AddClass(TView3DOptions, 'TPersistent'); + AddClass(TChartPen, 'TComponent'); + with AddClass(TChartSeries, 'TComponent') do + begin + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure Delete(Index: Integer)', CallMethod); + AddMethod('function Count: Integer', CallMethod); + AddMethod('procedure Add(const AValue: Double; const ALabel: String; AColor: TColor)', CallMethod); + AddProperty('Active','Boolean', GetProp, SetProp); + AddProperty('ColorEachPoint','Boolean', GetProp, SetProp); + + end; + AddClass(TSeriesPointer, 'TPersistent'); + AddClass(TCustomSeries, 'TChartSeries'); + AddClass(TLineSeries, 'TCustomSeries'); + AddClass(TPointSeries, 'TCustomSeries'); + AddClass(TAreaSeries, 'TCustomSeries'); + with AddClass(TCustomBarSeries, 'TChartSeries') do + begin + AddProperty('Title','String', GetProp, SetProp); + end; + AddClass(TBarSeries, 'TCustomBarSeries'); + AddClass(THorizBarSeries, 'TCustomBarSeries'); + AddClass(TCircledSeries, 'TChartSeries'); + AddClass(TPieSeries, 'TCircledSeries'); + AddClass(TFastLineSeries, 'TChartSeries'); + AddClass(TCustomChart, 'TWinControl'); + AddClass(TChart, 'TCustomChart'); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + + if ClassType = TChartSeries then + begin + if MethodName = 'CLEAR' then + TChartSeries(Instance).Clear + else if MethodName = 'ADD' then + TChartSeries(Instance).Add(Caller.Params[0], String(Caller.Params[1]), Caller.Params[2]) + else if MethodName = 'DELETE' then + TChartSeries(Instance).Delete(Caller.Params[0]) + else if MethodName = 'COUNT' then + Result := TChartSeries(Instance).Count + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TChartSeries then + begin + if PropName = 'ACTIVE' then + Result := TChartSeries(Instance).Active + else if PropName = 'COLOREACHPOINT' then + Result := TChartSeries(Instance).ColorEachPoint + end else + if ClassType = TCustomBarSeries then + begin + if PropName = 'Title' then + Result := TCustomBarSeries(Instance).Title + end; +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TChartSeries then + begin + if PropName = 'ACTIVE' then + TChartSeries(Instance).Active := Value + else if PropName = 'COLOREACHPOINT' then + TChartSeries(Instance).ColorEachPoint := Value + end else + if ClassType = TCustomBarSeries then + begin + if PropName = 'Title' then + TCustomBarSeries(Instance).Title := Value + end +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsChartRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX.fs_iclassesrtti.pas b/FastScript/FMX.fs_iclassesrtti.pas new file mode 100644 index 0000000..97fd2ec --- /dev/null +++ b/FastScript/FMX.fs_iclassesrtti.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Classes.pas classes and functions } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iclassesrtti; +{$i FMX.inc} +{$i fs_iclassesrtti.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_iconst.pas b/FastScript/FMX.fs_iconst.pas new file mode 100644 index 0000000..c23d7cf --- /dev/null +++ b/FastScript/FMX.fs_iconst.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Resources } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iconst; +{$i FMX.inc} +{$i fs_iconst.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_icpp.pas b/FastScript/FMX.fs_icpp.pas new file mode 100644 index 0000000..64a3c70 --- /dev/null +++ b/FastScript/FMX.fs_icpp.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ C++ grammar } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_icpp; +{$i FMX.inc} +{$i fs_icpp.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_idbrtti.pas b/FastScript/FMX.fs_idbrtti.pas new file mode 100644 index 0000000..dbb1620 --- /dev/null +++ b/FastScript/FMX.fs_idbrtti.pas @@ -0,0 +1,570 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ DB.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_idbrtti; + +interface + +{$i fs.inc} + +uses + System.Types, System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_itools, FMX.fs_iclassesrtti, FMX.fs_ievents, + Data.DB, FMX.Types; + +type +{$i frxPlatformsAttribute.inc} + TfsDBRTTI = class(TComponent); // fake component + + TfsDatasetNotifyEvent = class(TfsCustomEvent) + public + procedure DoEvent(Dataset: TDataset); + function GetMethod: Pointer; override; + end; + + TfsFilterRecordEvent = class(TfsCustomEvent) + public + procedure DoEvent(DataSet: TDataSet; var Accept: Boolean); + function GetMethod: Pointer; override; + end; + + TfsFieldGetTextEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TField; var Text: String; DisplayText: Boolean); + function GetMethod: Pointer; override; + end; + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TfsDatasetNotifyEvent } + +procedure TfsDatasetNotifyEvent.DoEvent(Dataset: TDataset); +begin + CallHandler([Dataset]); +end; + +function TfsDatasetNotifyEvent.GetMethod: Pointer; +begin + Result := @TfsDatasetNotifyEvent.DoEvent; +end; + + +{ TfsFilterRecordEvent } + +procedure TfsFilterRecordEvent.DoEvent(DataSet: TDataSet; var Accept: Boolean); +begin + CallHandler([DataSet, Accept]); + Accept := Handler.Params[1].Value; +end; + +function TfsFilterRecordEvent.GetMethod: Pointer; +begin + Result := @TfsFilterRecordEvent.DoEvent; +end; + + +{ TfsFieldGetTextEvent } + +procedure TfsFieldGetTextEvent.DoEvent(Sender: TField; var Text: String; DisplayText: Boolean); +begin + CallHandler([Sender, Text, DisplayText]); + Text := Handler.Params[1].Value; +end; + +function TfsFieldGetTextEvent.GetMethod: Pointer; +begin + Result := @TfsFieldGetTextEvent.DoEvent; +end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddEnum('TFieldType', 'ftUnknown, ftString, ftSmallint, ftInteger, ftWord,' + + 'ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime,' + + 'ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo,' + + 'ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString,' + + 'ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob,' + + 'ftVariant, ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd'); + AddEnum('TBlobStreamMode', 'bmRead, bmWrite, bmReadWrite'); + AddEnumSet('TLocateOptions', 'loCaseInsensitive, loPartialKey'); + AddEnumSet('TFilterOptions', 'foCaseInsensitive, foNoPartialCompare'); + AddEnum('TParamType', 'ptUnknown, ptInput, ptOutput, ptInputOutput, ptResult'); + + with AddClass(TField, 'TComponent') do + begin + AddProperty('AsBoolean', 'Boolean', GetProp, SetProp); + AddProperty('AsCurrency', 'Currency', GetProp, SetProp); + AddProperty('AsDateTime', 'TDateTime', GetProp, SetProp); + AddProperty('AsFloat', 'Double', GetProp, SetProp); + AddProperty('AsInteger', 'Integer', GetProp, SetProp); + AddProperty('AsString', 'String', GetProp, SetProp); + AddProperty('AsVariant', 'Variant', GetProp, SetProp); + AddProperty('DataType', 'TFieldType', GetProp, nil); + AddProperty('DisplayName', 'String', GetProp, nil); + AddProperty('DisplayText', 'String', GetProp, nil); + AddProperty('IsNull', 'Boolean', GetProp, nil); + AddProperty('Size', 'Integer', GetProp, SetProp); + AddProperty('Value', 'Variant', GetProp, SetProp); + AddProperty('OldValue', 'Variant', GetProp, nil); + AddEvent('OnGetText', TfsFieldGetTextEvent); + end; + with AddClass(TFields, 'TObject') do + AddDefaultProperty('Fields', 'Integer', 'TField', CallMethod, True); + AddClass(TStringField, 'TField'); + AddClass(TNumericField, 'TField'); + AddClass(TIntegerField, 'TNumericField'); + AddClass(TSmallIntField, 'TIntegerField'); + AddClass(TWordField, 'TIntegerField'); + AddClass(TAutoIncField, 'TIntegerField'); + AddClass(TFloatField, 'TNumericField'); + AddClass(TCurrencyField, 'TFloatField'); + AddClass(TBooleanField, 'TField'); + AddClass(TDateTimeField, 'TField'); + AddClass(TDateField, 'TDateTimeField'); + AddClass(TTimeField, 'TDateTimeField'); + AddClass(TBinaryField, 'TField'); + AddClass(TBytesField, 'TBinaryField'); + AddClass(TVarBytesField, 'TBinaryField'); + AddClass(TBCDField, 'TNumericField'); + with AddClass(TBlobField, 'TField') do + begin + AddMethod('procedure LoadFromFile(const FileName: String)', CallMethod); + AddMethod('procedure LoadFromStream(Stream: TStream)', CallMethod); + AddMethod('procedure SaveToFile(const FileName: String)', CallMethod); + AddMethod('procedure SaveToStream(Stream: TStream)', CallMethod); + end; + AddClass(TMemoField, 'TBlobField'); + AddClass(TGraphicField, 'TBlobField'); + AddClass(TFieldDef, 'TPersistent'); + with AddClass(TFieldDefs, 'TObject') do + begin + AddMethod('function AddFieldDef: TFieldDef', CallMethod); + AddMethod('function Find(const Name: string): TFieldDef', CallMethod); + AddMethod('procedure Add(const Name: string; DataType: TFieldType; Size: Word; Required: Boolean)', CallMethod); + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure Update', CallMethod); + AddDefaultProperty('Items', 'Integer', 'TFieldDef', CallMethod, True); + end; + AddClass(TDataSource, 'TComponent'); + AddType('TBookmark', fvtVariant); + with AddClass(TDataSet, 'TComponent') do + begin + AddMethod('procedure Open', CallMethod); + AddMethod('procedure Close', CallMethod); + AddMethod('procedure First', CallMethod); + AddMethod('procedure Last', CallMethod); + AddMethod('procedure Next', CallMethod); + AddMethod('procedure Prior', CallMethod); + AddMethod('procedure Cancel', CallMethod); + AddMethod('procedure Delete', CallMethod); + AddMethod('procedure Post', CallMethod); + AddMethod('procedure Append', CallMethod); + AddMethod('procedure Insert', CallMethod); + AddMethod('procedure Edit', CallMethod); + + AddMethod('function FieldByName(const FieldName: string): TField', CallMethod); + AddMethod('procedure GetFieldNames(List: TStrings)', CallMethod); + AddMethod('function FindFirst: Boolean', CallMethod); + AddMethod('function FindLast: Boolean', CallMethod); + AddMethod('function FindNext: Boolean', CallMethod); + AddMethod('function FindPrior: Boolean', CallMethod); + AddMethod('procedure FreeBookmark(Bookmark: TBookmark)', CallMethod); + AddMethod('function GetBookmark: TBookmark', CallMethod); + AddMethod('procedure GotoBookmark(Bookmark: TBookmark)', CallMethod); + AddMethod('function Locate(const KeyFields: string; const KeyValues: Variant;' + + 'Options: TLocateOptions): Boolean', CallMethod); + AddMethod('function IsEmpty: Boolean', CallMethod); + AddMethod('procedure EnableControls', CallMethod); + AddMethod('procedure DisableControls', CallMethod); + + AddProperty('Bof', 'Boolean', GetProp, nil); + AddProperty('Eof', 'Boolean', GetProp, nil); + AddProperty('FieldCount', 'Integer', GetProp, nil); + AddProperty('FieldDefs', 'TFieldDefs', GetProp, nil); + AddProperty('Fields', 'TFields', GetProp, nil); + AddProperty('Filter', 'string', GetProp, SetProp); + AddProperty('Filtered', 'Boolean', GetProp, SetProp); + AddProperty('FilterOptions', 'TFilterOptions', GetProp, SetProp); + AddProperty('Active', 'Boolean', GetProp, SetProp); + + AddEvent('BeforeOpen', TfsDatasetNotifyEvent); + AddEvent('AfterOpen', TfsDatasetNotifyEvent); + AddEvent('BeforeClose', TfsDatasetNotifyEvent); + AddEvent('AfterClose', TfsDatasetNotifyEvent); + AddEvent('BeforeInsert', TfsDatasetNotifyEvent); + AddEvent('AfterInsert', TfsDatasetNotifyEvent); + AddEvent('BeforeEdit', TfsDatasetNotifyEvent); + AddEvent('AfterEdit', TfsDatasetNotifyEvent); + AddEvent('BeforePost', TfsDatasetNotifyEvent); + AddEvent('AfterPost', TfsDatasetNotifyEvent); + AddEvent('BeforeCancel', TfsDatasetNotifyEvent); + AddEvent('AfterCancel', TfsDatasetNotifyEvent); + AddEvent('BeforeDelete', TfsDatasetNotifyEvent); + AddEvent('AfterDelete', TfsDatasetNotifyEvent); + AddEvent('BeforeScroll', TfsDatasetNotifyEvent); + AddEvent('AfterScroll', TfsDatasetNotifyEvent); + AddEvent('OnCalcFields', TfsDatasetNotifyEvent); + AddEvent('OnFilterRecord', TfsFilterRecordEvent); + AddEvent('OnNewRecord', TfsDatasetNotifyEvent); + end; + + with AddClass(TParam, 'TPersistent') do + begin + AddMethod('procedure Clear', CallMethod); + AddProperty('AsBoolean', 'Boolean', GetProp, SetProp); + AddProperty('AsCurrency', 'Currency', GetProp, SetProp); + AddProperty('AsDateTime', 'TDateTime', GetProp, SetProp); + AddProperty('AsFloat', 'Double', GetProp, SetProp); + AddProperty('AsInteger', 'Integer', GetProp, SetProp); + AddProperty('AsDate', 'TDate', GetProp, SetProp); + AddProperty('AsTime', 'TTime', GetProp, SetProp); + AddProperty('AsString', 'String', GetProp, SetProp); + AddProperty('Bound', 'Boolean', GetProp, SetProp); + AddProperty('IsNull', 'Boolean', GetProp, nil); + AddProperty('Text', 'String', GetProp, SetProp); + end; + with AddClass(TParams, 'TPersistent') do + begin + AddMethod('function ParamByName(const Value: string): TParam', CallMethod); + AddMethod('function FindParam(const Value: string): TParam', CallMethod); + AddDefaultProperty('Items', 'Integer', 'TParam', CallMethod, True); + end; + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + _TDataSet: TDataSet; + + function IntToLocateOptions(i: Integer): TLocateOptions; + begin + Result := []; + if (i and 1) <> 0 then + Result := Result + [loCaseInsensitive]; + if (i and 2) <> 0 then + Result := Result + [loPartialKey]; + end; + +begin + Result := 0; + + if ClassType = TFields then + begin + if MethodName = 'FIELDS.GET' then + Result := frxInteger(TFields(Instance)[Caller.Params[0]]) + end + else if ClassType = TFieldDefs then + begin + if MethodName = 'ITEMS.GET' then + Result := frxInteger(TFieldDefs(Instance)[Caller.Params[0]]) + else if MethodName = 'ADD' then + TFieldDefs(Instance).Add(Caller.Params[0], TFieldType(Caller.Params[1]), Caller.Params[2], Caller.Params[3]) + else if MethodName = 'ADDFIELDDEF' then + Result := frxInteger(TFieldDefs(Instance).AddFieldDef) + else if MethodName = 'CLEAR' then + TFieldDefs(Instance).Clear + else if MethodName = 'FIND' then + Result := frxInteger(TFieldDefs(Instance).Find(Caller.Params[0])) + else if MethodName = 'UPDATE' then + TFieldDefs(Instance).Update + end + else if ClassType = TBlobField then + begin + if MethodName = 'LOADFROMFILE' then + TBlobField(Instance).LoadFromFile(Caller.Params[0]) + else if MethodName = 'LOADFROMSTREAM' then + TBlobField(Instance).LoadFromStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'SAVETOFILE' then + TBlobField(Instance).SaveToFile(Caller.Params[0]) + else if MethodName = 'SAVETOSTREAM' then + TBlobField(Instance).SaveToStream(TStream(frxInteger(Caller.Params[0]))) + end + else if ClassType = TDataSet then + begin + _TDataSet := TDataSet(Instance); + if MethodName = 'OPEN' then + _TDataSet.Open + else if MethodName = 'CLOSE' then + _TDataSet.Close + else if MethodName = 'FIRST' then + _TDataSet.First + else if MethodName = 'LAST' then + _TDataSet.Last + else if MethodName = 'NEXT' then + _TDataSet.Next + else if MethodName = 'PRIOR' then + _TDataSet.Prior + else if MethodName = 'CANCEL' then + _TDataSet.Cancel + else if MethodName = 'DELETE' then + _TDataSet.Delete + else if MethodName = 'POST' then + _TDataSet.Post + else if MethodName = 'APPEND' then + _TDataSet.Append + else if MethodName = 'INSERT' then + _TDataSet.Insert + else if MethodName = 'EDIT' then + _TDataSet.Edit + else if MethodName = 'FIELDBYNAME' then + Result := frxInteger(_TDataSet.FieldByName(Caller.Params[0])) + else if MethodName = 'GETFIELDNAMES' then + _TDataSet.GetFieldNames(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'FINDFIRST' then + Result := _TDataSet.FindFirst + else if MethodName = 'FINDLAST' then + Result := _TDataSet.FindLast + else if MethodName = 'FINDNEXT' then + Result := _TDataSet.FindNext + else if MethodName = 'FINDPRIOR' then + Result := _TDataSet.FindPrior + else if MethodName = 'FREEBOOKMARK' then + _TDataSet.FreeBookmark(TBookMark(frxInteger(Caller.Params[0]))) +{$IFNDEF CPUX64} + else if MethodName = 'GETBOOKMARK' then + Result := frxInteger(_TDataSet.GetBookmark) +{$ENDIF} + else if MethodName = 'GOTOBOOKMARK' then + _TDataSet.GotoBookmark(TBookMark(frxInteger(Caller.Params[0]))) + else if MethodName = 'LOCATE' then + Result := _TDataSet.Locate(Caller.Params[0], Caller.Params[1], IntToLocateOptions(Caller.Params[2])) + else if MethodName = 'ISEMPTY' then + Result := _TDataSet.IsEmpty + else if MethodName = 'ENABLECONTROLS' then + _TDataSet.EnableControls + else if MethodName = 'DISABLECONTROLS' then + _TDataSet.DisableControls + end + else if ClassType = TParam then + begin + if MethodName = 'CLEAR' then + TParam(Instance).Clear + end + else if ClassType = TParams then + begin + if MethodName = 'PARAMBYNAME' then + Result := frxInteger(TParams(Instance).ParamByName(Caller.Params[0])) + else if MethodName = 'FINDPARAM' then + Result := frxInteger(TParams(Instance).FindParam(Caller.Params[0])) + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(TParams(Instance)[Caller.Params[0]]) + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +var + _TField: TField; + _TParam: TParam; + _TDataSet: TDataSet; + + function FilterOptionsToInt(f: TFilterOptions): Integer; + begin + Result := 0; + if foCaseInsensitive in f then + Result := Result or 1; + if foNoPartialCompare in f then + Result := Result or 2; + end; + +begin + Result := 0; + + if ClassType = TField then + begin + _TField := TField(Instance); + if PropName = 'ASBOOLEAN' then + Result := _TField.AsBoolean + else if PropName = 'ASCURRENCY' then + Result := _TField.AsCurrency + else if PropName = 'ASDATETIME' then + Result := _TField.AsDateTime + else if PropName = 'ASFLOAT' then + Result := _TField.AsFloat + else if PropName = 'ASINTEGER' then + Result := _TField.AsInteger + else if PropName = 'ASSTRING' then + Result := _TField.AsString + else if PropName = 'ASVARIANT' then + Result := _TField.AsVariant + else if PropName = 'DATATYPE' then + Result := _TField.DataType + else if PropName = 'DISPLAYNAME' then + Result := _TField.DisplayName + else if PropName = 'DISPLAYTEXT' then + Result := _TField.DisplayText + else if PropName = 'ISNULL' then + Result := _TField.IsNull + else if PropName = 'SIZE' then + Result := _TField.Size + else if PropName = 'VALUE' then + Result := _TField.Value + else if PropName = 'OLDVALUE' then + Result := _TField.OldValue + end + else if ClassType = TDataSet then + begin + _TDataSet := TDataSet(Instance); + if PropName = 'BOF' then + Result := _TDataSet.Bof + else if PropName = 'EOF' then + Result := _TDataSet.Eof + else if PropName = 'FIELDCOUNT' then + Result := _TDataSet.FieldCount + else if PropName = 'FIELDDEFS' then + Result := frxInteger(_TDataSet.FieldDefs) + else if PropName = 'FIELDS' then + Result := frxInteger(_TDataSet.Fields) + else if PropName = 'FILTER' then + Result := _TDataSet.Filter + else if PropName = 'FILTERED' then + Result := _TDataSet.Filtered + else if PropName = 'FILTEROPTIONS' then + Result := FilterOptionsToInt(_TDataSet.FilterOptions) + else if PropName = 'ACTIVE' then + Result := _TDataSet.Active + end + else if ClassType = TParam then + begin + _TParam := TParam(Instance); + if PropName = 'BOUND' then + Result := _TParam.Bound + else if PropName = 'ISNULL' then + Result := _TParam.IsNull + else if PropName = 'TEXT' then + Result := _TParam.Text + else if PropName = 'ASBOOLEAN' then + Result := _TParam.AsBoolean + else if PropName = 'ASCURRENCY' then + Result := _TParam.AsCurrency + else if PropName = 'ASDATETIME' then + Result := _TParam.AsDateTime + else if PropName = 'ASFLOAT' then + Result := _TParam.AsFloat + else if PropName = 'ASINTEGER' then + Result := _TParam.AsInteger + else if PropName = 'ASDATE' then + Result := _TParam.AsDate + else if PropName = 'ASTIME' then + Result := _TParam.AsTime + else if PropName = 'ASSTRING' then + Result := _TParam.AsString + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +var + _TField: TField; + _TParam: TParam; + _TDataSet: TDataSet; + + function IntToFilterOptions(i: Integer): TFilterOptions; + begin + Result := []; + if (i and 1) <> 0 then + Result := Result + [foCaseInsensitive]; + if (i and 2) <> 0 then + Result := Result + [foNoPartialCompare]; + end; + +begin + if ClassType = TField then + begin + _TField := TField(Instance); + if PropName = 'ASBOOLEAN' then + _TField.AsBoolean := Value + else if PropName = 'ASCURRENCY' then + _TField.AsCurrency := Value + else if PropName = 'ASDATETIME' then + _TField.AsDateTime := Value + else if PropName = 'ASFLOAT' then + _TField.AsFloat := Value + else if PropName = 'ASINTEGER' then + _TField.AsInteger := Value + else if PropName = 'ASSTRING' then + _TField.AsString := Value + else if PropName = 'ASVARIANT' then + _TField.AsVariant := Value + else if PropName = 'VALUE' then + _TField.Value := Value + else if PropName = 'SIZE' then + _TField.Size := Value + end + else if ClassType = TDataSet then + begin + _TDataSet := TDataSet(Instance); + if PropName = 'FILTER' then + _TDataSet.Filter := Value + else if PropName = 'FILTERED' then + _TDataSet.Filtered := Value + else if PropName = 'FILTEROPTIONS' then + _TDataSet.FilterOptions := IntToFilterOptions(Value) + else if PropName = 'ACTIVE' then + _TDataSet.Active := Value + end + else if ClassType = TParam then + begin + _TParam := TParam(Instance); + if PropName = 'ASBOOLEAN' then + _TParam.AsBoolean := Value + else if PropName = 'ASCURRENCY' then + _TParam.AsCurrency := Value + else if PropName = 'ASDATETIME' then + _TParam.AsDateTime := Value + else if PropName = 'ASFLOAT' then + _TParam.AsFloat := Value + else if PropName = 'ASINTEGER' then + _TParam.AsInteger := Value + else if PropName = 'ASDATE' then + _TParam.AsDate := Value + else if PropName = 'ASTIME' then + _TParam.AsTime := Value + else if PropName = 'ASSTRING' then + _TParam.AsString := Value + else if PropName = 'BOUND' then + _TParam.Bound := Value + else if PropName = 'TEXT' then + _TParam.Text := Value + end +end; + + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsDBRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX.fs_idialogsrtti.pas b/FastScript/FMX.fs_idialogsrtti.pas new file mode 100644 index 0000000..0d12fba --- /dev/null +++ b/FastScript/FMX.fs_idialogsrtti.pas @@ -0,0 +1,133 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Dialogs.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_idialogsrtti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_iclassesrtti, FMX.Types +, FMX.Dialogs, System.UITypes, System.Types +{$IFDEF DELPHI19} +, FMX.Printer +{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsDialogsRTTI = class(TComponent); // fake component + + +implementation + +type + THackDialog = class(TCommonDialog); + + + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + public + constructor Create(AScript: TfsScript); override; + end; + +type + TWordSet = set of 0..15; + PWordSet = ^TWordSet; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +var + dlg: String; +begin + inherited Create(AScript); + with AScript do + begin + AddEnumSet('TOpenOptions', 'ofReadOnly, ofOverwritePrompt, ofHideReadOnly,' + + 'ofNoChangeDir, ofShowHelp, ofNoValidate, ofAllowMultiSelect,' + + 'ofExtensionDifferent, ofPathMustExist, ofFileMustExist, ofCreatePrompt,' + + 'ofShareAware, ofNoReadOnlyReturn, ofNoTestFileCreate, ofNoNetworkButton,' + + 'ofNoLongNames, ofOldStyleDialog, ofNoDereferenceLinks, ofEnableIncludeNotify,' + + 'ofEnableSizing'); + AddEnum('TFileEditStyle', 'fsEdit, fsComboBox'); + AddEnumSet('TColorDialogOptions', 'cdFullOpen, cdPreventFullOpen, cdShowHelp,' + + 'cdSolidColor, cdAnyColor'); + AddEnumSet('TFontDialogOptions', 'fdAnsiOnly, fdTrueTypeOnly, fdEffects,' + + 'fdFixedPitchOnly, fdForceFontExist, fdNoFaceSel, fdNoOEMFonts,' + + 'fdNoSimulations, fdNoSizeSel, fdNoStyleSel, fdNoVectorFonts,' + + 'fdShowHelp, fdWysiwyg, fdLimitSize, fdScalableOnly, fdApplyButton'); + AddEnum('TFontDialogDevice', 'fdScreen, fdPrinter, fdBoth'); + AddEnum('TPrintRange', 'prAllPages, prSelection, prPageNums'); + AddEnumSet('TPrintDialogOptions', 'poPrintToFile, poPageNums, poSelection,' + + 'poWarning, poHelp, poDisablePrintToFile'); + AddEnum('TMsgDlgType', 'mtCustom, mtInformation, mtWarning, mtError, mtConfirmation'); + AddEnumSet('TMsgDlgButtons', 'mbNone, mbOk, mbCancel, mbYes, mbNo, mbAbort, ' + + 'mbRetry, mbIgnore'); + + + with AddClass(TCommonDialog, 'TComponent') do + AddMethod('function Execute: Boolean', CallMethod); + AddClass(TOpenDialog, 'TCommonDialog'); + AddClass(TSaveDialog, 'TCommonDialog'); + AddClass(TPrintDialog, dlg); + AddClass(TPrinterSetupDialog, dlg); + + AddMethod('function MessageDlg(Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer', CallMethod, 'ctOther'); + AddMethod('function InputBox(ACaption, APrompt, ADefault: string): string', CallMethod, 'ctOther'); + AddMethod('function InputQuery(ACaption, APrompt: string; var Value: string): Boolean', CallMethod, 'ctOther'); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + s: String; + b: TMsgDlgButtons; +begin + Result := 0; + + if ClassType = TCommonDialog then + begin + if MethodName = 'EXECUTE' then + Result := THackDialog(Instance).Execute + end + else if MethodName = 'INPUTBOX' then + Result := InputBox(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'INPUTQUERY' then + begin + s := Caller.Params[2]; + Result := InputQuery(Caller.Params[0], Caller.Params[1], s); + Caller.Params[2] := s; + end + else if MethodName = 'MESSAGEDLG' then + begin + Word(PWordSet(@b)^) := Caller.Params[2]; + Result := MessageDlg(Caller.Params[0], Caller.Params[1], b, Caller.Params[3]); + end +end; + + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsDialogsRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. \ No newline at end of file diff --git a/FastScript/FMX.fs_idisp.pas b/FastScript/FMX.fs_idisp.pas new file mode 100644 index 0000000..3ce8fda --- /dev/null +++ b/FastScript/FMX.fs_idisp.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ OLE dispatch module } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_idisp; +{$i FMX.inc} +{$i fs_idisp.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_ievents.pas b/FastScript/FMX.fs_ievents.pas new file mode 100644 index 0000000..2d6981e --- /dev/null +++ b/FastScript/FMX.fs_ievents.pas @@ -0,0 +1,379 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Standard events } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_ievents; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.Controls, FMX.Forms, System.UITypes, FMX.Types, + System.Types, System.Rtti, FMX.fs_iinterpreter, FMX.fs_iclassesrtti +{$IFDEF DELPHI19} + , FMX.Graphics +{$ENDIF}; + +type + + PDragObject = ^TDragObject; + TfsDragObject = class(TPersistent) + private + FDragObject: TDragObject; + FFiles: TStringList; + function GetStringList: TStringList; + public + function GetRect: TDragObject; + function GetRectP: PDragObject; + constructor Create(aDragObj: TDragObject); + destructor Destroy; override; + published + property Source: TObject read FDragObject.Source write FDragObject.Source; + property Data: {$IFDEF Delphi17}TValue{$ELSE}Variant{$ENDIF} read FDragObject.Data write FDragObject.Data; + property Files: TStringList read GetStringList; + end; + + TfsNotifyEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject); + function GetMethod: Pointer; override; + end; + + TfsMouseEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Single); + function GetMethod: Pointer; override; + end; + + TfsMouseMoveEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; Shift: TShiftState; X, Y: Single); + function GetMethod: Pointer; override; + end; + + TfsMouseWheelEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); + function GetMethod: Pointer; override; + end; + + TfsOnPaintEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); + function GetMethod: Pointer; override; + end; + + TfsCanFocusEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var ACanFocus: Boolean); + function GetMethod: Pointer; override; + end; + + TfsDragOverEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; const Data: TDragObject; const Point: TPointF; var Accept: Boolean); + function GetMethod: Pointer; override; + end; + + TfsDragDropEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; const Data: TDragObject; const Point: TPointF); + function GetMethod: Pointer; override; + end; + + TfsKeyEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var Key: Word; var KeyChar: WideChar; Shift: TShiftState); + function GetMethod: Pointer; override; + end; + + TfsKeyPressEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var Key: Char); + function GetMethod: Pointer; override; + end; + + TfsCloseEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var Action: TCloseAction); + function GetMethod: Pointer; override; + end; + + TfsCloseQueryEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var CanClose: Boolean); + function GetMethod: Pointer; override; + end; + + TfsCanResizeEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var NewWidth, NewHeight: Integer; + var Resize: Boolean); + function GetMethod: Pointer; override; + end; + + +implementation + + +type + TByteSet = set of 0..7; + PByteSet = ^TByteSet; + + +{ TfsNotifyEvent } + +procedure TfsNotifyEvent.DoEvent(Sender: TObject); +begin + CallHandler([Sender]); +end; + +function TfsNotifyEvent.GetMethod: Pointer; +begin + Result := @TfsNotifyEvent.DoEvent; +end; + +{ TfsMouseEvent } + +procedure TfsMouseEvent.DoEvent(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Single); +var + b: Byte; +begin + b := Byte(PByteSet(@Shift)^); + CallHandler([Sender, Integer(Button), b, X, Y]); +end; + +function TfsMouseEvent.GetMethod: Pointer; +begin + Result := @TfsMouseEvent.DoEvent; +end; + +{ TfsMouseMoveEvent } + +procedure TfsMouseMoveEvent.DoEvent(Sender: TObject; Shift: TShiftState; X, + Y: Single); +var + b: Byte; +begin + b := Byte(PByteSet(@Shift)^); + CallHandler([Sender, b, X, Y]); +end; + +function TfsMouseMoveEvent.GetMethod: Pointer; +begin + Result := @TfsMouseMoveEvent.DoEvent; +end; + +{ TfsKeyEvent } + +procedure TfsKeyEvent.DoEvent(Sender: TObject; var Key: Word; + var KeyChar: WideChar; Shift: TShiftState); +var + b: Byte; +begin + b := Byte(PByteSet(@Shift)^); + CallHandler([Sender, Key, KeyChar, b]); + Key := Handler.Params[1].Value; + KeyChar := WideChar(Cardinal(Handler.Params[2].Value)); +end; + +function TfsKeyEvent.GetMethod: Pointer; +begin + Result := @TfsKeyEvent.DoEvent; +end; + +{ TfsKeyPressEvent } + +procedure TfsKeyPressEvent.DoEvent(Sender: TObject; var Key: Char); +begin + CallHandler([Sender, Key]); + Key := String(Handler.Params[1].Value)[1]; +end; + +function TfsKeyPressEvent.GetMethod: Pointer; +begin + Result := @TfsKeyPressEvent.DoEvent; +end; + +{ TfsCloseEvent } + +procedure TfsCloseEvent.DoEvent(Sender: TObject; var Action: TCloseAction); +begin + CallHandler([Sender, Integer(Action)]); + Action := Handler.Params[1].Value; +end; + +function TfsCloseEvent.GetMethod: Pointer; +begin + Result := @TfsCloseEvent.DoEvent; +end; + +{ TfsCloseQueryEvent } + +procedure TfsCloseQueryEvent.DoEvent(Sender: TObject; var CanClose: Boolean); +begin + CallHandler([Sender, CanClose]); + CanClose := Handler.Params[1].Value; +end; + +function TfsCloseQueryEvent.GetMethod: Pointer; +begin + Result := @TfsCloseQueryEvent.DoEvent; +end; + +{ TfsCanResizeEvent } + +procedure TfsCanResizeEvent.DoEvent(Sender: TObject; var NewWidth, + NewHeight: Integer; var Resize: Boolean); +begin + CallHandler([Sender, NewWidth, NewHeight, Resize]); + NewWidth := Handler.Params[1].Value; + NewHeight := Handler.Params[2].Value; + Resize := Handler.Params[3].Value; +end; + +function TfsCanResizeEvent.GetMethod: Pointer; +begin + Result := @TfsCanResizeEvent.DoEvent; +end; + +{ TfsMouseWheelEvent } + +procedure TfsMouseWheelEvent.DoEvent(Sender: TObject; + Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); +var + b: Byte; +begin + b := Byte(PByteSet(@Shift)^); + CallHandler([Sender, b, WheelDelta, Boolean(Handled)]); + Handled := Handler.Params[3].Value; +end; + +function TfsMouseWheelEvent.GetMethod: Pointer; +begin + Result := @TfsMouseWheelEvent.DoEvent; +end; + +{ TfsOnPaintEvent } + +procedure TfsOnPaintEvent.DoEvent(Sender: TObject; Canvas: TCanvas; + const ARect: TRectF); +var + r: TfsRectF; +begin + r := TfsRectF.Create(ARect); + CallHandler([Sender, Canvas, r]); + r.Free; +end; + +function TfsOnPaintEvent.GetMethod: Pointer; +begin + Result := @TfsOnPaintEvent.DoEvent; +end; + +{ TfsCanFocusEvent } + +procedure TfsCanFocusEvent.DoEvent(Sender: TObject; var ACanFocus: Boolean); +begin + CallHandler([Sender, ACanFocus]); + ACanFocus := Handler.Params[1].Value; +end; + +function TfsCanFocusEvent.GetMethod: Pointer; +begin + Result := @TfsCanFocusEvent.DoEvent; +end; + +{ TfsDragOverEvent } + +procedure TfsDragOverEvent.DoEvent(Sender: TObject; const Data: TDragObject; + const Point: TPointF; var Accept: Boolean); +var + dObj: TfsDragObject; +begin + dObj := TfsDragObject.Create(Data); + CallHandler([Sender, dObj, Accept]); + dObj.Free; + Accept := Handler.Params[3].Value; +end; + +function TfsDragOverEvent.GetMethod: Pointer; +begin + Result := @TfsDragOverEvent.DoEvent; +end; + +{ TfsDragObject } + +constructor TfsDragObject.Create(aDragObj: TDragObject); +var + idx: Integer; +begin + FFiles := TStringList.Create; + FDragObject.Source := aDragObj.Source; + FDragObject.Data := aDragObj.Data; + for idx := Low(FDragObject.Files) to High(FDragObject.Files) do + FFiles.Add(FDragObject.Files[idx]); +end; + +destructor TfsDragObject.Destroy; +begin + FFiles.Free; + inherited; +end; + +function TfsDragObject.GetRect: TDragObject; +var + idx: Integer; +begin + SetLength(FDragObject.Files, FFiles.Count); + for idx := 0 to FFiles.Count - 1 do + FDragObject.Files[idx] := FFiles.Strings[idx]; + Result := FDragObject; +end; + +function TfsDragObject.GetRectP: PDragObject; +var + idx: Integer; +begin + SetLength(FDragObject.Files, FFiles.Count); + for idx := 0 to FFiles.Count - 1 do + FDragObject.Files[idx] := FFiles.Strings[idx]; + Result := @FDragObject; +end; + +function TfsDragObject.GetStringList: TStringList; +begin + Result := FFiles; +end; + +{ TfsDragDropEvent } + +procedure TfsDragDropEvent.DoEvent(Sender: TObject; const Data: TDragObject; + const Point: TPointF); +var + dObj: TfsDragObject; + aPoint: TfsPointF; +begin + dObj := TfsDragObject.Create(Data); + aPoint := TfsPointF.Create(Point); + CallHandler([Sender, dObj, aPoint]); + dObj.Free; + aPoint.Free; +end; + +function TfsDragDropEvent.GetMethod: Pointer; +begin + Result := @TfsDragDropEvent.DoEvent; +end; + +end. \ No newline at end of file diff --git a/FastScript/FMX.fs_iexpression.pas b/FastScript/FMX.fs_iexpression.pas new file mode 100644 index 0000000..f429d38 --- /dev/null +++ b/FastScript/FMX.fs_iexpression.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Expression parser } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iexpression; +{$i FMX.inc} +{$i fs_iexpression.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_iextctrlsrtti.pas b/FastScript/FMX.fs_iextctrlsrtti.pas new file mode 100644 index 0000000..5bd17eb --- /dev/null +++ b/FastScript/FMX.fs_iextctrlsrtti.pas @@ -0,0 +1,268 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ ExtCtrls } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iextctrlsrtti; + +interface + +{$i fs.inc} + +uses System.Types, System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_ievents, FMX.fs_iformsrtti +, FMX.ExtCtrls, FMX.ListBox, FMX.Objects, System.UITypes, FMX.Types, FMX.Controls, FMX.Layouts, + FMX.TabControl, FMX.TreeView +{$IFDEF DELPHI18} + , FMX.StdCtrls +{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsExtCtrlsRTTI = class(TComponent); // fake component + + +implementation + +type + TfsTreeViewDragChange = class(TfsCustomEvent) + public + procedure DoEvent(SourceItem, DestItem: TTreeViewItem; var Allow: Boolean); + function GetMethod: Pointer; override; + end; + + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddEnum('TShapeType', 'stRectangle, stSquare, stRoundRect, stRoundSquare,' + + 'stEllipse, stCircle'); + AddEnum('TBevelStyle', 'bsLowered, bsRaised'); + AddEnum('TBevelShape', 'bsBox, bsFrame, bsTopLine, bsBottomLine, bsLeftLine,' + + 'bsRightLine, bsSpacer'); + AddEnum('TResizeStyle', 'rsNone, rsLine, rsUpdate, rsPattern'); + AddEnum('TButtonLayout', 'blGlyphLeft, blGlyphRight, blGlyphTop, blGlyphBottom'); + AddEnum('TButtonState', 'bsUp, bsDisabled, bsDown, bsExclusive'); + AddEnum('TButtonStyle', 'bsAutoDetect, bsWin31, bsNew'); + AddEnum('TBitBtnKind', 'bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo,' + + 'bkClose, bkAbort, bkRetry, bkIgnore, bkAll'); + AddType('TNumGlyphs', fvtInt); + AddEnum('TTabPosition', 'tpTop, tpBottom, tpLeft, tpRight'); + AddEnum('TTabStyle', 'tsTabs, tsButtons, tsFlatButtons'); + AddEnum('TStatusPanelStyle', 'psText, psOwnerDraw'); + AddEnum('TStatusPanelBevel', 'pbNone, pbLowered, pbRaised'); + AddEnum('TSortType', 'stNone, stData, stText, stBoth'); + AddEnum('TTrackBarOrientation', 'trHorizontal, trVertical'); + AddEnum('TTickMark', 'tmBottomRight, tmTopLeft, tmBoth'); + AddEnum('TTickStyle', 'tsNone, tsAuto, tsManual'); + AddEnum('TProgressBarOrientation', 'pbHorizontal, pbVertical'); + AddEnum('TIconArrangement', 'iaTop, iaLeft'); + AddEnum('TListArrangement', 'arAlignBottom, arAlignLeft, arAlignRight,' + + 'arAlignTop, arDefault, arSnapToGrid'); + AddEnum('TViewStyle', 'vsIcon, vsSmallIcon, vsList, vsReport'); + AddEnum('TToolButtonStyle', 'tbsButton, tbsCheck, tbsDropDown, tbsSeparator, tbsDivider'); + AddEnum('TDateTimeKind', 'dtkDate, dtkTime'); + AddEnum('TDTDateMode', 'dmComboBox, dmUpDown'); + AddEnum('TDTDateFormat', 'dfShort, dfLong'); + AddEnum('TDTCalAlignment', 'dtaLeft, dtaRight'); + AddEnum('TCalDayOfWeek', 'dowMonday, dowTuesday, dowWednesday, dowThursday,' + + 'dowFriday, dowSaturday, dowSunday, dowLocaleDefault'); + + + with AddClass(TPaintBox, 'TControl') do + AddEvent('OnPaint', TfsNotifyEvent); + AddClass(TImage, 'TControl'); + with AddClass(TTimer, 'TComponent') do + AddEvent('OnTimer', TfsNotifyEvent); + + AddClass(TTabItem, 'TTextControl'); + with AddClass(TTabControl, 'TStyledControl') do + begin + AddIndexProperty( 'Tabs', 'Integer', 'TTabItem', CallMethod); + AddEvent('OnChange', TfsNotifyEvent); + AddProperty('TabCount', 'Integer', GetProp, nil); + AddProperty('ActiveTab', 'TTabItem', GetProp, SetProp); + end; + + with AddClass(TTreeViewItem, 'TTextControl') do + begin + AddMethod('function ItemByPoint(const X, Y: Single): TTreeViewItem', CallMethod); + AddMethod('function ItemByIndex(const Idx: Integer): TTreeViewItem', CallMethod); + AddMethod('function TreeView: TCustomTreeView', CallMethod); + AddMethod('function Level: Integer', CallMethod); + AddMethod('function ParentItem: TTreeViewItem', CallMethod); + AddIndexProperty( 'Items', 'Integer', 'TTreeViewItem', CallMethod); + AddProperty('GlobalIndex', 'Integer', GetProp, SetProp); + AddProperty('Count', 'Integer', GetProp, nil); + end; + with AddClass(TTreeView, 'TScrollBox') do + begin + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure CollapseAll', CallMethod); + AddMethod('procedure ExpandAll', CallMethod); + AddMethod('function ItemByText(const AText: string): TTreeViewItem', CallMethod); + AddMethod('function ItemByPoint(const X, Y: Single): TTreeViewItem', CallMethod); + AddMethod('function ItemByIndex(const Idx: Integer): TTreeViewItem', CallMethod); + AddMethod('function ItemByGlobalIndex(const Idx: Integer): TTreeViewItem', CallMethod); + AddIndexProperty('Items', 'Integer', 'TTreeViewItem', CallMethod); + AddProperty('Selected', 'TTreeViewItem', GetProp, SetProp); + AddProperty('Count', 'Integer', GetProp, nil); + AddProperty('GlobalCount', 'Integer', GetProp, nil); + AddProperty('CountExpanded', 'Integer', GetProp, nil); + AddEvent('OnChange', TfsNotifyEvent); + AddEvent('OnChangeCheck', TfsNotifyEvent); + AddEvent('OnDragChange', TfsTreeViewDragChange); + end; + + { TODO ADD necessary methods for these calasses } + //AddClass(TCalendar, 'TStyledControl'); + //AddClass(TCalendarBox, 'TTextControl'); + // AddClass(TCalendarEdit, 'TCustomEdit'); + AddClass(TImageViewer, 'TScrollBox'); + AddClass(TPlotGrid, 'TControl'); + AddClass(TDropTarget, 'TTextControl'); + AddClass(TCornerButton, 'TCustomButton'); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + if ClassType = TTabControl then + begin + if MethodName = 'TABS.GET' then + Result := frxInteger(TTabControl(Instance).Tabs[Caller.Params[0]]) + end + else if ClassType = TTreeViewItem then + begin + if MethodName = 'ITEMS.GET' then + Result := frxInteger(TTreeViewItem(Instance).Items[Caller.Params[0]]) + else if MethodName = 'ITEMBYPOINT' then + Result := frxInteger(TTreeViewItem(Instance).ItemByPoint(Single(Caller.Params[0]), Single(Caller.Params[1]))) + else if MethodName = 'ITEMBYINDEX' then + Result := frxInteger(TTreeViewItem(Instance).ItemByIndex(Caller.Params[0])) + else if MethodName = 'TREEVIEW' then + Result := frxInteger(TTreeViewItem(Instance).TreeView) + else if MethodName = 'LEVEL' then + Result := Integer(TTreeViewItem(Instance).Level) + else if MethodName = 'PARENTITEM' then + Result := frxInteger(TTreeViewItem(Instance).ParentItem) + end + else if ClassType = TTreeView then + begin + if MethodName = 'ITEMS.GET' then + Result := frxInteger(TTreeView(Instance).Items[Caller.Params[0]]) + else if MethodName = 'ITEMBYPOINT' then + Result := frxInteger(TTreeView(Instance).ItemByPoint(Single(Caller.Params[0]), Single(Caller.Params[1]))) + else if MethodName = 'ITEMBYINDEX' then + Result := frxInteger(TTreeView(Instance).ItemByIndex(Caller.Params[0])) + else if MethodName = 'ITEMBYTEXT' then + Result := frxInteger(TTreeView(Instance).ItemByText(String(Caller.Params[0]))) + else if MethodName = 'ITEMBYGLOBALINDEX' then + Result := frxInteger(TTreeView(Instance).ItemByGlobalIndex(Caller.Params[0])) + else if MethodName = 'CLEAR' then + TTreeView(Instance).Clear + else if MethodName = 'COLLAPSEALL' then + TTreeView(Instance).CollapseAll + else if MethodName = 'EXPANDALL' then + TTreeView(Instance).ExpandAll + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + if ClassType = TTabControl then + begin + if PropName = 'TABCOUNT' then + Result := TTabControl(Instance).TabCount + else if PropName = 'ACTIVETAB' then + Result := frxInteger(TTabControl(Instance).ActiveTab) + end + else if ClassType = TTreeViewItem then + begin + if PropName = 'GLOBALINDEX' then + Result := TTreeViewItem(Instance).GlobalIndex + else if PropName = 'COUNT' then + Result := TTreeViewItem(Instance).Count + end + else if ClassType = TTreeView then + begin + if PropName = 'SELECTED' then + Result := frxInteger(TTreeView(Instance).Selected) + else if PropName = 'COUNT' then + Result := TTreeView(Instance).Count + else if PropName = 'GLOBALCOUNT' then + Result := TTreeView(Instance).GlobalCount + else if PropName = 'COUNTEXPANDED' then + Result := TTreeView(Instance).CountExpanded + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TTabControl then + begin + if PropName = 'ACTIVETAB' then + TTabControl(Instance).ActiveTab := TTabItem(frxInteger(Value)) + end + else if ClassType = TTreeViewItem then + begin +// if PropName = 'GLOBALINDEX' then +// TTreeViewItem(Instance).GlobalIndex := Value + end + else if ClassType = TTreeView then + begin + if PropName = 'SELECTED' then + TTreeView(Instance).Selected := TTreeViewItem(frxInteger(Value)) + end +end; + +{ TfsTreeViewDragChange } + +procedure TfsTreeViewDragChange.DoEvent(SourceItem, DestItem: TTreeViewItem; + var Allow: Boolean); +begin + CallHandler([SourceItem, DestItem, Allow]); + Allow := Handler.Params[2].Value; +end; + +function TfsTreeViewDragChange.GetMethod: Pointer; +begin + Result := @TfsTreeViewDragChange.DoEvent; +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsExtCtrlsRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX.fs_iformsrtti.pas b/FastScript/FMX.fs_iformsrtti.pas new file mode 100644 index 0000000..6edb4c0 --- /dev/null +++ b/FastScript/FMX.fs_iformsrtti.pas @@ -0,0 +1,864 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Forms and StdCtrls } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iformsrtti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_ievents, FMX.fs_iclassesrtti, + FMX.fs_igraphicsrtti, FMX.Types, FMX.Controls, FMX.Forms, System.UITypes, System.Types, + FMX.Edit, FMX.Memo, FMX.ListBox, FMX.Layouts +{$IFDEF DELPHI18} + , FMX.StdCtrls +{$ENDIF} +{$IFDEF DELPHI19} + , FMX.Graphics +{$ENDIF} +{$IFDEF DELPHI28} + , FMX.BaseTypeAliases, FMX.FormTypeAliases +{$ENDIF} + ; + +type +{$i frxPlatformsAttribute.inc} + TfsFormsRTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddConst('mrNone', 'Integer', mrNone); + AddConst('mrOk', 'Integer', mrOk); + AddConst('mrCancel', 'Integer', mrCancel); + AddConst('mrAbort', 'Integer', mrAbort); + AddConst('mrRetry', 'Integer', mrRetry); + AddConst('mrIgnore', 'Integer', mrIgnore); + AddConst('mrYes', 'Integer', mrYes); + AddConst('mrNo', 'Integer', mrNo); + AddConst('mrAll', 'Integer', mrAll); + AddConst('mrNoToAll', 'Integer', mrNoToAll); + AddConst('mrYesToAll', 'Integer', mrYesToAll); + + AddConst('crDefault', 'Integer', crDefault); + AddConst('crNone', 'Integer', crNone); + AddConst('crArrow', 'Integer', crArrow); + AddConst('crCross', 'Integer', crCross); + AddConst('crIBeam', 'Integer', crIBeam); + AddConst('crSize', 'Integer', crSize); + AddConst('crSizeNESW', 'Integer', crSizeNESW); + AddConst('crSizeNS', 'Integer', crSizeNS); + AddConst('crSizeNWSE', 'Integer', crSizeNWSE); + AddConst('crSizeWE', 'Integer', crSizeWE); + AddConst('crUpArrow', 'Integer', crUpArrow); + AddConst('crHourGlass', 'Integer', crHourGlass); + AddConst('crDrag', 'Integer', crDrag); + AddConst('crNoDrop', 'Integer', crNoDrop); + AddConst('crHSplit', 'Integer', crHSplit); + AddConst('crVSplit', 'Integer', crVSplit); + AddConst('crMultiDrag', 'Integer', crMultiDrag); + AddConst('crSQLWait', 'Integer', crSQLWait); + AddConst('crNo', 'Integer', crNo); + AddConst('crAppStart', 'Integer', crAppStart); + AddConst('crHelp', 'Integer', crHelp); + AddConst('crHandPoint', 'Integer', crHandPoint); + AddConst('crSizeAll', 'Integer', crSizeAll); + +{$IFDEF CLX} + AddConst('bsNone', 'Integer', fbsNone); + AddConst('bsSingle', 'Integer', fbsSingle); + AddConst('bsSizeable', 'Integer', fbsSizeable); + AddConst('bsDialog', 'Integer', fbsDialog); + AddConst('bsToolWindow', 'Integer', fbsToolWindow); + AddConst('bsSizeToolWin', 'Integer', fbsSizeToolWin); +{$ELSE} + AddConst('bsNone', 'Integer', TFmxFormBorderStyle.bsNone); + AddConst('bsSingle', 'Integer', TFmxFormBorderStyle.bsSingle); + AddConst('bsSizeable', 'Integer', TFmxFormBorderStyle.bsSizeable); + AddConst('bsToolWindow', 'Integer', TFmxFormBorderStyle.bsToolWindow); + AddConst('bsSizeToolWin', 'Integer', TFmxFormBorderStyle.bsSizeToolWin); +{$ENDIF} + + AddConst('VK_RBUTTON', 'Integer', VKRBUTTON); + AddConst('VKCANCEL', 'Integer', VKCANCEL); + AddConst('VKMBUTTON', 'Integer', VKMBUTTON); + AddConst('VKBACK', 'Integer', VKBACK);//Backspace key + AddConst('VKTAB', 'Integer', VKTAB);//Tab key + AddConst('VKRETURN', 'Integer', VKRETURN);//Enter key + AddConst('VKSHIFT', 'Integer', VKSHIFT);//Shift key + AddConst('VKCONTROL', 'Integer', VKCONTROL);//Ctrl key + AddConst('VKMENU', 'Integer', VKMENU);//Alt key + AddConst('VKPAUSE', 'Integer', VKPAUSE);//Pause key + AddConst('VKCAPITAL', 'Integer', VKCAPITAL);//Caps Lock key + AddConst('VKESCAPE', 'Integer', VKESCAPE);//Esc key + AddConst('VKSPACE', 'Integer', VKSPACE);//Space bar + AddConst('VKPRIOR', 'Integer', VKPRIOR);//Page Up key + AddConst('VKNEXT', 'Integer', VKNEXT);// Page Down key + AddConst('VKEND', 'Integer', VKEND);// End key + AddConst('VKHOME', 'Integer', VKHOME);// Home key + AddConst('VKLEFT', 'Integer', VKLEFT);// Left Arrow key + AddConst('VKUP', 'Integer', VKUP);// Up Arrow key + AddConst('VKRIGHT', 'Integer', VKRIGHT);// Right Arrow key + AddConst('VKDOWN', 'Integer', VKDOWN);// Down Arrow key + AddConst('VKINSERT', 'Integer', VKINSERT);// Insert key + AddConst('VKDELETE', 'Integer', VKDELETE);// Delete key + AddConst('VKHELP', 'Integer', VKHELP);// Help key + AddConst('VKLWIN', 'Integer', VKLWIN);// Left Windows key (Microsoft keyboard) + AddConst('VKRWIN', 'Integer', VKRWIN);// Right Windows key (Microsoft keyboard) + AddConst('VKAPPS', 'Integer', VKAPPS);// Applications key (Microsoft keyboard) + AddConst('VKNUMPAD0', 'Integer', VKNUMPAD0);// 0 key (numeric keypad) + AddConst('VKNUMPAD1', 'Integer', VKNUMPAD1);// 1 key (numeric keypad) + AddConst('VKNUMPAD2', 'Integer', VKNUMPAD2);// 2 key (numeric keypad) + AddConst('VKNUMPAD3', 'Integer', VKNUMPAD3);// 3 key (numeric keypad) + AddConst('VKNUMPAD4', 'Integer', VKNUMPAD4);// 4 key (numeric keypad) + AddConst('VKNUMPAD5', 'Integer', VKNUMPAD5);// 5 key (numeric keypad) + AddConst('VKNUMPAD6', 'Integer', VKNUMPAD6);// 6 key (numeric keypad) + AddConst('VKNUMPAD7', 'Integer', VKNUMPAD7);// 7 key (numeric keypad) + AddConst('VKNUMPAD8', 'Integer', VKNUMPAD8);// 8 key (numeric keypad) + AddConst('VKNUMPAD9', 'Integer', VKNUMPAD9);// 9 key (numeric keypad) + AddConst('VKMULTIPLY', 'Integer', VKMULTIPLY);// Multiply key (numeric keypad) + AddConst('VKADD', 'Integer', VKADD);// Add key (numeric keypad) + AddConst('VKSEPARATOR', 'Integer', VKSEPARATOR);// Separator key (numeric keypad) + AddConst('VKSUBTRACT', 'Integer', VKSUBTRACT);// Subtract key (numeric keypad) + AddConst('VKDECIMAL', 'Integer', VKDECIMAL);// Decimal key (numeric keypad) + AddConst('VKDIVIDE', 'Integer', VKDIVIDE);// Divide key (numeric keypad) + AddConst('VKF1', 'Integer', VKF1);// F1 key + AddConst('VKF2', 'Integer', VKF2);// F2 key + AddConst('VKF3', 'Integer', VKF3);// F3 key + AddConst('VKF4', 'Integer', VKF4);// F4 key + AddConst('VKF5', 'Integer', VKF5);// F5 key + AddConst('VKF6', 'Integer', VKF6);// F6 key + AddConst('VKF7', 'Integer', VKF7);// F7 key + AddConst('VKF8', 'Integer', VKF8);// F8 key + AddConst('VKF9', 'Integer', VKF9);// F9 key + AddConst('VKF10', 'Integer', VKF10);// F10 key + AddConst('VKF11', 'Integer', VKF11);// F11 key + AddConst('VKF12', 'Integer', VKF12);// F12 key + AddConst('VKNUMLOCK', 'Integer', VKNUMLOCK);// Num Lock key + AddConst('VKSCROLL', 'Integer', VKSCROLL);// Scroll Lock key + + AddConst('crDefault', 'Integer', crDefault); + AddConst('crNone', 'Integer', crNone); + AddConst('crArrow', 'Integer', crArrow); + AddConst('crCross', 'Integer', crCross); + AddConst('crIBeam', 'Integer', crIBeam); + AddConst('crSize', 'Integer', crSize); + AddConst('crSizeNESW', 'Integer', crSizeNESW); + AddConst('crSizeNS', 'Integer', crSizeNS); + AddConst('crSizeNWSE', 'Integer', crSizeNWSE); + AddConst('crSizeWE', 'Integer', crSizeWE); + AddConst('crUpArrow', 'Integer', crUpArrow); + AddConst('crHourGlass', 'Integer', crHourGlass); + AddConst('crDrag', 'Integer', crDrag); + AddConst('crNoDrop', 'Integer', crNoDrop); + AddConst('crHSplit', 'Integer', crHSplit); + AddConst('crVSplit', 'Integer', crVSplit); + AddConst('crMultiDrag', 'Integer', crMultiDrag); + AddConst('crSQLWait', 'Integer', crSQLWait); + AddConst('crNo', 'Integer', crNo); + AddConst('crAppStart', 'Integer', crAppStart); + AddConst('crHelp', 'Integer', crHelp); + AddConst('crHandPoint', 'Integer', crHandPoint); + AddConst('crSizeAll', 'Integer', crSizeAll); + + AddType('TFormBorderStyle', fvtInt); + AddType('TBorderStyle', fvtInt); + + AddEnumSet('TShiftState', 'ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble, ssTouch, ssPen, ssCommand'); + AddEnum('TAniIndicatorStyle', 'aiLinear, aiCircular'); + AddEnum('TAlign', 'alNone, alTop, alBottom, alLeft, alRight, alClient'); + AddEnum('TMouseButton', 'mbLeft, mbRight, mbMiddle'); + AddEnumSet('TAnchors', 'akLeft, akTop, akRight, akBottom'); + AddEnum('TBevelCut', 'bvNone, bvLowered, bvRaised, bvSpace'); + AddEnum('TTextLayout', 'tlTop, tlCenter, tlBottom'); + AddEnum('TEditCharCase', 'ecNormal, ecUpperCase, ecLowerCase'); + AddEnum('TScrollStyle', 'ssNone, ssHorizontal, ssVertical, ssBoth'); + AddEnum('TComboBoxStyle', 'csDropDown, csSimple, csDropDownList, csOwnerDrawFixed, csOwnerDrawVariable'); + AddEnum('TCheckBoxState', 'cbUnchecked, cbChecked, cbGrayed'); + AddEnum('TListBoxStyle', 'lbStandard, lbOwnerDrawFixed, lbOwnerDrawVariable'); + AddEnum('TWindowState', 'wsNormal, wsMinimized, wsMaximized'); + AddEnum('TFormStyle', 'fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop'); + AddEnumSet('TBorderIcons', 'biSystemMenu, biMinimize, biMaximize, biHelp'); + AddEnum('TFormPosition', 'poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter, poDesktopCenter'); + AddEnum('TCloseAction', 'caNone, caHide, caFree, caMinimize'); + + with AddClass(TControl, 'TFmxObject') do + begin + AddMethod('procedure AddObject(AObject: TFmxObject)', CallMethod); + AddMethod('procedure RemoveObject(AObject: TFmxObject)', CallMethod); + AddMethod('procedure SetBounds(X: Single; Y: Single; AWidth: Single; AHeight: Single)', CallMethod); + AddMethod('function AbsoluteToLocal(P: TfsPointF): TfsPointF', CallMethod); + AddMethod('function LocalToAbsolute(P: TfsPointF): TfsPointF', CallMethod); + AddMethod('function AbsoluteToLocalVector(P: TfsVector): TfsVector', CallMethod); + AddMethod('function LocalToAbsoluteVector(P: TfsVector): TfsVector', CallMethod); + AddMethod('function PointInObject(X: Single; Y: Single): Boolean', CallMethod); + AddMethod('procedure BeginUpdate()', CallMethod); + AddMethod('procedure EndUpdate()', CallMethod); +{$IFNDEF DELPHI18} + AddMethod('procedure ApplyEffect()', CallMethod); +{$ENDIF} + AddMethod('procedure UpdateEffects()', CallMethod); + AddMethod('procedure SetFocus()', CallMethod); + AddMethod('procedure PaintTo(ACanvas: TCanvas; ARect: TFsRectF; AParent: TFmxObject)', CallMethod); + AddMethod('procedure Repaint()', CallMethod); + AddMethod('procedure InvalidateRect(ARect: TfsRectF)', CallMethod); + AddMethod('procedure Lock()', CallMethod); + AddProperty('AbsoluteMatrix', 'TfsMatrix', GetProp, nil); + AddProperty('AbsoluteOpacity', 'Single', GetProp, nil); + AddProperty('AbsoluteWidth', 'Single', GetProp, nil); + AddProperty('AbsoluteHeight', 'Single', GetProp, nil); + AddProperty('AbsoluteScale', 'TfsPointF', GetProp, nil); + AddProperty('AbsoluteEnabled', 'Boolean', GetProp, nil); + AddProperty('HasEffect', 'Boolean', GetProp, nil); + AddProperty('HasDisablePaintEffect', 'Boolean', GetProp, nil); + AddProperty('HasAfterPaintEffect', 'Boolean', GetProp, nil); + AddProperty('ChildrenRect', 'TfsRectF', GetProp, nil); + AddProperty('InvertAbsoluteMatrix', 'TfsMatrix', GetProp, nil); + AddProperty('InPaintTo', 'Boolean', GetProp, nil); + AddProperty('LocalRect', 'TfsRectF', GetProp, nil); + AddProperty('AbsoluteRect', 'TfsRectF', GetProp, nil); + AddProperty('UpdateRect', 'TfsRectF', GetProp, nil); + AddProperty('ParentedRect', 'TfsRectF', GetProp, nil); + AddProperty('ParentedVisible', 'Boolean', GetProp, nil); + AddProperty('ClipRect', 'TfsRectF', GetProp, nil); + AddProperty('Canvas', 'TCanvas', GetProp, nil); + AddProperty('AutoCapture', 'Boolean', GetProp, SetProp); + AddProperty('CanFocus', 'Boolean', GetProp, SetProp); + AddProperty('DisableFocusEffect', 'Boolean', GetProp, SetProp); + AddProperty('TabOrder', 'Integer', GetProp, SetProp); + AddProperty('BoundsRect', 'TfsRectF', GetProp, SetProp); + AddEvent('OnDragEnter', TfsDragDropEvent); + AddEvent('OnDragLeave', TfsNotifyEvent); + AddEvent('OnDragOver', TfsDragOverEvent); + AddEvent('OnDragDrop', TfsDragDropEvent); + AddEvent('OnDragEnd', TfsNotifyEvent); + AddEvent('OnKeyDown', TfsKeyEvent); + AddEvent('OnKeyUp', TfsKeyEvent); + AddEvent('OnClick', TfsNotifyEvent); + AddEvent('OnDblClick', TfsNotifyEvent); + AddEvent('OnCanFocus', TfsCanFocusEvent); + AddEvent('OnEnter', TfsNotifyEvent); + AddEvent('OnExit', TfsNotifyEvent); + AddEvent('OnMouseDown', TfsMouseEvent); + AddEvent('OnMouseMove', TfsMouseMoveEvent); + AddEvent('OnMouseUp', TfsMouseEvent); + AddEvent('OnMouseWheel', TfsMouseWheelEvent); + AddEvent('OnMouseEnter', TfsNotifyEvent); + AddEvent('OnMouseLeave', TfsNotifyEvent); + AddEvent('OnPainting', TfsOnPaintEvent); + AddEvent('OnPaint', TfsOnPaintEvent); + AddEvent('OnResize', TfsNotifyEvent); + AddEvent('OnApplyStyleLookup', TfsNotifyEvent); + end; + + { standard controls } + with AddClass(TStyledControl, 'TControl') do + begin + AddMethod('function FindStyleResource(AStyleLookup: string): TFmxObject', CallMethod); + AddMethod('procedure ApplyStyleLookup()', CallMethod); +{$IFNDEF DELPHI20} + AddMethod('procedure UpdateStyle()', CallMethod); +{$ENDIF} + AddProperty('StyleLookup', 'String', GetProp, SetProp); + end; + + AddClass(TStyledControl, 'TControl'); + AddClass(TTextControl, 'TStyledControl'); + AddClass(TPanel, 'TStyledControl'); + AddClass(TCalloutPanel, 'TPanel'); + AddClass(TLabel, 'TTextControl'); + AddClass(TCustomButton, 'TTextControl'); + AddClass(TButton, 'TCustomButton'); + AddClass(TSpeedButton, 'TCustomButton'); + with AddClass(TCheckBox, 'TTextControl') do + AddEvent('OnChange', TfsNotifyEvent); + + with AddClass(TRadioButton, 'TTextControl') do + AddEvent('OnChange', TfsNotifyEvent); + AddClass(TGroupBox, 'TTextControl'); + AddClass(TStatusBar, 'TStyledControl'); + AddClass(TToolBar, 'TStyledControl'); + AddClass(TSizeGrip, 'TStyledControl'); + AddClass(TSplitter, 'TStyledControl'); + AddClass(TProgressBar, 'TStyledControl'); + AddClass(TThumb, 'TStyledControl'); + with AddClass(TCustomTrack, 'TStyledControl') do + begin + AddEvent('OnChange', TfsNotifyEvent); + AddEvent('OnTracking', TfsNotifyEvent); + end; + AddClass(TTrack, 'TCustomTrack'); + AddClass(TTrackBar, 'TCustomTrack'); + AddClass(TBitmapTrackBar, 'TTrackBar'); + with AddClass(TSwitch, 'TCustomTrack') do + AddEvent('OnSwitch', TfsNotifyEvent); + with AddClass(TScrollBar, 'TStyledControl') do + AddEvent('OnChange', TfsNotifyEvent); + + AddClass(TSmallScrollBar, 'TScrollBar'); + AddClass(TAniIndicator, 'TStyledControl'); + with AddClass(TArcDial, 'TStyledControl') do + AddEvent('OnChange', TfsNotifyEvent); + AddClass(TExpanderButton, 'TCustomButton'); + with AddClass(TExpander, 'TTextControl') do + AddEvent('OnCheckChange', TfsNotifyEvent); + with AddClass(TImageControl, 'TStyledControl') do + AddEvent('OnChange', TfsNotifyEvent); + AddClass(TPathLabel, 'TStyledControl'); + + + with AddClass(TCustomEdit, 'TStyledControl') do + begin +{$IFNDEF Delphi21} + AddMethod('procedure ClearSelection()', CallMethod); +{$ENDIF} + AddMethod('procedure CopyToClipboard()', CallMethod); + AddMethod('procedure CutToClipboard()', CallMethod); + AddMethod('procedure PasteFromClipboard()', CallMethod); + AddMethod('procedure SelectAll()', CallMethod); +{$IFNDEF Delphi21} + AddMethod('function GetCharX(a: Integer): Single', CallMethod); + AddMethod('function ContentRect(): TfsRectF', CallMethod); +{$ENDIF} + AddProperty('CaretPosition', 'Integer', GetProp, SetProp); + AddProperty('SelStart', 'Integer', GetProp, SetProp); + AddProperty('SelLength', 'Integer', GetProp, SetProp); + AddProperty('SelText', 'string', GetProp, nil); + AddProperty('MaxLength', 'Integer', GetProp, SetProp); + AddProperty('SelectionFill', 'TBrush', GetProp, nil); + AddProperty('FilterChar', 'string', GetProp, SetProp); + AddProperty('Typing', 'Boolean', GetProp, SetProp); + AddEvent('OnChange', TfsNotifyEvent); + AddEvent('OnChangeTracking', TfsNotifyEvent); + AddEvent('OnTyping', TfsNotifyEvent); + end; + AddClass(TEdit, 'TCustomEdit'); + with AddClass(TMemo, 'TScrollBox') do + begin + AddMethod('procedure CopyToClipboard()', CallMethod); + AddMethod('procedure PasteFromClipboard()', CallMethod); + AddMethod('procedure CutToClipboard()', CallMethod); + AddMethod('procedure ClearSelection()', CallMethod); + AddMethod('procedure SelectAll()', CallMethod); + AddMethod('procedure GoToTextEnd()', CallMethod); + AddMethod('procedure GoToTextBegin()', CallMethod); + AddMethod('procedure GotoLineEnd()', CallMethod); + AddMethod('procedure GoToLineBegin()', CallMethod); + AddMethod('procedure UnDo()', CallMethod); + AddProperty('SelStart', 'Integer', GetProp, SetProp); + AddProperty('SelLength', 'Integer', GetProp, SetProp); + AddProperty('SelText', 'string', GetProp, nil); + AddEvent('OnChange', TfsNotifyEvent); + AddEvent('OnChangeTracking', TfsNotifyEvent); + end; + + AddClass(TRadioButton, 'TTextControl'); + with AddClass(TListBoxItem, 'TTextControl') do + begin + AddProperty('Data', 'TObject', GetProp, SetProp); + AddProperty('Index', 'Integer', GetProp, SetProp); + end; + + with AddClass(TCustomListBox, 'TScrollBox') do + begin + AddMethod('procedure Clear()', CallMethod); + AddMethod('function DragChange(SourceItem: TListBoxItem; DestItem: TListBoxItem): Boolean', CallMethod); + AddMethod('procedure SelectAll()', CallMethod); + AddMethod('procedure ClearSelection()', CallMethod); + AddMethod('procedure SelectRange(Item1: TListBoxItem; Item2: TListBoxItem)', CallMethod); + AddMethod('function ItemByPoint(X: Single; Y: Single): TListBoxItem', CallMethod); + AddMethod('function ItemByIndex(Idx: Integer): TListBoxItem', CallMethod); + AddMethod('procedure Exchange(Item1: TListBoxItem; Item2: TListBoxItem)', CallMethod); + AddMethod('procedure AddObject(AObject: TFmxObject)', CallMethod); + AddMethod('procedure InsertObject(Index: Integer; AObject: TFmxObject)', CallMethod); + AddMethod('procedure RemoveObject(AObject: TFmxObject)', CallMethod); + AddIndexProperty( 'ListItems', 'Integer', 'TListBoxItem', CallMethod); + AddProperty('Count', 'Integer', GetProp, nil); + AddProperty('Selected', 'TListBoxItem', GetProp, nil); + AddProperty('Items', 'TStrings', GetProp, SetProp); + AddProperty('ItemIndex', 'Integer', GetProp, SetProp); + end; + + AddClass(TListBox, 'TCustomListBox'); + with AddClass(TCustomComboBox, 'TStyledControl') do + begin + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure DropDown', CallMethod); + AddIndexProperty( 'ListItems', 'Integer', 'TListBoxItem', CallMethod); + AddProperty('Count', 'Integer', GetProp, nil); + AddProperty('Selected', 'TListBoxItem', GetProp, nil); + AddProperty('Items', 'TStrings', GetProp, SetProp); + AddProperty('ItemIndex', 'Integer', GetProp, SetProp); + AddEvent('OnDropDown', TfsNotifyEvent); + AddEvent('OnCloseUp', TfsNotifyEvent); + end; + + with AddClass(TComboBox, 'TCustomComboBox') do + AddEvent('OnChange', TfsNotifyEvent); + + with AddClass(TCommonCustomForm, 'TFmxObject') do + begin + AddConstructor('constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0)', CallMethod); + AddMethod('procedure SetBounds(ALeft: Integer; ATop: Integer; AWidth: Integer; AHeight: Integer)', CallMethod); + AddMethod('function ClientToScreen(Point: TfsPointF): TfsPointF', CallMethod); + AddMethod('function ScreenToClient(Point: TfsPointF): TfsPointF', CallMethod); + AddMethod('function CloseQuery(): Boolean', CallMethod); + AddMethod('function ClientRect(): TfsRectF', CallMethod); + AddMethod('procedure Release()', CallMethod); + AddMethod('procedure Close()', CallMethod); + AddMethod('procedure Show()', CallMethod); + AddMethod('procedure Hide()', CallMethod); + AddMethod('function ShowModal(): Integer', CallMethod); + AddMethod('procedure CloseModal()', CallMethod); + AddMethod('procedure Invalidate()', CallMethod); + AddMethod('procedure BeginUpdate()', CallMethod); + AddMethod('procedure EndUpdate()', CallMethod); + end; + + with AddClass(TCustomForm, 'TCommonCustomForm') do + begin + AddEvent('OnActivate', TfsNotifyEvent); + AddEvent('OnClose', TfsCloseEvent); + AddEvent('OnCloseQuery', TfsCloseQueryEvent); + AddEvent('OnCreate', TfsNotifyEvent); + AddEvent('OnDestroy', TfsNotifyEvent); + AddEvent('OnDeactivate', TfsNotifyEvent); + AddEvent('OnHide', TfsNotifyEvent); + AddEvent('OnPaint', TfsNotifyEvent); + AddEvent('OnShow', TfsNotifyEvent); + AddEvent('OnResize', TfsNotifyEvent); + AddProperty('Canvas', 'TCanvas', GetProp, nil); + AddProperty('ModalResult', 'Integer', GetProp, SetProp); + end; + AddClass(TForm, 'TCustomForm'); + + AddClass(TDataModule, 'TComponent'); + with AddClass(TApplication, 'TComponent') do + begin + AddMethod('procedure ProcessMessages', CallMethod); + end; + AddObject('Application', Application); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + Form: TCommonCustomForm; +begin + Result := 0; + + if ClassType = TControl then + begin + if MethodName = 'ADDOBJECT' then + TControl(Instance).AddObject(TFmxObject(frxInteger(Caller.Params[0]))) + else if MethodName = 'REMOVEOBJECT' then + TControl(Instance).RemoveObject(TFmxObject(frxInteger(Caller.Params[0]))) + else if MethodName = 'SETBOUNDS' then + TControl(Instance).SetBounds(Single(Caller.Params[0]), Single(Caller.Params[1]), Single(Caller.Params[2]), Single(Caller.Params[3])) + else if MethodName = 'ABSOLUTETOLOCAL' then + Result := frxInteger(TfsPointF.Create(TControl(Instance).AbsoluteToLocal(TfsPointF(frxInteger(Caller.Params[0])).GetRect))) + else if MethodName = 'LOCALTOABSOLUTE' then + Result := frxInteger(TfsPointF.Create(TControl(Instance).LocalToAbsolute(TfsPointF(frxInteger(Caller.Params[0])).GetRect))) + else if MethodName = 'ABSOLUTETOLOCALVECTOR' then + Result := frxInteger(TfsVector.Create(TControl(Instance).AbsoluteToLocalVector(TfsVector(frxInteger(Caller.Params[0])).GetRect))) + else if MethodName = 'LOCALTOABSOLUTEVECTOR' then + Result := frxInteger(TfsVector.Create(TControl(Instance).LocalToAbsoluteVector(TfsVector(frxInteger(Caller.Params[0])).GetRect))) + else if MethodName = 'POINTINOBJECT' then + Result := Boolean(TControl(Instance).PointInObject(Single(Caller.Params[0]), Single(Caller.Params[1]))) + else if MethodName = 'BEGINUPDATE' then + TControl(Instance).BeginUpdate() + else if MethodName = 'ENDUPDATE' then + TControl(Instance).EndUpdate() +{$IFNDEF DELPHI18} + else if MethodName = 'APPLYEFFECT' then + TControl(Instance).ApplyEffect() +{$ENDIF} + else if MethodName = 'UPDATEEFFECTS' then + TControl(Instance).UpdateEffects() + else if MethodName = 'SETFOCUS' then + TControl(Instance).SetFocus() + else if MethodName = 'PAINTTO' then + TControl(Instance).PaintTo(TCanvas(frxInteger(Caller.Params[0])), TfsRectF(frxInteger(Caller.Params[1])).GetRect, TFmxObject(frxInteger(Caller.Params[2]))) + else if MethodName = 'REPAINT' then + TControl(Instance).Repaint() + else if MethodName = 'INVALIDATERECT' then + TControl(Instance).InvalidateRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect) + else if MethodName = 'LOCK' then + TControl(Instance).Lock() + end + else if ClassType = TStyledControl then + begin + if MethodName = 'FINDSTYLERESOURCE' then + Result := frxInteger(TStyledControl(Instance).FindStyleResource(String(Caller.Params[0]))) + else if MethodName = 'APPLYSTYLELOOKUP' then + TStyledControl(Instance).ApplyStyleLookup() +{$IFNDEF DELPHI20} + else if MethodName = 'UPDATESTYLE' then + TStyledControl(Instance).UpdateStyle() +{$ENDIF} + end + else if ClassType = TCustomEdit then + begin + {$IFNDEF Delphi21} + if MethodName = 'CLEARSELECTION' then + TCustomEdit(Instance).ClearSelection() + else +{$ENDIF} + if MethodName = 'COPYTOCLIPBOARD' then + TCustomEdit(Instance).CopyToClipboard() + else if MethodName = 'CUTTOCLIPBOARD' then + TCustomEdit(Instance).CutToClipboard() + else if MethodName = 'PASTEFROMCLIPBOARD' then + TCustomEdit(Instance).PasteFromClipboard() + else if MethodName = 'SELECTALL' then + TCustomEdit(Instance).SelectAll() +{$IFNDEF Delphi21} + else if MethodName = 'GETCHARX' then + Result := Single(TCustomEdit(Instance).GetCharX(Integer(Caller.Params[0]))) + else if MethodName = 'CONTENTRECT' then + Result := frxInteger(TfsRectF.Create(TCustomEdit(Instance).ContentRect())) +{$ENDIF} + end + else if ClassType = TMemo then + begin + if MethodName = 'COPYTOCLIPBOARD' then + TMemo(Instance).CopyToClipboard() + else if MethodName = 'PASTEFROMCLIPBOARD' then + TMemo(Instance).PasteFromClipboard() + else if MethodName = 'CUTTOCLIPBOARD' then + TMemo(Instance).CutToClipboard() + else if MethodName = 'CLEARSELECTION' then + TMemo(Instance).ClearSelection() + else if MethodName = 'SELECTALL' then + TMemo(Instance).SelectAll() + else if MethodName = 'GOTOTEXTEND' then + TMemo(Instance).GoToTextEnd() + else if MethodName = 'GOTOTEXTBEGIN' then + TMemo(Instance).GoToTextBegin() + else if MethodName = 'GOTOLINEEND' then + TMemo(Instance).GotoLineEnd() + else if MethodName = 'GOTOLINEBEGIN' then + TMemo(Instance).GoToLineBegin() + else if MethodName = 'UNDO' then + TMemo(Instance).UnDo() + end + else if ClassType = TCustomListBox then + begin + if MethodName = 'ASSIGN' then + TCustomListBox(Instance).Assign(TPersistent(frxInteger(Caller.Params[0]))) + else if MethodName = 'CLEAR' then + TCustomListBox(Instance).Clear() + else if MethodName = 'DRAGCHANGE' then + Result := TCustomListBox(Instance).DragChange(TListBoxItem(frxInteger(Caller.Params[0])), TListBoxItem(frxInteger(Caller.Params[1]))) + else if MethodName = 'SELECTALL' then + TCustomListBox(Instance).SelectAll() + else if MethodName = 'CLEARSELECTION' then + TCustomListBox(Instance).ClearSelection() + else if MethodName = 'SELECTRANGE' then + TCustomListBox(Instance).SelectRange(TListBoxItem(frxInteger(Caller.Params[0])), TListBoxItem(frxInteger(Caller.Params[1]))) + else if MethodName = 'ITEMBYPOINT' then + Result := frxInteger(TListBoxItem(TCustomListBox(Instance).ItemByPoint(Single(Caller.Params[0]), Single(Caller.Params[1])))) + else if MethodName = 'ITEMBYINDEX' then + Result := frxInteger(TListBoxItem(TCustomListBox(Instance).ItemByIndex(Integer(Caller.Params[0])))) + else if MethodName = 'EXCHANGE' then + TCustomListBox(Instance).Exchange(TListBoxItem(frxInteger(Caller.Params[0])), TListBoxItem(frxInteger(Caller.Params[1]))) + else if MethodName = 'ADDOBJECT' then + TCustomListBox(Instance).AddObject(TFmxObject(frxInteger(Caller.Params[0]))) + else if MethodName = 'INSERTOBJECT' then + TCustomListBox(Instance).InsertObject(Integer(Caller.Params[0]), TFmxObject(frxInteger(Caller.Params[1]))) + else if MethodName = 'REMOVEOBJECT' then + TCustomListBox(Instance).RemoveObject(TFmxObject(frxInteger(Caller.Params[0]))) + else if MethodName = 'LISTITEMS.GET' then + Result := frxInteger(TCustomListBox(Instance).ListItems[Caller.Params[0]]) + end + else if ClassType = TCustomComboBox then + begin + if MethodName = 'CLEAR' then + TCustomComboBox(Instance).Clear() + else if MethodName = 'DROPDOWN' then + TCustomComboBox(Instance).DropDown() + else if MethodName = 'LISTITEMS.GET' then + Result := frxInteger(TCustomComboBox(Instance).ListItems[Caller.Params[0]]) + end + else if ClassType = TCommonCustomForm then + begin + Form := TCommonCustomForm(Instance); + if MethodName = 'CREATENEW' then + Result := frxInteger(Form.CreateNew(TComponent(frxInteger(Caller.Params[0])), Integer(Caller.Params[1]))) + else if MethodName = 'SETBOUNDS' then + Form.SetBounds(Integer(Caller.Params[0]), Integer(Caller.Params[1]), Integer(Caller.Params[2]), Integer(Caller.Params[3])) + else if MethodName = 'CLIENTTOSCREEN' then + Result := frxInteger(TfsPointF.Create(Form.ClientToScreen(TfsPointF(frxInteger(Caller.Params[0])).GetRect))) + else if MethodName = 'SCREENTOCLIENT' then + Result := frxInteger(TfsPointF.Create(Form.ScreenToClient(TfsPointF(frxInteger(Caller.Params[0])).GetRect))) + else if MethodName = 'CLOSEQUERY' then + Result := Form.CloseQuery + else if MethodName = 'CLIENTRECT' then + Result := frxInteger(TfsRectF.Create(Form.ClientRect)) + else if MethodName = 'RELEASE' then + Form.Release() + else if MethodName = 'CLOSE' then + Form.Close() + else if MethodName = 'SHOW' then + Form.Show() + else if MethodName = 'HIDE' then + Form.Hide() + else if MethodName = 'SHOWMODAL' then + Result := Integer(Form.ShowModal) + else if MethodName = 'CLOSEMODAL' then + Form.CloseModal() + else if MethodName = 'INVALIDATE' then + Form.Invalidate() + else if MethodName = 'BEGINUPDATE' then + Form.BeginUpdate() + else if MethodName = 'ENDUPDATE' then + Form.EndUpdate() + end + else if ClassType = TApplication then + begin + if MethodName = 'PROCESSMESSAGES' then + TApplication(Instance).ProcessMessages + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TControl then + begin + if PropName = 'ABSOLUTEMATRIX' then + Result := frxInteger(TfsMatrix.Create(TControl(Instance).AbsoluteMatrix)) + else if PropName = 'ABSOLUTEOPACITY' then + Result := TControl(Instance).AbsoluteOpacity + else if PropName = 'ABSOLUTEWIDTH' then + Result := TControl(Instance).AbsoluteWidth + else if PropName = 'ABSOLUTEHEIGHT' then + Result := TControl(Instance).AbsoluteHeight + else if PropName = 'ABSOLUTESCALE' then + Result := frxInteger(TfsPointF.Create(TControl(Instance).AbsoluteScale)) + else if PropName = 'ABSOLUTEENABLED' then + Result := TControl(Instance).AbsoluteEnabled + else if PropName = 'HASEFFECT' then + Result := TControl(Instance).HasEffect + else if PropName = 'HASDISABLEPAINTEFFECT' then + Result := TControl(Instance).HasDisablePaintEffect + else if PropName = 'HASAFTERPAINTEFFECT' then + Result := TControl(Instance).HasAfterPaintEffect + else if PropName = 'CHILDRENRECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).ChildrenRect)) + else if PropName = 'INVERTABSOLUTEMATRIX' then + Result := frxInteger(TfsMatrix.Create(TControl(Instance).InvertAbsoluteMatrix)) + else if PropName = 'INPAINTTO' then + Result := TControl(Instance).InPaintTo + else if PropName = 'LOCALRECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).LocalRect)) + else if PropName = 'ABSOLUTERECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).AbsoluteRect)) + else if PropName = 'UPDATERECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).UpdateRect)) + else if PropName = 'PARENTEDRECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).ParentedRect)) + else if PropName = 'PARENTEDVISIBLE' then + Result := TControl(Instance).ParentedVisible + else if PropName = 'CLIPRECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).ClipRect)) + else if PropName = 'CANVAS' then + Result := frxInteger(TControl(Instance).Canvas) + else if PropName = 'AUTOCAPTURE' then + Result := TControl(Instance).AutoCapture + else if PropName = 'CANFOCUS' then + Result := TControl(Instance).CanFocus + else if PropName = 'DISABLEFOCUSEFFECT' then + Result := TControl(Instance).DisableFocusEffect + else if PropName = 'TABORDER' then + Result := Integer(TControl(Instance).TabOrder) + else if PropName = 'BOUNDSRECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).BoundsRect)) + end + else if ClassType = TStyledControl then + begin + if PropName = 'STYLELOOKUP' then + Result := TStyledControl(Instance).StyleLookup + end + else if ClassType = TCustomEdit then + begin + if PropName = 'CARETPOSITION' then + Result := TCustomEdit(Instance).CaretPosition + else if PropName = 'SELSTART' then + Result := TCustomEdit(Instance).SelStart + else if PropName = 'SELLENGTH' then + Result := TCustomEdit(Instance).SelLength + else if PropName = 'SELTEXT' then + Result := String(TCustomEdit(Instance).SelText) + else if PropName = 'MAXLENGTH' then + Result := TCustomEdit(Instance).MaxLength + else if PropName = 'SELECTIONFILL' then + Result := frxInteger(TCustomEdit(Instance).SelectionFill) + else if PropName = 'FILTERCHAR' then + Result := TCustomEdit(Instance).FilterChar + else if PropName = 'TYPING' then + Result := TCustomEdit(Instance).Typing + end + else if ClassType = TMemo then + begin + if PropName = 'SELSTART' then + Result := TMemo(Instance).SelStart + else if PropName = 'SELLENGTH' then + Result := TMemo(Instance).SelLength + else if PropName = 'SELTEXT' then + Result := String(TMemo(Instance).SelText) + end + else if ClassType = TListBoxItem then + begin + if PropName = 'DATA' then + Result := frxInteger(TListBoxItem(Instance).Data) + else if PropName = 'INDEX' then + Result := TListBoxItem(Instance).Index + end + else if ClassType = TCustomListBox then + begin + if PropName = 'COUNT' then + Result := TCustomListBox(Instance).Count + else if PropName = 'SELECTED' then + Result := frxInteger(TCustomListBox(Instance).Selected) + else if PropName = 'ITEMS' then + Result := frxInteger(TCustomListBox(Instance).Items) + else if PropName = 'ITEMINDEX' then + Result := TCustomListBox(Instance).ItemIndex + end + else if ClassType = TCustomComboBox then + begin + if PropName = 'COUNT' then + Result := TCustomComboBox(Instance).Count + else if PropName = 'SELECTED' then + Result := frxInteger(TCustomComboBox(Instance).Selected) + else if PropName = 'ITEMS' then + Result := frxInteger(TCustomComboBox(Instance).Items) + else if PropName = 'ITEMINDEX' then + Result := TCustomComboBox(Instance).ItemIndex + end + else if ClassType = TCustomForm then + begin + if PropName = 'MODALRESULT' then + Result := TCustomForm(Instance).ModalResult + else if PropName = 'CANVAS' then + Result := frxInteger(TCustomForm(Instance).Canvas) + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TControl then + begin + if PropName = 'AUTOCAPTURE' then + TControl(Instance).AutoCapture := Boolean(Value) + else if PropName = 'CANFOCUS' then + TControl(Instance).CanFocus := Boolean(Value) + else if PropName = 'DISABLEFOCUSEFFECT' then + TControl(Instance).DisableFocusEffect := Boolean(Value) + else if PropName = 'TABORDER' then + TControl(Instance).TabOrder := TTabOrder(Integer(Value)) + else if PropName = 'BOUNDSRECT' then + TControl(Instance).BoundsRect := TfsRectF(frxInteger(Value)).GetRect + end + else if ClassType = TStyledControl then + begin + if PropName = 'STYLELOOKUP' then + TStyledControl(Instance).StyleLookup := Value; + end + else if ClassType = TCustomEdit then + begin + if PropName = 'CARETPOSITION' then + TCustomEdit(Instance).CaretPosition := Integer(Value) + else if PropName = 'SELSTART' then + TCustomEdit(Instance).SelStart := Integer(Value) + else if PropName = 'SELLENGTH' then + TCustomEdit(Instance).SelLength := Integer(Value) + else if PropName = 'MAXLENGTH' then + TCustomEdit(Instance).MaxLength := Integer(Value) + else if PropName = 'FILTERCHAR' then + TCustomEdit(Instance).FilterChar := String(Value) + else if PropName = 'TYPING' then + TCustomEdit(Instance).Typing := Boolean(Value) + end + else if ClassType = TMemo then + begin + if PropName = 'SELSTART' then + TMemo(Instance).SelStart := Integer(Value) + else if PropName = 'SELLENGTH' then + TMemo(Instance).SelLength := Integer(Value) + end + else if ClassType = TListBoxItem then + begin + if PropName = 'DATA' then + TListBoxItem(Instance).Data := TObject(frxInteger(Value)) + else if PropName = 'INDEX' then + TListBoxItem(Instance).Index := Value + end + else if ClassType = TCustomListBox then + begin + if PropName = 'ITEMS' then + TCustomListBox(Instance).Items := TStrings(frxInteger(Value)) + else if PropName = 'ITEMINDEX' then + TCustomListBox(Instance).ItemIndex := Value + end + else if ClassType = TCustomComboBox then + begin + if PropName = 'ITEMS' then + TCustomComboBox(Instance).Items := TStrings(frxInteger(Value)) + else if PropName = 'ITEMINDEX' then + TCustomComboBox(Instance).ItemIndex := Value + end + else if ClassType = TCustomForm then + begin + if PropName = 'MODALRESULT' then + TCustomForm(Instance).ModalResult := Value + end +end; + + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsFormsRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX.fs_igraphicsrtti.pas b/FastScript/FMX.fs_igraphicsrtti.pas new file mode 100644 index 0000000..58a4818 --- /dev/null +++ b/FastScript/FMX.fs_igraphicsrtti.pas @@ -0,0 +1,522 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Graphics.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_igraphicsrtti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_iclassesrtti +, FMX.Types, FMX.Objects, System.UITypes, System.UIConsts, System.Types, System.Variants +{$IFDEF DELPHI19} + , FMX.Graphics +{$ENDIF} +{$IFDEF DELPHI20} + , System.Math.Vectors +{$ENDIF} +{$IFDEF DELPHI28} + , FMX.BaseTypeAliases +{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsGraphicsRTTI = class(TComponent); // fake component + + +implementation + +type + + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + procedure GetColorProc(const Name: String); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + GetAlphaColorValues(GetColorProc); + AddType('TAlignment', fvtInt); + AddType('TLeftRight', fvtInt); + AddConst('taLeftJustify', 'Integer', taLeftJustify); + AddConst('taRightJustify', 'Integer', taRightJustify); + AddConst('taCenter', 'Integer', taCenter); + AddType('TVerticalAlignment', fvtInt); + AddConst('taAlignTop', 'Integer', taAlignTop); + AddConst('taAlignBottom', 'Integer', taAlignBottom); + AddConst('taVerticalCenter', 'Integer', taVerticalCenter); + //AddEnum('TAlignment', 'taLeftJustify, taRightJustify, taCenter'); + AddType('TCorners ', fvtInt); + AddConst('crTopLeft', 'Integer', TCorner.crTopLeft); + AddConst('crTopRight', 'Integer', TCorner.crTopRight); + AddConst('crBottomLeft', 'Integer', TCorner.crBottomLeft); + AddConst('crBottomRight', 'Integer', TCorner.crBottomRight); + AddType('TSides ', fvtInt); + AddConst('sdTop', 'Integer', TSide.sdTop); + AddConst('sdLeft', 'Integer', TSide.sdLeft); + AddConst('sdBottom', 'Integer', TSide.sdBottom); + AddConst('sdRight', 'Integer', TSide.sdRight); + AddConst('ftRightToLeft', 'Integer', TFillTextFlag.ftRightToLeft); + AddType('TFillTextFlags ', fvtInt); + AddEnumSet('TFontStyles', 'fsBold, fsItalic, fsUnderline, fsStrikeout'); + AddEnum('TFontPitch', 'fpDefault, fpVariable, fpFixed'); + AddEnum('TFontQuality', 'fqDefault, fqDraft, fqProof, fqNonAntialiased, fqAntialiased, fqClearType, fqClearTypeNatural'); + AddEnum('TGradientStyle', 'gsLinear, gsRadial'); + AddEnum('TWrapMode', 'wmTile, wmTileOriginal, wmTileStretch'); + AddEnum('TCornerType', 'ctRound, ctBevel, ctInnerRound, ctInnerLine'); + AddEnum('TAlignLayout', 'alNone, alTop, alLeft, alRight, alBottom, alMostTop, alMostBottom, alMostLeft, alMostRight, alClient, alContents, alCenter, alVertCenter, alHorzCenter, alHorizontal, alVertical, alScale, alFit, alFitLeft, alFitRight'); + AddEnum('TPathPointKind', 'ppMoveTo, ppLineTo, ppCurveTo, ppClose'); + AddEnum('TStrokeCap', 'scFlat, scRound'); + AddEnum('TStrokeJoin', 'sjMiter, sjRound, sjBevel'); + AddEnum('TStrokeDash', 'sdSolid, sdDash, sdDot, sdDashDot, sdDashDotDot, sdCustom'); + + AddEnum('TBrushKind', 'bkNone, bkSolid, bkGradient, bkBitmap, bkResource, bkGrab'); + + AddClass(TfsMatrix, 'TPersistent'); + with AddClass(TFont, 'TPersistent') do + AddConstructor('constructor Create', CallMethod); + AddClass(TGradientPoint, 'TCollectionItem'); + AddClass(TGradientPoints, 'TCollection'); + AddClass(TGradient, 'TPersistent'); + AddClass(TBrushBitmap, 'TPersistent'); + AddClass(TBrushResource, 'TPersistent'); +{$IFNDEF Delphi18} + AddClass(TBrushGrab, 'TPersistent'); +{$ENDIF} + AddClass(TLineMetricInfo, 'TObject'); + + with AddClass(TBrush, 'TPersistent') do + begin + AddConstructor('Create(ADefaultKind: TBrushKind; ADefaultColor: TAlphaColor)', CallMethod); + AddProperty('DefaultColor', 'TAlphaColor', GetProp); + AddProperty('DefaultKind', 'TBrushKind', GetProp); + end; +{$IFDEF Delphi17} + AddClass(TStrokeBrush, 'TBrush'); +{$ENDIF} + + AddClass(TCanvasSaveState, 'TPersistent'); + with AddClass(TCanvas, 'TPersistent') do + begin + AddMethod('function BeginScene: Boolean', CallMethod); + AddMethod('procedure EndScene', CallMethod); + AddMethod('procedure Clear(Color: TAlphaColor)', CallMethod); + AddMethod('procedure ClearRect(ARect: TfsRectF; AColor: TAlphaColor = 0)', CallMethod); + AddMethod('procedure SetMatrix(const M: TfsMatrix)', CallMethod); +{$IFDEF Delphi17} + AddMethod('procedure MultiplyMatrix(const M: TfsMatrix)', CallMethod); +{$ELSE} + AddMethod('procedure MultyMatrix(const M: TfsMatrix)', CallMethod); +{$ENDIF} + AddMethod('function SaveState: TCanvasSaveState', CallMethod); + AddMethod('procedure RestoreState(State: TCanvasSaveState)', CallMethod); + AddMethod('procedure SetClipRects(ARects: array of TfsRectF)', CallMethod); + AddMethod('procedure IntersectClipRect(ARect: TfsRectF)', CallMethod); + AddMethod('procedure ExcludeClipRect(ARect: TfsRectF)', CallMethod); + AddMethod('procedure ResetClipRect', CallMethod); + AddMethod('procedure DrawLine(APt1: TfsPointF; APt2: TfsPointF; AOpacity: Single)', CallMethod); + AddMethod('procedure FillRect(ARect: TfsRectF; XRadius: Single; YRadius: Single; ACorners: TCorners; AOpacity: Single; ACornerType: TCornerType)', CallMethod); + AddMethod('procedure DrawRect(ARect: TfsRectF; XRadius: Single; YRadius: Single; ACorners: TCorners; AOpacity: Single; ACornerType: TCornerType)', CallMethod); + AddMethod('procedure FillEllipse(ARect: TfsRectF; AOpacity: Single)', CallMethod); + AddMethod('procedure DrawEllipse(ARect: TfsRectF; AOpacity: Single)', CallMethod); + AddMethod('procedure FillArc(Center: TfsPointF; Radius: TfsPointF; StartAngle: Single; SweepAngle: Single; AOpacity: Single)', CallMethod); + AddMethod('procedure DrawArc(Center: TfsPointF; Radius: TfsPointF; StartAngle: Single; SweepAngle: Single; AOpacity: Single)', CallMethod); + AddMethod('function PtInPath(APoint: TfsPointF; APath: TPathData): Boolean', CallMethod); + AddMethod('procedure FillPath(APath: TPathData; AOpacity: Single)', CallMethod); + AddMethod('procedure DrawPath(APath: TPathData; AOpacity: Single)', CallMethod); + AddMethod('procedure DrawBitmap(ABitmap: TBitmap; SrcRect: TfsRectF; DstRect: TfsRectF; AOpacity: Single; HighSpeed: Boolean)', CallMethod); + AddMethod('procedure DrawRectSides(ARect: TfsRectF; XRadius: Single; YRadius: Single; ACorners: TCorners; AOpacity: Single; ASides: TSides; ACornerType: TCornerType)', CallMethod); + AddMethod('procedure FillPolygon(Points: TPolygon; AOpacity: Single)', CallMethod); + AddMethod('procedure DrawPolygon(Points: TPolygon; AOpacity: Single)', CallMethod); + AddMethod('function LoadFontFromStream(AStream: TStream): Boolean', CallMethod); + AddMethod('procedure FillText(ARect: TfsRectF; AText: string; WordWrap: Boolean; AOpacity: Single; Flags: TFillTextFlags; ATextAlign: TTextAlign; AVTextAlign: TTextAlign)', CallMethod); + AddMethod('procedure MeasureText(var ARect: TfsRectF; AText: string; WordWrap: Boolean; Flags: TFillTextFlags; ATextAlign: TTextAlign; AVTextAlign: TTextAlign)', CallMethod); + AddMethod('procedure MeasureLines(ALines: TLineMetricInfo; ARect: TfsRectF; AText: string; WordWrap: Boolean; Flags: TFillTextFlags; ATextAlign: TTextAlign; AVTextAlign: TTextAlign)', CallMethod); + AddMethod('function TextToPath(Path: TPathData; ARect: TfsRectF; AText: string; WordWrap: Boolean; ATextAlign: TTextAlign; AVTextAlign: TTextAlign): Boolean', CallMethod); + AddMethod('function TextWidth(AText: string): Single', CallMethod); + AddMethod('function TextHeight(AText: string): Single', CallMethod); + AddMethod('procedure SetCustomDash(Dash: array; Offset: Single)', CallMethod); +{$IFDEF Delphi17} + AddProperty('Stroke', 'TStrokeBrush', GetProp); + AddProperty('StrokeCap', 'TStrokeCap', nil, SetProp); + AddProperty('StrokeDash', 'TStrokeDash', nil, SetProp); + AddProperty('StrokeJoin', 'TStrokeJoin', nil, SetProp); +{$ELSE} + AddProperty('Stroke', 'TBrush', GetProp); + AddProperty('StrokeCap', 'TStrokeCap', GetProp, SetProp); + AddProperty('StrokeDash', 'TStrokeDash', GetProp, SetProp); + AddProperty('StrokeJoin', 'TStrokeJoin', GetProp, SetProp); +{$ENDIF} + AddProperty('StrokeThickness', 'Single', GetProp, SetProp); + AddProperty('Fill', 'TBrush', GetProp, SetProp); + AddProperty('Font', 'TFont', GetProp); + AddProperty('Matrix', 'TfsMatrix', GetProp); + AddProperty('Width', 'Integer', GetProp); + AddProperty('Height', 'Integer', GetProp); + end; + with AddClass(TBitmap, 'TPersistent') do + begin + AddConstructor('constructor Create(AWidth, AHeight: Integer)', CallMethod); + AddConstructor('constructor CreateFromStream(AStream: TStream)', CallMethod); + AddConstructor('constructor CreateFromFile(AFileName: string)', CallMethod); + AddMethod('procedure SetSize(AWidth, AHeight: Integer)', CallMethod); + AddMethod('procedure Clear(AColor: TAlphaColor)', CallMethod); + AddMethod('procedure ClearRect(ARect: TfsRectF; AColor: TAlphaColor = 0)', CallMethod); + AddMethod('function IsEmpty: Boolean', CallMethod); + AddMethod('procedure Rotate(Angle: Single)', CallMethod); + AddMethod('procedure FlipHorizontal', CallMethod); + AddMethod('procedure FlipVertical', CallMethod); + AddMethod('procedure InvertAlpha', CallMethod); +{$IFNDEF DELPHI20} + AddMethod('procedure LoadFromFile(AFileName: string; Rotate: Single = 0)', CallMethod); +{$ELSE} + AddMethod('procedure LoadFromFile(AFileName: string)', CallMethod); +{$ENDIF} + AddMethod('procedure SaveToFile(AFileName: string)', CallMethod); + AddMethod('procedure LoadFromStream(Stream: TStream)', CallMethod); + AddMethod('procedure SaveToStream(Stream: TStream)', CallMethod); +{$IFNDEF Delphi17} + AddMethod('procedure BitmapChanged', CallMethod); + AddIndexProperty( 'Pixels', 'Integer, Integer', 'TAlphaColor', CallMethod); +{$ENDIF} + AddProperty('Canvas', 'TCanvas', GetProp); +{$IFNDEF Delphi21} + AddProperty('ResourceBitmap', 'TBitmap', GetProp); +{$ENDIF} + AddProperty('Width', 'Integer', GetProp, SetProp); + AddProperty('Height', 'Integer', GetProp, SetProp); + end; + AddClass(TSpline, 'TObject'); + AddClass(TBounds, 'TPersistent'); + AddClass(TTransform, 'TPersistent'); + + + +{$IFNDEF Delphi17} + AddClass(TBitmapCodec, 'TPersistent'); +{$ENDIF} + AddClass(TPathData, 'TPersistent'); + AddClass(TCanvasSaveState, 'TPersistent'); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + _Canvas: TCanvas; + _Bitmap: TBitmap; +// mRects: array of TRectF; + mDashs: array of Single; + mPoly: TPolygon; + Idx, Cnt, nLo: Integer; +begin + Result := 0; + + if ClassType = TFont then + begin + if MethodName = 'CREATE' then + Result := frxInteger(TFont(Instance).Create); + end + else if ClassType = TBitmap then + begin + _Bitmap := TBitmap(Instance); + if MethodName = 'CREATE' then + Result := frxInteger(TBitmap(Instance).Create(Caller.Params[0], Caller.Params[1])) + else if MethodName = 'CREATEFROMSTREAM' then + Result := frxInteger(_Bitmap.CreateFromStream(TStream(frxInteger(Caller.Params[0])))) + else if MethodName = 'CREATEFROMFILE' then + Result := frxInteger(_Bitmap.CreateFromFile(String(Caller.Params[0]))) + else if MethodName = 'SETSIZE' then + _Bitmap.SetSize(Integer(Caller.Params[0]), Integer(Caller.Params[1])) + else if MethodName = 'CLEAR' then + _Bitmap.Clear(TAlphaColor(Caller.Params[0])) + else if MethodName = 'CLEARRECT' then + begin + _Bitmap.ClearRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect, TAlphaColor(Caller.Params[1])); + end + else if MethodName = 'ISEMPTY' then + Result := _Bitmap.IsEmpty + else if MethodName = 'ROTATE' then + _Bitmap.Rotate(Single(Caller.Params[1])) + else if MethodName = 'FLIPHORIZONTAL' then + _Bitmap.FlipHorizontal + else if MethodName = 'FLIPVERTICAL' then + _Bitmap.FlipVertical + else if MethodName = 'INVERTALPHA' then + _Bitmap.InvertAlpha + else if MethodName = 'LOADFROMFILE' then +{$IFNDEF DELPHI20} + _Bitmap.LoadFromFile(String(Caller.Params[0]), Single(Caller.Params[1])) +{$ELSE} + _Bitmap.LoadFromFile(String(Caller.Params[0])) +{$ENDIF} + else if MethodName = 'SAVETOFILE' then + _Bitmap.SaveToFile(String(Caller.Params[0])) + else if MethodName = 'LOADFROMSTREAM' then + _Bitmap.LoadFromStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'SAVETOSTREAM' then + _Bitmap.SaveToStream(TStream(frxInteger(Caller.Params[0]))) +{$IFNDEF Delphi17} + else if MethodName = 'BITMAPCHANGED' then + _Bitmap.BitmapChanged + else if MethodName = 'PIXELS.GET' then + Result := _Bitmap.Pixels[Caller.Params[0], Caller.Params[1]] + else if MethodName = 'PIXELS.SET' then + _Bitmap.Pixels[Caller.Params[0], Caller.Params[1]] := Caller.Params[2] +{$ENDIF} + end + else if ClassType = TBrush then + begin + if MethodName = 'CREATE' then + Result := frxInteger(TBrush(Instance).Create(TBrushKind(frxInteger(Caller.Params[0])), + TAlphaColor(frxInteger(Caller.Params[0])))) + end + else if ClassType = TCanvas then + begin + _Canvas := TCanvas(Instance); + + if MethodName = 'BEGINSCENE' then + Result := _Canvas.BeginScene + else if MethodName = 'ENDSCENE' then + _Canvas.EndScene + else if MethodName = 'CLEAR' then + _Canvas.Clear(TAlphaColor(Caller.Params[0])) + else if MethodName = 'CLEARRECT' then + _Canvas.ClearRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect, TAlphaColor(Caller.Params[1])) + else if MethodName = 'SETMATRIX' then + _Canvas.SetMatrix(TfsMatrix(frxInteger(Caller.Params[0])).GetRect) +{$IFDEF Delphi17} + else if MethodName = 'MULTIPLYMATRIX' then + _Canvas.MultiplyMatrix(TfsMatrix(frxInteger(Caller.Params[0])).GetRect) +{$ELSE} + else if MethodName = 'MULTYMATRIX' then + _Canvas.MultyMatrix(TfsMatrix(frxInteger(Caller.Params[0])).GetRect) +{$ENDIF} + else if MethodName = 'SAVESTATE' then + Result := frxInteger(_Canvas.SaveState) + else if MethodName = 'RESTORESTATE' then + _Canvas.RestoreState(TCanvasSaveState(frxInteger(Caller.Params[0]))) + { else if MethodName = 'SETCLIPRECTS' then + begin + nLo := VarArrayLowBound(Caller.Params[0], 1); + Cnt := VarArrayHighBound(Caller.Params[0], 1) - nLo; + SetLength(mRects, Cnt); + for Idx := 0 to Cnt - 1 do + mRects[Idx] := TfsRectF(frxInteger(Caller.Params[0][Idx + nLo])).GetRectP^; + _Canvas.SetClipRects(mRects); + SetLength(mRects, 0); + end } + else if MethodName = 'EXCLUDECLIPRECT' then + _Canvas.ExcludeClipRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect) + else if MethodName = 'INTERSECTCLIPTRECT' then + _Canvas.IntersectClipRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect) + {else if MethodName = 'RESETCLIPRECT' then + _Canvas.ResetClipRect } + else if MethodName = 'DRAWLINE' then + _Canvas.DrawLine(TfsPointF(frxInteger(Caller.Params[0])).GetRect, TfsPointF(frxInteger(Caller.Params[1])).GetRect, Single(Caller.Params[2])) + else if MethodName = 'FILLRECT' then + _Canvas.FillRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect, Single(Caller.Params[1]), Single(Caller.Params[2]), TCorners(Byte(Caller.Params[3])), Single(Caller.Params[4]), TCornerType(Caller.Params[5])) + else if MethodName = 'DRAWRECT' then + _Canvas.DrawRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect, Single(Caller.Params[1]), Single(Caller.Params[2]), TCorners(Byte(Caller.Params[3])), Single(Caller.Params[4]), TCornerType(Caller.Params[5])) + else if MethodName = 'FILLELLIPSE' then + _Canvas.FillEllipse(TfsRectF(frxInteger(Caller.Params[0])).GetRect, Single(Caller.Params[1])) + else if MethodName = 'DRAWELLIPSE' then + _Canvas.DrawEllipse(TfsRectF(frxInteger(Caller.Params[0])).GetRect, Single(Caller.Params[1])) + else if MethodName = 'FILLARC' then + _Canvas.FillArc(TfsPointF(frxInteger(Caller.Params[0])).GetRect, TfsPointF(frxInteger(Caller.Params[1])).GetRect, Single(Caller.Params[2]), Single(Caller.Params[3]), Single(Caller.Params[4])) + else if MethodName = 'DRAWARC' then + _Canvas.DrawArc(TfsPointF(frxInteger(Caller.Params[0])).GetRect, TfsPointF(frxInteger(Caller.Params[1])).GetRect, Single(Caller.Params[2]), Single(Caller.Params[3]), Single(Caller.Params[4])) + else if MethodName = 'PTINPATH' then + Result := Boolean(_Canvas.PtInPath(TfsPointF(frxInteger(Caller.Params[0])).GetRect, TPathData(frxInteger(Caller.Params[1])))) + else if MethodName = 'FILLPATH' then + _Canvas.FillPath(TPathData(frxInteger(Caller.Params[0])), Single(Caller.Params[1])) + else if MethodName = 'DRAWPATH' then + _Canvas.DrawPath(TPathData(frxInteger(Caller.Params[0])), Single(Caller.Params[1])) + else if MethodName = 'DRAWBITMAP' then + _Canvas.DrawBitmap(TBitmap(frxInteger(Caller.Params[0])), TfsRectF(frxInteger(Caller.Params[1])).GetRect, TfsRectF(frxInteger(Caller.Params[2])).GetRect, Single(Caller.Params[3]), Boolean(Caller.Params[4])) + else if MethodName = 'DRAWRECTSIDES' then + _Canvas.DrawRectSides(TfsRectF(frxInteger(Caller.Params[0])).GetRect, Single(Caller.Params[1]), Single(Caller.Params[2]), TCorners(Byte(Caller.Params[3])), Single(Caller.Params[4]), TSides(Byte(Caller.Params[5])), TCornerType(Caller.Params[6])) + else if MethodName = 'FILLPOLYGON' then + begin + nLo := VarArrayLowBound(Caller.Params[0], 1); + Cnt := VarArrayHighBound(Caller.Params[0], 1) - nLo; + SetLength(mPoly, Cnt); + for Idx := 0 to Cnt - 1 do + mPoly[Idx] := TfsPointF(frxInteger(Caller.Params[0][Idx + nLo])).GetRectP^; + _Canvas.FillPolygon(TPolygon(Caller.Params[0]), Single(Caller.Params[1])); + SetLength(mPoly, 0); + end + else if MethodName = 'DRAWPOLYGON' then + begin + nLo := VarArrayLowBound(Caller.Params[0], 1); + Cnt := VarArrayHighBound(Caller.Params[0], 1) - nLo; + SetLength(mPoly, Cnt); + for Idx := 0 to Cnt - 1 do + mPoly[Idx] := TfsPointF(frxInteger(Caller.Params[0][Idx + nLo])).GetRectP^; + _Canvas.DrawPolygon(TPolygon(Caller.Params[0]), Single(Caller.Params[1])); + SetLength(mPoly, 0); + end + else if MethodName = 'LOADFONTFROMSTREAM' then + Result := Boolean(_Canvas.LoadFontFromStream(TStream(frxInteger(Caller.Params[0])))) + else if MethodName = 'FILLTEXT' then + _Canvas.FillText(TfsRectF(frxInteger(Caller.Params[0])).GetRect, String(Caller.Params[1]), Boolean(Caller.Params[2]), Single(Caller.Params[3]), TFillTextFlags(Byte(Caller.Params[4])), TTextAlign(Caller.Params[5]), TTextAlign(Caller.Params[6])) + else if MethodName = 'MEASURETEXT' then + _Canvas.MeasureText(TfsRectF(frxInteger(Caller.Params[0])).GetRectP^, String(Caller.Params[1]), Boolean(Caller.Params[2]), TFillTextFlags(Byte(Caller.Params[3])), TTextAlign(Caller.Params[4]), TTextAlign(Caller.Params[5])) + else if MethodName = 'MEASURELINES' then + _Canvas.MeasureLines(TLineMetricInfo(frxInteger(Caller.Params[0])), TfsRectF(frxInteger(Caller.Params[1])).GetRect, String(Caller.Params[2]), Boolean(Caller.Params[3]), TFillTextFlags(Byte(Caller.Params[4])), TTextAlign(Caller.Params[5]), TTextAlign(Caller.Params[6])) + else if MethodName = 'TEXTTOPATH' then + Result := Boolean(_Canvas.TextToPath(TPathData(frxInteger(Caller.Params[0])), TfsRectF(frxInteger(Caller.Params[1])).GetRect, String(Caller.Params[2]), Boolean(Caller.Params[3]), TTextAlign(Caller.Params[4]), TTextAlign(Caller.Params[5]))) + else if MethodName = 'TEXTWIDTH' then + Result := Single(_Canvas.TextWidth(String(Caller.Params[0]))) + else if MethodName = 'TEXTHEIGHT' then + Result := Single(_Canvas.TextHeight(String(Caller.Params[0]))) + else if MethodName = 'SETCUSTOMDASH' then + begin + nLo := VarArrayLowBound(Caller.Params[0], 1); + Cnt := VarArrayHighBound(Caller.Params[0], 1) - nLo; + SetLength(mDashs, Cnt); + for Idx := 0 to Cnt - 1 do + mDashs[Idx] := Single(Caller.Params[0][Idx + nLo]); +{$IFDEF DELPHI25} + _Canvas.Stroke.SetCustomDash(mDashs, Single(Caller.Params[1])); +{$ELSE} + _Canvas.SetCustomDash(mDashs, Single(Caller.Params[1])); +{$ENDIF} + SetLength(mDashs, 0); + end +{$IFNDEF CLX} + { else if MethodName = 'PIXELS.GET' then + Result := _Canvas.Pixels[Caller.Params[0], Caller.Params[1]] + else if MethodName = 'PIXELS.SET' then + _Canvas.Pixels[Caller.Params[0], Caller.Params[1]] := Caller.Params[2] } +{$ENDIF} + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + if ClassType = TBitmap then + begin + if PropName = 'CANVAS' then + Result := frxInteger(TBitmap(Instance).Canvas) +{$IFNDEF Delphi21} + else if PropName = 'RESOURCEBITMAP' then + Result := frxInteger(TBitmap(Instance).ResourceBitmap) +{$ENDIF} + else if PropName = 'WIDTH' then + Result := Integer(TBitmap(Instance).Width) + else if PropName = 'HEIGHT' then + Result := Integer(TBitmap(Instance).Height) + end + else if ClassType = TCanvas then + begin + if PropName = 'STROKE' then + Result := frxInteger(TCanvas(Instance).Stroke) + else if PropName = 'WIDTH' then + Result := Integer(TCanvas(Instance).Width) + else if PropName = 'HEIGHT' then + Result := Integer(TCanvas(Instance).Height) + else if PropName = 'FONT' then + Result := frxInteger(TCanvas(Instance).Font) + else if PropName = 'FILL' then + Result := frxInteger(TCanvas(Instance).Fill) + else if PropName = 'STROKETHICKNESS' then +{$IFDEF DELPHI25} + Result := Single(TCanvas(Instance).Stroke.Thickness) +{$ELSE} + Result := Single(TCanvas(Instance).StrokeThickness) +{$ENDIF} +{$IFNDEF Delphi17} + else if PropName = 'STROKECAP' then + Result := Integer(TCanvas(Instance).StrokeCap) + else if PropName = 'STROKEDASH' then + Result := Integer(TCanvas(Instance).StrokeDash) + else if PropName = 'STROKEJOIN' then + Result := Integer(TCanvas(Instance).StrokeJoin) +{$ENDIF} + end; +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TBitmap then + begin + if PropName = 'WIDTH' then + TBitmap(Instance).Width := Integer(Value) + else if PropName = 'HEIGHT' then + TBitmap(Instance).Height:= Integer(Value) + end + else if ClassType = TCanvas then + begin + if PropName = 'STROKETHICKNESS' then +{$IFDEF DELPHI25} + TCanvas(Instance).Stroke.Thickness := Single(Value) +{$ELSE} + TCanvas(Instance).StrokeThickness := Single(Value) +{$ENDIF} + else if PropName = 'STROKECAP' then +{$IFDEF DELPHI25} + TCanvas(Instance).Stroke.Cap := TStrokeCap(Value) +{$ELSE} + TCanvas(Instance).StrokeCap := TStrokeCap(Value) +{$ENDIF} + else if PropName = 'STROKEDASH' then +{$IFDEF DELPHI25} + TCanvas(Instance).Stroke.Dash := TStrokeDash(Value) +{$ELSE} + TCanvas(Instance).StrokeDash := TStrokeDash(Value) +{$ENDIF} + else if PropName = 'STROKEJOIN' then +{$IFDEF DELPHI25} + TCanvas(Instance).Stroke.Join := TStrokeJoin(Value) +{$ELSE} + TCanvas(Instance).StrokeJoin := TStrokeJoin(Value) +{$ENDIF} + end; +end; + +procedure TFunctions.GetColorProc(const Name: String); +var + c: Integer; +begin + IdentToAlphaColor('cla' + Name, c); + Script.AddConst('cla' + Name, 'Integer', c); +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsGraphicsRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX.fs_iibxrtti.pas b/FastScript/FMX.fs_iibxrtti.pas new file mode 100644 index 0000000..dd92476 --- /dev/null +++ b/FastScript/FMX.fs_iibxrtti.pas @@ -0,0 +1,125 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ IBX classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iibxrtti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_itools, FMX.fs_idbrtti, Data.db, FMX.Types +{$IFDEF DELPHI20} + , IBX.ibdatabase, IBX.IBCustomDataSet, IBX.IBQuery, IBX.IBTable, IBX.IBStoredProc +{$ELSE} + , ibdatabase, IBCustomDataSet, IBQuery, IBTable, IBStoredProc +{$ENDIF} + ; + +type +{$i frxPlatformsAttribute.inc} + TfsIBXRTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class (TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; const MethodName: + String; Caller: TfsMethodHelper): Variant; + function RecordCount(Instance: TObject; ClassType: TClass; const PropName: + String): Variant; + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddClass(TIBDataBase, 'TComponent'); + + with AddClass(TIBTransaction, 'TComponent') do + begin + AddMethod('procedure Commit', CallMethod); + AddMethod('procedure RollBack', CallMethod); + AddMethod('procedure StartTransaction', CallMethod); + end; + + AddClass(TIBCustomDataSet, 'TDataSet'); + AddClass(TIBTable, 'TIBCustomDataSet'); + with AddClass(TIBQuery, 'TIBCustomDataSet') do + begin + AddMethod('procedure ExecSQL', CallMethod); + AddMethod('procedure FetchAll', CallMethod); + AddProperty('RecordCount', 'Integer',RecordCount, nil); + end; + with AddClass(TIBStoredProc, 'TIBCustomDataSet') do + AddMethod('procedure ExecProc', CallMethod); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; const + MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + + if ClassType = TIBQuery then + begin + if MethodName = 'EXECSQL' then + TIBQuery(Instance).ExecSQL + else + if MethodName = 'FETCHALL' then + TIBQuery(Instance).FETCHALL; + end + else + if ClassType = TIBStoredProc then + begin + if MethodName = 'EXECPROC' then + TIBStoredProc(Instance).ExecProc + end + else + if(ClassType = TIBTransaction) AND (MethodName = 'COMMIT') then + TIBTransaction(Instance).Commit + else + if (ClassType = TIBTransaction) AND (MethodName = 'ROLLBACK') then + TIBTransaction(Instance).RollBack + else + if(ClassType = TIBTransaction) AND (MethodName = 'STARTTRANSACTION') then + TIBTransaction(Instance).StartTransaction; + +end; + +function TFunctions.RecordCount(Instance: TObject; ClassType: TClass; const + PropName: String): Variant; +begin + Result:=0; + if (ClassType = TIBQuery) AND (PropName = 'RECORDCOUNT') then + Result:=TIBQuery(Instance).RecordCount; + +end; + + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsIBXRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX.fs_iilparser.pas b/FastScript/FMX.fs_iilparser.pas new file mode 100644 index 0000000..b8d0425 --- /dev/null +++ b/FastScript/FMX.fs_iilparser.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Intermediate Language parser } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iilparser; +{$i FMX.inc} +{$i fs_iilparser.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_iinirtti.pas b/FastScript/FMX.fs_iinirtti.pas new file mode 100644 index 0000000..42561a5 --- /dev/null +++ b/FastScript/FMX.fs_iinirtti.pas @@ -0,0 +1,372 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ IniFiles.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{ Copyright (c) 2004-2007 } +{ by Stalker SoftWare } +{ } +{******************************************} + +unit FMX.fs_iinirtti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, System.IniFiles, FMX.Types, System.Types; + +type +{$i frxPlatformsAttribute.inc} + TfsIniRTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; const PropName: String): Variant; + procedure SaveIniFileToStream(oIniFile: TCustomIniFile; oStream: TStream); + procedure LoadIniFileFromStream(oIniFile :TCustomIniFile; oStream :TStream); + procedure WriteTStrings(oIniFile: TCustomIniFile; const Section: String; Values: TStrings; IsClear :Boolean = True); + procedure ReadTStrings(oIniFile: TCustomIniFile; const Section: String; Values: TStrings; IsClear :Boolean = True); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + + with AScript do + begin + with AddClass(TCustomIniFile, 'TObject') do + begin + AddConstructor('constructor Create(const FileName: String)', CallMethod); + AddMethod('function ReadInteger(const Section, Ident: String; Default: LongInt): LongInt', CallMethod); + AddMethod('procedure WriteInteger(const Section, Ident: String; Value: LongInt)', CallMethod); + AddMethod('function ReadBool(const Section, Ident: String; Default: Boolean): Boolean', CallMethod); + AddMethod('procedure WriteBool(const Section, Ident: String; Value: Boolean)', CallMethod); + AddMethod('function ReadDate(const Section, Name: String; Default: TDateTime): TDateTime', CallMethod); + AddMethod('procedure WriteDate(const Section, Name: String; Value: TDateTime)', CallMethod); + AddMethod('function ReadDateTime(const Section, Name: String; Default: TDateTime): TDateTime', CallMethod); + AddMethod('procedure WriteDateTime(const Section, Name: String; Value: TDateTime)', CallMethod); + AddMethod('function ReadFloat(const Section, Name: String; Default: Double): Double', CallMethod); + AddMethod('procedure WriteFloat(const Section, Name: String; Value: Double)', CallMethod); + AddMethod('function ReadTime(const Section, Name: String; Default: TDateTime): TDateTime', CallMethod); + AddMethod('procedure WriteTime(const Section, Name: String; Value: TDateTime);', CallMethod); +{$IFDEF DELPHI6} + AddMethod('function ReadBinaryStream(const Section, Name: String; Value: TStream): Integer', CallMethod); + AddMethod('procedure WriteBinaryStream(const Section, Name: String; Value: TStream)', CallMethod); +{$ENDIF} + AddMethod('function SectionExists(const Section: String): Boolean', CallMethod); + AddMethod('function ValueExists(const Section, Ident: String): Boolean', CallMethod); + + AddMethod('procedure WriteTStrings(const Section :String; Value :TStrings; IsClear :Boolean = True)', CallMethod); + AddMethod('function ReadTStrings(const Section :String; Value :TStrings; IsClear :Boolean = True): String;', CallMethod); + + AddProperty('FileName', 'String', GetProp); + end; + + with AddClass(TMemIniFile, 'TCustomIniFile') do + begin + AddConstructor('constructor Create(const FileName: String)', CallMethod); + AddMethod('procedure WriteString(const Section, Ident, Value: String)', CallMethod); + AddMethod('function ReadString(const Section, Ident, Default: String): String;', CallMethod); +{$IFDEF DELPHI6} + AddMethod('procedure ReadSectionValuesEx(const Section: String; Strings: TStrings)', CallMethod); +{$ENDIF} + AddMethod('procedure DeleteKey(const Section, Ident: String)', CallMethod); + AddMethod('procedure ReadSection(const Section: String; Strings: TStrings)', CallMethod); + AddMethod('procedure ReadSections(Strings: TStrings)', CallMethod); + AddMethod('procedure ReadSectionValues(const Section: String; Strings: TStrings)', CallMethod); + AddMethod('procedure EraseSection(const Section: String)', CallMethod); + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure GetStrings(List: TStrings)', CallMethod); + AddMethod('procedure SetStrings(List: TStrings)', CallMethod); + AddMethod('procedure SaveIniFileToStream(oStream: TStream)', CallMethod); + AddMethod('procedure LoadIniFileFromStream(oStream: TStream)', CallMethod); + end; + + with AddClass(TIniFile, 'TCustomIniFile') do + begin + AddMethod('procedure WriteString(const Section, Ident, Value: String)', CallMethod); + AddMethod('function ReadString(const Section, Ident, Default: String): String;', CallMethod); +{$IFDEF DELPHI6} + AddMethod('procedure ReadSectionValuesEx(const Section: String; Strings: TStrings)', CallMethod); +{$ENDIF} + AddMethod('procedure DeleteKey(const Section, Ident: String)', CallMethod); + AddMethod('procedure ReadSection(const Section: String; Strings: TStrings)', CallMethod); + AddMethod('procedure ReadSections(Strings: TStrings)', CallMethod); + AddMethod('procedure ReadSectionValues(const Section: String; Strings: TStrings)', CallMethod); + AddMethod('procedure EraseSection(const Section: String)', CallMethod); + AddMethod('procedure SaveIniFileToStream(oStream: TStream)', CallMethod); + AddMethod('procedure LoadIniFileFromStream(oStream: TStream)', CallMethod); + end; + + end; + +end; + +{$HINTS OFF} +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String; Caller: TfsMethodHelper): Variant; +var + oCustomIniFile: TCustomIniFile; + oMemIniFile: TMemIniFile; + oIniFile: TIniFile; + oList: TStrings; + nCou: Integer; + +begin + + Result := 0; + + if ClassType = TCustomIniFile then + begin + oCustomIniFile := TCustomIniFile(Instance); + if MethodName = 'CREATE' then + Result := frxInteger(oCustomIniFile.Create(Caller.Params[0])) + else if MethodName = 'WRITEINTEGER' then + oCustomIniFile.WriteInteger(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READINTEGER' then + Result := oCustomIniFile.ReadInteger(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITEBOOL' then + oCustomIniFile.WriteBool(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READBOOL' then + Result := oCustomIniFile.ReadBool(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITEDATE' then + oCustomIniFile.WriteDate(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READDATE' then + Result := oCustomIniFile.ReadDate(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITEDATETIME' then + oCustomIniFile.WriteDateTime(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READDATETIME' then + Result := oCustomIniFile.ReadDateTime(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITEFLOAT' then + oCustomIniFile.WriteFloat(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READFLOAT' then + Result := oCustomIniFile.ReadFloat(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITETIME' then + oCustomIniFile.WriteTime(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READTIME' then + Result := oCustomIniFile.ReadTime(Caller.Params[0], Caller.Params[1], Caller.Params[2]) +{$IFDEF DELPHI6} + else if MethodName = 'WRITEBINARYSTREAM' then + oCustomIniFile.WriteBinaryStream(Caller.Params[0], Caller.Params[1], TStream(frxInteger(Caller.Params[2]))) + else if MethodName = 'READBINARYSTREAM' then + Result := oCustomIniFile.ReadBinaryStream(Caller.Params[0], Caller.Params[1], TStream(frxInteger(Caller.Params[2]))) +{$ENDIF} + else if MethodName = 'SECTIONEXISTS' then + Result := oCustomIniFile.SectionExists(Caller.Params[0]) + else if MethodName = 'VALUEEXISTS' then + Result := oCustomIniFile.ValueExists(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'WRITETSTRINGS' then + WriteTStrings(oCustomIniFile, Caller.Params[0], TStrings(frxInteger(Caller.Params[1])), Caller.Params[2]) + else if MethodName = 'READTSTRINGS' then + ReadTStrings(oCustomIniFile, Caller.Params[0], TStrings(frxInteger(Caller.Params[1])), Caller.Params[2]) + + end; + + if ClassType = TMemIniFile then + begin + oMemIniFile := TMemIniFile(Instance); + if MethodName = 'CREATE' then + Result := frxInteger(oMemIniFile.Create(Caller.Params[0])) + else if MethodName = 'WRITESTRING' then + oMemIniFile.WriteString(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READSTRING' then + Result := oMemIniFile.ReadString(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'DELETEKEY' then + oMemIniFile.DeleteKey(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'READSECTION' then + oMemIniFile.ReadSection(Caller.Params[0], TStrings(frxInteger(Caller.Params[1]))) + else if MethodName = 'READSECTIONS' then + oMemIniFile.ReadSections(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'READSECTIONVALUES' then + oMemIniFile.ReadSectionValues(Caller.Params[0], TStrings(frxInteger(Caller.Params[1]))) + else if MethodName = 'ERASESECTION' then + oMemIniFile.EraseSection(Caller.Params[0]) +{$IFDEF DELPHI6} + else if MethodName = 'READSECTIONVALUESEX' then + begin + oList := TStringList.Create; + try + oMemIniFile.ReadSectionValues(Caller.Params[0], oList); + TStrings(frxInteger(Caller.Params[1])).Clear; + for nCou := 0 to oList.Count-1 do +// TStrings(frxInteger(Caller.Params[1])).Add(oList.ValueFromIndex[nCou]); + TStrings(frxInteger(Caller.Params[1])).Add(oList.Values[oList.Names[nCou]]); + finally + oList.Free; + end; + end +{$ENDIF} + else if MethodName = 'CLEAR' then + oMemIniFile.Clear + else if MethodName = 'GETSTRINGS' then + oMemIniFile.GetStrings(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'SETSTRINGS' then + oMemIniFile.SetStrings(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'SAVEINIFILETOSTREAM' then + SaveIniFileToStream(oMemIniFile, TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'LOADINIFILEFROMSTREAM' then + LoadIniFileFromStream(oMemIniFile, TStream(frxInteger(Caller.Params[0]))) + end; + + if ClassType = TIniFile then + begin + oIniFile := TIniFile(Instance); + if MethodName = 'WRITESTRING' then + oIniFile.WriteString(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READSTRING' then + Result := oIniFile.ReadString(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'DELETEKEY' then + oIniFile.DeleteKey(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'READSECTION' then + oIniFile.ReadSection(Caller.Params[0], TStrings(frxInteger(Caller.Params[1]))) + else if MethodName = 'READSECTIONS' then + oIniFile.ReadSections(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'READSECTIONVALUES' then + oIniFile.ReadSectionValues(Caller.Params[0], TStrings(frxInteger(Caller.Params[1]))) + else if MethodName = 'ERASESECTION' then + oIniFile.EraseSection(Caller.Params[0]) +{$IFDEF DELPHI6} + else if MethodName = 'READSECTIONVALUESEX' then + begin + oList := TStringList.Create; + try + oIniFile.ReadSectionValues(Caller.Params[0], oList); + TStrings(frxInteger(Caller.Params[1])).Clear; + for nCou := 0 to oList.Count-1 do +// TStrings(frxInteger(Caller.Params[1])).Add(oList.ValueFromIndex[nCou]); + TStrings(frxInteger(Caller.Params[1])).Add(oList.Values[oList.Names[nCou]]); + finally + oList.Free; + end; + end +{$ENDIF} + else if MethodName = 'SAVEINIFILETOSTREAM' then + SaveIniFileToStream(oIniFile, TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'LOADINIFILEFROMSTREAM' then + LoadIniFileFromStream(oIniFile, TStream(frxInteger(Caller.Params[0]))) + end; + +end; +{$HINTS ON} + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TCustomIniFile then + begin + if PropName = 'FILENAME' then + Result := TIniFile(Instance).FileName + end; +end; + +procedure TFunctions.SaveIniFileToStream(oIniFile :TCustomIniFile; oStream :TStream); +var + oStrings :TStrings; + +begin + + if (not Assigned(oIniFile)) or (not Assigned(oStream)) then Exit; + + if not ((oIniFile is TIniFile) or (oIniFile is TMemIniFile)) then Exit; + + oStrings:= TStringList.Create; + try + + if oIniFile is TIniFile then + oStrings.LoadFromFile(oIniFile.FileName) + else + if oIniFile is TMemIniFile then + TMemIniFile(oIniFile).GetStrings(oStrings); + + oStrings.SaveToStream(oStream); + + finally + oStrings.Free; + end; + +end; + +procedure TFunctions.LoadIniFileFromStream(oIniFile :TCustomIniFile; oStream :TStream); +var + oStrings :TStrings; + +begin + + if (not Assigned(oIniFile)) or (not Assigned(oStream)) then Exit; + + if not ((oIniFile is TIniFile) or (oIniFile is TMemIniFile)) then Exit; + + oStrings:= TStringList.Create; + try + + oStrings.LoadFromStream(oStream); + + if oIniFile is TIniFile then + oStrings.SaveToFile(oIniFile.FileName) + else + if oIniFile is TMemIniFile then + TMemIniFile(oIniFile).SetStrings(oStrings); + + finally + oStrings.Free; + end; + +end; + +procedure TFunctions.WriteTStrings(oIniFile :TCustomIniFile; const Section :String; Values :TStrings; IsClear :Boolean = True); +var + nCou :Integer; + +begin + + if IsClear then oIniFile.EraseSection(Section); + + for nCou := 0 to Values.Count-1 do + oIniFile.WriteString(Section, 'Items'+IntToStr(nCou), Values[nCou]); + + oIniFile.WriteInteger(Section, 'Count', Values.Count); + +end; + +procedure TFunctions.ReadTStrings(oIniFile :TCustomIniFile; const Section :String; Values :TStrings; IsClear :Boolean = True); +var + nCou, nCount :Integer; + +begin + + nCount := oIniFile.ReadInteger(Section, 'Count', 0); + + if IsClear then Values.Clear; + + for nCou := 0 to nCount-1 do + Values.Add(oIniFile.ReadString(Section, 'Items'+IntToStr(nCou), '')); + +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsIniRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX.fs_iinterpreter.pas b/FastScript/FMX.fs_iinterpreter.pas new file mode 100644 index 0000000..0953f64 --- /dev/null +++ b/FastScript/FMX.fs_iinterpreter.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Main module } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iinterpreter; +{$i FMX.inc} +{$i fs_iinterpreter.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_ijs.pas b/FastScript/FMX.fs_ijs.pas new file mode 100644 index 0000000..4b321a6 --- /dev/null +++ b/FastScript/FMX.fs_ijs.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ JScript grammar } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_ijs; +{$i FMX.inc} +{$i fs_ijs.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_imenusrtti.pas b/FastScript/FMX.fs_imenusrtti.pas new file mode 100644 index 0000000..fe9b172 --- /dev/null +++ b/FastScript/FMX.fs_imenusrtti.pas @@ -0,0 +1,104 @@ +{**********************************************} +{ } +{ FastScript v1.9 } +{ Menus } +{ } +{ Copyright (c) 1998-2011 } +{ by Fast Reports Inc. } +{ } +{**********************************************} + +unit FMX.fs_imenusrtti; + +interface + +{$I fs.inc} + +uses + System.SysUtils, System.Classes, FMX.Menus, FMX.fs_iinterpreter, FMX.fs_ievents, System.Types, System.Variants, FMX.Types; + +type +{$i frxPlatformsAttribute.inc} + + TfsMenusRTTI = class(TComponent); // fake component + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; const MethodName: + string; Caller: TfsMethodHelper): Variant; + public + constructor Create(AScript: TfsScript); override; + end; + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + + with AScript do + begin + + AddType('TPopupAlignment', fvtInt); + + + with AddClass(TMenuItem, 'TTextControl') do + begin + AddMethod('procedure Popup', CallMethod); + AddMethod('procedure NeedPopup', CallMethod); + AddMethod('function HavePopup: Boolean', CallMethod); + end; { with } + + with AddClass(TMainMenu, 'TFmxObject') do + with AddClass(TMenuBar, 'TStyledControl') do + AddMethod('procedure StartMenuLoop', CallMethod); + + with AddClass(TPopupMenu, 'TFmxObject') do + AddMethod('procedure Popup(X, Y: Single)', CallMethod); + + end; { with } + +end; { Create } + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; const + MethodName: string; Caller: TfsMethodHelper): Variant; +var + oMenuItem: TMenuItem; +begin + Result := 0; + + if ClassType = TMenuItem then + begin + + oMenuItem := TMenuItem(Instance); + + if MethodName = 'POPUP' then + oMenuItem.Popup + else if MethodName = 'NEEDPOPUP' then + oMenuItem.NeedPopup + else if MethodName = 'HAVEPOPUP' then + Result := oMenuItem.HavePopup; + + end + else if ClassType = TPopupMenu then + begin + + if MethodName = 'POPUP' then + TPopupMenu(Instance).Popup(Caller.Params[0], Caller.Params[1]); + + end; +end; { CallMethod } + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsMenusRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. + diff --git a/FastScript/FMX.fs_iparser.pas b/FastScript/FMX.fs_iparser.pas new file mode 100644 index 0000000..b922d9e --- /dev/null +++ b/FastScript/FMX.fs_iparser.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Parser } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iparser; +{$i FMX.inc} +{$i fs_iparser.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_ipascal.pas b/FastScript/FMX.fs_ipascal.pas new file mode 100644 index 0000000..33f4f12 --- /dev/null +++ b/FastScript/FMX.fs_ipascal.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Pascal grammar } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_ipascal; +{$i FMX.inc} +{$i fs_ipascal.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_isysrtti.pas b/FastScript/FMX.fs_isysrtti.pas new file mode 100644 index 0000000..b1405ee --- /dev/null +++ b/FastScript/FMX.fs_isysrtti.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Standard functions } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_isysrtti; +{$i FMX.inc} +{$i fs_isysrtti.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_itools.pas b/FastScript/FMX.fs_itools.pas new file mode 100644 index 0000000..871b7c6 --- /dev/null +++ b/FastScript/FMX.fs_itools.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Common functions } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_itools; +{$i FMX.inc} +{$i fs_itools.pas} \ No newline at end of file diff --git a/FastScript/FMX.fs_lazarus.pas b/FastScript/FMX.fs_lazarus.pas new file mode 100644 index 0000000..7c4d3a2 --- /dev/null +++ b/FastScript/FMX.fs_lazarus.pas @@ -0,0 +1,25 @@ +{ This file was automatically created by Lazarus. do not edit! + This source is only used to compile and install the package. + } + +unit fs_lazarus; + +interface + +uses + fs_ipascal, fs_icpp, fs_ijs, fs_ibasic, fs_iclassesrtti, fs_iconst, + fs_idialogsrtti, fs_ievents, fs_iexpression, fs_iextctrlsrtti, + fs_iformsrtti, fs_igraphicsrtti, fs_iilparser, fs_iinirtti, fs_iinterpreter, + fs_iparser, fs_isysrtti, fs_itools, fs_xml, fs_ireg, fs_synmemo, fs_tree, + LazarusPackageIntf; + +implementation + +procedure Register; +begin + RegisterUnit('fs_ireg', @fs_ireg.Register); +end; + +initialization + RegisterPackage('fs_lazarus', @Register); +end. diff --git a/FastScript/FMX.fs_synmemo.fmx b/FastScript/FMX.fs_synmemo.fmx new file mode 100644 index 0000000..da0b5ed --- /dev/null +++ b/FastScript/FMX.fs_synmemo.fmx @@ -0,0 +1,50 @@ +object fsSynMemoSearch: TfsSynMemoSearch + Left = 0 + Top = 0 + BorderStyle = bsToolWindow + Caption = 'Search for text' + ClientHeight = 129 + ClientWidth = 249 + Position = poScreenCenter + FormFactor.Width = 320 + FormFactor.Height = 480 + FormFactor.Devices = [dkDesktop, dkiPhone, dkiPad] + DesignerMobile = False + DesignerWidth = 0 + DesignerHeight = 0 + DesignerDeviceName = '' + DesignerOrientation = 0 + object Edit1: TEdit + TabOrder = 0 + Position.X = 48.000000000000000000 + Position.Y = 13.000000000000000000 + Width = 193.000000000000000000 + Height = 22.000000000000000000 + KillFocusByReturn = False + end + object Label1: TLabel + Height = 15.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 16.000000000000000000 + Text = 'Search :' + Width = 49.000000000000000000 + end + object Search: TButton + Height = 17.000000000000000000 + ModalResult = 1 + Position.X = 88.000000000000000000 + Position.Y = 48.000000000000000000 + TabOrder = 2 + Text = 'Search' + Width = 73.000000000000000000 + end + object Button1: TButton + Height = 17.000000000000000000 + ModalResult = 2 + Position.X = 168.000000000000000000 + Position.Y = 48.000000000000000000 + TabOrder = 3 + Text = 'Cancel' + Width = 73.000000000000000000 + end +end diff --git a/FastScript/FMX.fs_synmemo.pas b/FastScript/FMX.fs_synmemo.pas new file mode 100644 index 0000000..01b86ad --- /dev/null +++ b/FastScript/FMX.fs_synmemo.pas @@ -0,0 +1,2397 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Syntax memo FMX control } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +{ Simple syntax highlighter. Supports Pascal, C++, JS, VB and SQL syntax. + + Assign text to Text property. + Assign desired value to SyntaxType property. + Call SetPos to move caret. + Call ShowMessage to display an error message at the bottom. +} + +unit FMX.fs_synmemo; + +interface + +{$I fs.inc} +{$I fmx.inc} + +uses + System.Classes, System.Variants, System.UIConsts, System.SysUtils, System.UITypes, System.Types, + FMX.Controls, FMX.Forms, FMX.Menus, FMX.Types, FMX.Edit, FMX.Platform, FMX.TreeView +{$IFDEF DELPHI18} + ,FMX.StdCtrls +{$ENDIF} +{$IFDEF DELPHI19} + , FMX.Graphics +{$ENDIF} +{$IFDEF DELPHI19} + , FMX.Text +{$ENDIF} +{$IFDEF DELPHI28} + , FMX.BaseTypeAliases, FMX.FormTypeAliases +{$ENDIF}; + +type + TSyntaxType = (stPascal, stCpp, stJs, stVB, stSQL, stText); + TCharAttr = (caNo, caText, caBlock, caComment, caKeyword, caString); + TCharAttributes = set of TCharAttr; + +type + TfsBorderSettings = class(TPersistent) + private + FFill: TBrush; + FWidth: Integer; + private + procedure SetFill(const Value: TBrush); + procedure SetWidth(const Value: Integer); + public + constructor Create; + destructor Destroy; override; + published + property Fill: TBrush read FFill write SetFill; + property Width: Integer read FWidth write SetWidth; + end; + + TfsFontSettings = class(TPersistent) + private + FFill: TBrush; + FFont: TFont; + procedure SetFill(const Value: TBrush); + procedure SetFont(const Value: TFont); + public + constructor Create; + destructor Destroy; override; + procedure Assign(Source: TPersistent); override; + published + property Fill: TBrush read FFill write SetFill; + property Font: TFont read FFont write SetFont; + end; + +{$i frxPlatformsAttribute.inc} + TfsSyntaxMemo = class(TStyledControl{$IFDEF DELPHI18}, ICaret{$ENDIF}) + private +{$IFDEF DELPHI18} + FCaret: TCaret; +{$ENDIF} + FBorder: TfsBorderSettings; + FFill: TBrush; + FFontSettings: TfsFontSettings; + FGutterFill: TBrush; + FAllowLinesChange: Boolean; + FCharHeight: Single; + FCharWidth: Single; + FDoubleClicked: Boolean; + FDown: Boolean; + FGutterWidth: Integer; + FFooterHeight: Integer; + FIsMonoType: Boolean; + FKeywords: String; + FMaxLength: Integer; + FMessage: String; + FModified: Boolean; + FMoved: Boolean; + FOffset: TPoint; + FPos: TPoint; + FReadOnly: Boolean; + FSelEnd: TPoint; + FSelStart: TPoint; + FSynStrings: TStrings; + FSyntaxType: TSyntaxType; + FTempPos: TPoint; + FText: TStringList; + FKeywordAttr: TfsFontSettings; + FStringAttr: TfsFontSettings; + FTextAttr: TfsFontSettings; + FCommentAttr: TfsFontSettings; + FBlockColor: TAlphaColor; + FBlockFontColor: TAlphaColor; + FUndo: TStringList; + FUpdating: Boolean; + FUpdatingSyntax: Boolean; + FVScroll: TScrollBar; + FWindowSize: TPoint; + FPopupMenu: TPopupMenu; + KWheel: Integer; + LastSearch: String; + FShowGutter: boolean; + FShowFooter: boolean; + Bookmarks: array of Integer; + FActiveLine: Integer; + FOnChange: TNotifyEvent; + FTmpCanvas: TBitmap; + procedure CalcCharSize; + function GetCharWidth(Str: String): Single; + function GetText: TStrings; + procedure SetText(Value: TStrings); + procedure SetSyntaxType(Value: TSyntaxType); + procedure SetShowGutter(Value: boolean); + procedure SetShowFooter(Value: boolean); + function FMemoFind(Text: String; var Position : TPoint): boolean; + function GetCharAttr(Pos: TPoint): TCharAttributes; + function GetLineBegin(Index: Integer): Integer; + function GetPlainTextPos(Pos: TPoint): Integer; + function GetPosPlainText(Pos: Integer): TPoint; + function GetSelText: String; + function LineAt(Index: Integer): String; + function LineLength(Index: Integer): Integer; + function Pad(n: Integer): String; + procedure AddSel; + procedure AddUndo; + procedure ClearSel; + procedure CreateSynArray; + procedure DoChange; + procedure EnterIndent; + procedure SetSelText(Value: String); + procedure ShiftSelected(ShiftRight: Boolean); + procedure ShowCaretPos; + procedure TabIndent; + procedure UnIndent; + procedure UpdateScrollBar; + procedure UpdateSyntax; + procedure DoLeft; + procedure DoRight; + procedure DoUp; + procedure DoDown; + procedure DoHome(Ctrl: Boolean); + procedure DoEnd(Ctrl: Boolean); + procedure DoPgUp; + procedure DoPgDn; + procedure DoChar(Ch: Char); + procedure DoReturn; + procedure DoDel; + procedure DoBackspace; + procedure DoCtrlI; + procedure DoCtrlU; + procedure DoCtrlR; + procedure DoCtrlL; + procedure ScrollClick(Sender: TObject); + procedure ScrollEnter(Sender: TObject); + procedure LinesChange(Sender: TObject); + procedure ShowPos; + procedure BookmarkDraw(Y :Single; ALine : integer); + procedure ActiveLineDraw(Y :Single; ALine : integer); + procedure CorrectBookmark(Line : integer; delta : integer); + procedure SetKeywordAttr(Value: TfsFontSettings); + procedure SetStringAttr(Value: TfsFontSettings); + procedure SetTextAttr(Value: TfsFontSettings); + procedure SetCommentAttr(Value: TfsFontSettings); + procedure SetBorder(const Value: TfsBorderSettings); + procedure SetFill(const Value: TBrush); + procedure SetFontSettings(const Value: TfsFontSettings); + procedure SetGutterFill(const Value: TBrush); + protected + procedure SetParent(const Value: TFmxObject); override; + function GetClientRect: TRectF; + procedure DblClick; override; + procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; + procedure MouseMove(Shift: TShiftState; X, Y: Single); override; + procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; + procedure KeyDown(var Key: Word; var KeyChar: WideChar; Shift: TShiftState); override; + procedure CopyPopup(Sender: TObject); + procedure PastePopup(Sender: TObject); + procedure CutPopup(Sender: TObject); + procedure MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); override; + procedure DOver(Sender: TObject; const Data: TDragObject; const Point: TPointF; {$IFNDEF DELPHI20}var Accept: Boolean{$ELSE} var Operation: TDragOperation{$ENDIF}); + procedure DDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF); + procedure DoExit; override; + procedure Resize; override; + procedure UpdateWindowSize; + procedure FontChanged(Sender: TObject); + procedure DialogKey(var Key: Word; Shift: TShiftState); override; +{$IFDEF Delphi18} + function ICaret.GetObject = GetCaret; + function GetCaret: TCustomCaret; + procedure SetCaret(const Value: TCaret); + procedure ShowCaret; + procedure HideCaret; +{$ENDIF} +{$IFDEF Delphi17} + function CreateCaret: TCaret; {$IFNDEF Delphi18} override; {$ENDIF} +{$ENDIF} + procedure SetAttr(aCanvas: TCanvas; a: TCharAttributes); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure Paint; override; + procedure CopyToClipboard; + procedure CutToClipboard; + procedure PasteFromClipboard; + procedure SetPos(x, y: Integer); + procedure ShowMessage(s: String); + procedure Undo; + procedure UpdateView; + function GetPos: TPoint; + function Find(Text: String): boolean; + property Modified: Boolean read FModified write FModified; + property SelText: String read GetSelText write SetSelText; + function IsBookmark(Line : integer): integer; + procedure AddBookmark(Line, Number : integer); + procedure DeleteBookmark(Number : integer); + procedure GotoBookmark(Number : integer); + procedure SetActiveLine(Line : Integer); + function GetActiveLine: Integer; +{$IFDEF Delphi18} + property Caret: TCaret read FCaret write SetCaret; +{$ENDIF} + published + property Align; + property Anchors; + property DragMode; + property Enabled; + property PopupMenu; + property ShowHint; + property TabOrder; + property Width; + property Height; + property Visible; +{$IFDEF Delphi18} + property Cursor; +{$ENDIF} + property BlockColor: TAlphaColor read FBlockColor write FBlockColor; + property BlockFontColor: TAlphaColor read FBlockFontColor write FBlockFontColor; + property CommentAttr: TfsFontSettings read FCommentAttr write SetCommentAttr; + property KeywordAttr: TfsFontSettings read FKeywordAttr write SetKeywordAttr; + property StringAttr: TfsFontSettings read FStringAttr write SetStringAttr; + property TextAttr: TfsFontSettings read FTextAttr write SetTextAttr; + property Border: TfsBorderSettings read FBorder write SetBorder; + property Fill: TBrush read FFill write SetFill; + property FontSettings: TfsFontSettings read FFontSettings write SetFontSettings; + property GutterFill: TBrush read FGutterFill write SetGutterFill; + property Lines: TStrings read GetText write SetText; + property ReadOnly: Boolean read FReadOnly write FReadOnly; + property SyntaxType: TSyntaxType read FSyntaxType write SetSyntaxType; + property ShowFooter: boolean read FShowFooter write SetShowFooter; + property ShowGutter: boolean read FShowGutter write SetShowGutter; + property OnChange: TNotifyEvent read FOnChange write FOnChange; + property OnClick; + property OnDblClick; + property OnDragDrop; + property OnDragOver; + property OnEnter; + property OnExit; + property OnKeyDown; + property OnMouseDown; + property OnMouseMove; + property OnMouseUp; + end; + + TfsSynMemoSearch = class(TForm) + Search: TButton; + Button1: TButton; + Label1: TLabel; + Edit1: TEdit; + procedure FormKeyPress(Sender: TObject; var Key: Char); + private + { Private declarations } + public + { Public declarations } + end; + +var + SynMemoSearch: TfsSynMemoSearch; + +implementation + +{$R *.FMX} +{$IFDEF DELPHI18} +type THachCaret = class(TCaret); +{$ENDIF} + +const + PasKeywords = + 'and,array,begin,case,const,div,do,downto,else,end,except,finally,'+ + 'for,function,if,in,is,mod,nil,not,of,or,procedure,program,repeat,shl,'+ + 'shr,string,then,to,try,until,uses,var,while,with,xor'; + + CppKeywords = + 'bool,break,case,char,continue,define,default,delete,do,double,else,'+ + 'except,finally,float,for,if,include,int,is,new,return,string,switch,try,'+ + 'variant,void,while'; + + SQLKeywords = + 'active,after,all,alter,and,any,as,asc,ascending,at,auto,' + + 'base_name,before,begin,between,by,cache,cast,check,column,commit,' + + 'committed,computed,conditional,constraint,containing,count,create,' + + 'current,cursor,database,debug,declare,default,delete,desc,descending,' + + 'distinct,do,domain,drop,else,end,entry_point,escape,exception,execute,' + + 'exists,exit,external,extract,filter,for,foreign,from,full,function,' + + 'generator,grant,group,having,if,in,inactive,index,inner,insert,into,is,' + + 'isolation,join,key,left,level,like,merge,names,no,not,null,of,on,only,' + + 'or,order,outer,parameter,password,plan,position,primary,privileges,' + + 'procedure,protected,read,retain,returns,revoke,right,rollback,schema,' + + 'select,set,shadow,shared,snapshot,some,suspend,table,then,to,' + + 'transaction,trigger,uncommitted,union,unique,update,user,using,values,' + + 'view,wait,when,where,while,with,work'; + + JSKeywords = + 'break,case,continue,default,delete,do,else,except,finally,for,function,' + + 'import,in,is,if,new,return,switch,try,var,while,with'; + + VBKeywords = + 'addressof,and,as,byref,byval,case,catch,delete,dim,do,else,elseif,' + + 'end,endif,exit,finally,for,function,if,imports,is,loop,mod,new,next,' + + 'not,or,rem,return,select,set,step,sub,then,to,try,wend,while,with,xor'; + + + WordChars = ['a'..'z', 'A'..'Z', '0'..'9', '_']; + LineBreak: AnsiString = sLineBreak; + +function IsUnicodeChar(Chr: Char): Boolean; +begin + Result := ((Chr >= Char($007F)) and (Chr <= Char($FFFF))); +end; + + +{ TfsSyntaxMemo } + +constructor TfsSyntaxMemo.Create(AOwner: TComponent); +var + m: TMenuItem; + i: integer; +begin + inherited Create(AOwner); + FTmpCanvas := TBitmap.Create(1, 1); +{$IFDEF DELPHI18} + FCaret := CreateCaret; +{$ENDIF} + FVScroll := TScrollBar.Create(Self); + FVScroll.Stored := False; + FVScroll.Orientation := TOrientation.orVertical; + + FFontSettings := TfsFontSettings.Create; + FFontSettings.Font.OnChanged := FontChanged; + FFontSettings.Fill.Color := TAlphaColorRec.Black; + + FCommentAttr := TfsFontSettings.Create; + FCommentAttr.Fill.Color := TAlphaColorRec.Green; + FCommentAttr.Font.Style := [TFontStyle.fsItalic]; + + FKeywordAttr := TfsFontSettings.Create; + FKeywordAttr.FFill.Color := TAlphaColorRec.Navy; + FKeywordAttr.Font.Style := [TFontStyle.fsBold]; + + FStringAttr := TfsFontSettings.Create; + FStringAttr.Fill.Color := TAlphaColorRec.Navy; + FStringAttr.Font.Style := []; + + FTextAttr := TfsFontSettings.Create; + FTextAttr.Fill.Color := TAlphaColorRec.Black; + FTextAttr.Font.Style := []; + + FBorder := TfsBorderSettings.Create; + FFill := TBrush.Create(TBrushKind.bkSolid, TAlphaColorRec.White); + FGutterFill := TBrush.Create(TBrushKind.bkSolid, TAlphaColorRec.Whitesmoke); + + if AOwner is TFmxObject then + Parent := AOwner as TFmxObject; + + OnDragOver := DOver; + OnDragDrop := DDrop; + KWheel := -1; + + + FText := TStringList.Create; + FUndo := TStringList.Create; + FSynStrings := TStringList.Create; + FText.Add(''); + FText.OnChange := LinesChange; + FMaxLength := 1024; + SyntaxType := stPascal; + FMoved := True; + SetPos(1, 1); + FOffset := Point(0, 0); + CanFocus := True; + Cursor := crIBeam; + + FBlockColor := TAlphaColorRec.Blue; + FBlockFontColor := TAlphaColorRec.White; + + FPopupMenu := TPopupMenu.Create(Self); + m := TMenuItem.Create(FPopupMenu); + m.Text := 'Cut'; + m.OnClick := CutPopup; + FPopupMenu.AddObject(m); + m := TMenuItem.Create(FPopupMenu); + m.Text := 'Copy'; + m.OnClick := CopyPopup; + FPopupMenu.AddObject(m); + m := TMenuItem.Create(FPopupMenu); + m.Text := 'Paste'; + m.OnClick := PastePopup; + FPopupMenu.AddObject(m); + + LastSearch := ''; + Setlength(Bookmarks, 10); + for i := 0 to Length(Bookmarks)-1 do + Bookmarks[i] := -1; + + FActiveLine := -1; + + Height := 200; + Width := 200; + CalcCharSize; +end; + +destructor TfsSyntaxMemo.Destroy; +begin + FPopupMenu.Free; + FCommentAttr.Free; + FKeywordAttr.Free; + FStringAttr.Free; + FFontSettings.Free; + FTextAttr.Free; + FText.Free; + FUndo.Free; + FSynStrings.Free; + //FVScroll.Free; + FFill.Free; + FBorder.Free; + FGutterFill.Free; +{$IFDEF DELPHI18} + FCaret.Free; +{$ENDIF} + FreeAndNil(FTmpCanvas); + inherited; +end; + +procedure TfsSyntaxMemo.CalcCharSize; +var + tmpBmp: TBitmap; + r: TRectF; +begin + tmpBmp := TBitmap.Create(1, 1); + with tmpBmp.Canvas do + begin + Font.Assign(FFontSettings.Font); + Font.Style := []; + r := RectF(0, 0, 1000, 1000); + MeasureText(r, 'WWWWWW', True, [], TTextAlign.taLeading); // taLeading returns incorrect results in xe2 + FCharHeight := r.Height + 2; + FCharWidth := r.Width / 6; + FIsMonoType := Pos('COURIER NEW', AnsiUppercase(FFontSettings.Font.Family)) <> 0; + end; + tmpBmp.Free; +end; + +{$IFDEF Delphi17} +function TfsSyntaxMemo.CreateCaret: TCaret; +begin + Result := TCaret.Create(Self); + Result.Visible := True; +{$IFDEF DELPHI20} + Result.ReadOnly := False; + Result.Color := claBlack; +{$ENDIF} + Result.Pos := TPointF.Create(1, 1); +end; +{$ENDIF} + +{$IFDEF DELPHI18} +function TfsSyntaxMemo.GetCaret: TCustomCaret; +begin + Result := FCaret; +end; + +procedure TfsSyntaxMemo.SetCaret(const Value: TCaret); +begin + if Assigned(FCaret) then + FCaret.Assign(Value); +end; + +procedure TfsSyntaxMemo.ShowCaret; +begin + THachCaret(FCaret).Show; +end; + +procedure TfsSyntaxMemo.HideCaret; +begin + THachCaret(FCaret).Hide; +end; +{$ENDIF} + +procedure TfsSyntaxMemo.ShowCaretPos; +var + cWidth: Single; + LineLen: Integer; +begin + cWidth := GetCharWidth(Copy(LineAt(FPos.Y - 1), FOffset.X, FPos.X - 1 - FOffset.X)); + LineLen := LineLength(FPos.Y - 1); + if LineLen < FPos.X then + cWidth := Round(cWidth + FCharWidth * (FPos.X - 1 - LineLen)); +{$IFNDEF Delphi18} +{$IFDEF Delphi17} + if IsFocused then + begin + CaretVisible := False; + SetCaretParams(PointF( + FCharWidth * (FPos.X - 1 - FOffset.X) + FGutterWidth + FBorder.Width + 1, + FCharHeight * (FPos.Y - 1 - FOffset.Y) + 1), + PointF(2, FCharHeight), claBlack); + CaretVisible := True; + end + else + CaretVisible := False; +{$ELSE} + if IsFocused then + begin + SetCaretSize(PointF(2, FCharHeight)); + SetCaretPos(PointF( + FCharWidth * (FPos.X - 1 - FOffset.X) + FGutterWidth + FBorder.Width + 1, + FCharHeight * (FPos.Y - 1 - FOffset.Y) + 1)); + ShowCaretProc; + end + else + HideCaret; +{$ENDIF} +{$ELSE} + if IsFocused then + begin + //SetCaretSize(PointF(2, FCharHeight)); + FCaret.Size := PointF(2, FCharHeight); + FCaret.Pos := PointF( + cWidth + FGutterWidth + FBorder.Width + 1, + FCharHeight * (FPos.Y - 1 - FOffset.Y) + 1); + ShowCaret; +// SetCaretPos(PointF( +// FCharWidth * (FPos.X - 1 - FOffset.X) + FGutterWidth + FBorder.Width + 1, +// FCharHeight * (FPos.Y - 1 - FOffset.Y) + 1)); +// ShowCaretProc; + end + else + HideCaret; +{$ENDIF} +end; + +procedure TfsSyntaxMemo.ShowPos; +var + cRect: TRectF; +begin + if FFooterHeight > 0 then + with Canvas do + begin + Font.Family := 'Tahoma'; + Font.Style := []; + Font.Size := 11; + Fill.Color := TAlphaColorRec.Black; + cRect := GetClientRect; + FillText(RectF(cRect.Left + FGutterWidth + 2, cRect.Bottom - TextHeight('|') - 8, + FGutterWidth + 4 + FCharWidth * 10 , + (Self.Height - TextHeight('|') - 4) + FCharHeight), IntToStr(FPos.y) + + ' : ' + IntToStr(FPos.x) + ' ', FALSE, 1, [], TTextAlign.taLeading); + end; +end; + +procedure TfsSyntaxMemo.SetParent(const Value: TFmxObject); +begin + inherited SetParent(Value); + if (Parent = nil) or (csDestroying in ComponentState) then Exit; + ShowGutter := True; + ShowFooter := True; + FVScroll.Parent := Self; + FVScroll.OnChange := ScrollClick; + FVScroll.OnEnter := ScrollEnter; +end; + +function TfsSyntaxMemo.GetClientRect: TRectF; +begin + if FVScroll.Visible then + Result := RectF(FBorder.Width, FBorder.Width, + Width - FVScroll.Width - FBorder.Width, + Height - FBorder.Width) + else + Result := RectF(FBorder.Width, FBorder.Width, + Width - FBorder.Width, Height - FBorder.Width); +end; + +procedure TfsSyntaxMemo.UpdateSyntax; +begin + CreateSynArray; + Repaint; +end; + +procedure TfsSyntaxMemo.UpdateScrollBar; +begin + with FVScroll do + begin +// prevent OnScroll event + FUpdating := True; + + Value := 0; + ViewportSize := 0; + + Max := FText.Count; + SmallChange := 1; + if FWindowSize.Y < Max then + begin + Visible := True; + ViewportSize := FWindowSize.Y; + end + else + Visible := False; + ViewportSize := FWindowSize.Y; + Value := FOffset.Y; + + FUpdating := False; + end; +end; + +function TfsSyntaxMemo.GetText: TStrings; +var + i: Integer; +begin + for i := 0 to FText.Count - 1 do + FText[i] := LineAt(i); + Result := FText; + FAllowLinesChange := True; +end; + +procedure TfsSyntaxMemo.SetText(Value: TStrings); +begin + FAllowLinesChange := True; + FText.Assign(Value); +end; + +procedure TfsSyntaxMemo.SetSyntaxType(Value: TSyntaxType); +begin + FSyntaxType := Value; + if Value = stPascal then + FKeywords := PasKeywords + else if Value = stCpp then + FKeywords := CppKeywords + else if Value = stSQL then + FKeywords := SQLKeywords + else if Value = stVB then + FKeywords := VBKeywords + else if Value = stJS then + FKeywords := JSKeywords + else + FKeywords := ''; + UpdateSyntax; +end; + +function TfsSyntaxMemo.GetPos: TPoint; +begin + Result := FPos; +end; + +procedure TfsSyntaxMemo.DoChange; +begin + FModified := True; + if Assigned(FOnChange) then + FOnChange(Self); +end; + +procedure TfsSyntaxMemo.LinesChange(Sender: TObject); +begin + if FAllowLinesChange then + begin + UpdateSyntax; + FAllowLinesChange := False; + if FText.Count = 0 then + FText.Add(''); + FMoved := True; + FUndo.Clear; + FPos := Point(1, 1); + FOffset := Point(0, 0); + SetPos(FPos.X, FPos.Y); + ClearSel; + ShowCaretPos; + UpdateScrollBar; + end; +end; + +procedure TfsSyntaxMemo.ShowMessage(s: String); +begin + FMessage := s; + Repaint; +end; + +procedure SetClipboard(const Value: String); +{$IFDEF Delphi17} +var + ClipService: IFMXClipboardService; +begin + if TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, IInterface(ClipService)) then + ClipService.SetClipboard(Value); +end; +{$ELSE} +begin + Platform.SetClipboard(Value); +end; +{$ENDIF} + +function GetClipboard: String; +{$IFDEF Delphi17} +var + ClipService: IFMXClipboardService; +begin + if TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, IInterface(ClipService)) then + Result := ClipService.GetClipboard.ToString + else + Result := ''; +end; +{$ELSE} +begin + Result := VarToStr(Platform.GetClipboard); +end; +{$ENDIF} + +procedure TfsSyntaxMemo.CopyToClipboard; +begin + if FSelStart.X <> 0 then + SetClipboard(SelText); +end; + +procedure TfsSyntaxMemo.CutToClipboard; +begin + if not FReadOnly then + begin + if FSelStart.X <> 0 then + begin + SetClipboard(SelText); + SelText := ''; + end; + CorrectBookmark(FSelStart.Y, FSelStart.Y - FSelEnd.Y); + Repaint; + end; +end; + +procedure TfsSyntaxMemo.PasteFromClipboard; +begin + if (not FReadOnly) then + SelText := GetClipboard; +end; + +function TfsSyntaxMemo.LineAt(Index: Integer): String; +begin + if Index < FText.Count then + Result := TrimRight(FText[Index]) + else + Result := ''; +end; + +function TfsSyntaxMemo.LineLength(Index: Integer): Integer; +begin + if Index < 0 then + Result := 0 else + Result := Length(LineAt(Index)); +end; + +function TfsSyntaxMemo.Pad(n: Integer): String; +begin + result := ''; + SetLength(result, n); + Result := StringOfChar(Char(' '), n) +end; + +procedure TfsSyntaxMemo.AddUndo; +begin + if not FMoved then exit; + FUndo.Add(Format('%5d%5d', [FPos.X, FPos.Y]) + FText.Text); + if FUndo.Count > 32 then + FUndo.Delete(0); +end; + +procedure TfsSyntaxMemo.Undo; +var + s: String; +begin + FMoved := True; + if FUndo.Count = 0 then exit; + s := FUndo[FUndo.Count - 1]; + FPos.X := StrToInt(Copy(s, 1, 5)); + FPos.Y := StrToInt(Copy(s, 6, 5)); + FText.Text := Copy(s, 11, Length(s) - 10); + FUndo.Delete(FUndo.Count - 1); + SetPos(FPos.X, FPos.Y); + UpdateSyntax; + DoChange; +end; + +function TfsSyntaxMemo.GetPlainTextPos(Pos: TPoint): Integer; +var + i: Integer; +begin + Result := 0; + for i := 0 to Pos.Y - 2 do + Result := Result + Length(FText[i]) + Length(LineBreak); + Result := Result + Pos.X; +end; + +function TfsSyntaxMemo.GetPosPlainText(Pos: Integer): TPoint; +var + i: Integer; + s: String; +begin + Result := Point(0, 1); + s := FText.Text; + i := 1; + while i <= Pos do + if s[i] = Char(LineBreak[1]) then + begin + Inc(i, Length(LineBreak)); + if i <= Pos then + begin + Inc(Result.Y); + Result.X := 0; + end + else + Inc(Result.X); + end + else + begin + Inc(i); + Inc(Result.X); + end; +end; + +function TfsSyntaxMemo.GetLineBegin(Index: Integer): Integer; +var + s: String; +begin + s := FText[Index]; + Result := 1; + if Trim(s) <> '' then + for Result := 1 to Length(s) do + if s[Result] <> ' ' then + break; +end; + +procedure TfsSyntaxMemo.TabIndent; +begin + SelText := Pad(2); +end; + +procedure TfsSyntaxMemo.EnterIndent; +var + res: Integer; +begin + if Trim(FText[FPos.Y - 1]) = '' then + res := FPos.X else + res := GetLineBegin(FPos.Y - 1); + + CorrectBookmark(FPos.Y, 1); + + FPos := Point(1, FPos.Y + 1); + SelText := Pad(res - 1); +end; + +procedure TfsSyntaxMemo.UnIndent; +var + i, res: Integer; +begin + i := FPos.Y - 2; + res := FPos.X - 1; + CorrectBookmark(FPos.Y, -1); + while i >= 0 do + begin + res := GetLineBegin(i); + if (res < FPos.X) and (Trim(FText[i]) <> '') then + break else + Dec(i); + end; + FSelStart := FPos; + FSelEnd := FPos; + Dec(FSelEnd.X, FPos.X - res); + SelText := ''; +end; + +procedure TfsSyntaxMemo.ShiftSelected(ShiftRight: Boolean); +var + i, ib, ie: Integer; + s: String; + Shift: Integer; +begin + if FReadOnly then exit; + AddUndo; + if FSelStart.X + FSelStart.Y * FMaxLength < FSelEnd.X + FSelEnd.Y * FMaxLength then + begin + ib := FSelStart.Y - 1; + ie := FSelEnd.Y - 1; + end + else + begin + ib := FSelEnd.Y - 1; + ie := FSelStart.Y - 1; + end; + if FSelEnd.X = 1 then + Dec(ie); + + Shift := 2; + if not ShiftRight then + for i := ib to ie do + begin + s := FText[i]; + if (Trim(s) <> '') and (GetLineBegin(i) - 1 < Shift) then + Shift := GetLineBegin(i) - 1; + end; + + for i := ib to ie do + begin + s := FText[i]; + if ShiftRight then + s := Pad(Shift) + s + else if Trim(s) <> '' then + Delete(s, 1, Shift); + FText[i] := s; + end; + UpdateSyntax; + DoChange; +end; + +function TfsSyntaxMemo.GetSelText: String; +var + p1, p2: TPoint; + i: Integer; +begin + if FSelStart.X + FSelStart.Y * FMaxLength < FSelEnd.X + FSelEnd.Y * FMaxLength then + begin + p1 := FSelStart; + p2 := FSelEnd; + Dec(p2.X); + end + else + begin + p1 := FSelEnd; + p2 := FSelStart; + Dec(p2.X); + end; + + if LineLength(p1.Y - 1) < p1.X then + begin + Inc(p1.Y); + p1.X := 1; + end; + if LineLength(p2.Y - 1) < p2.X then + p2.X := LineLength(p2.Y - 1); + + i := GetPlainTextPos(p1); + Result := Copy(FText.Text, i, GetPlainTextPos(p2) - i + 1); +end; + +procedure TfsSyntaxMemo.SetSelText(Value: String); +var + p1, p2, p3: TPoint; + i: Integer; + s: String; +begin + if FReadOnly then exit; + AddUndo; + if FSelStart.X = 0 then + begin + p1 := FPos; + p2 := p1; + Dec(p2.X); + end + else if FSelStart.X + FSelStart.Y * FMaxLength < FSelEnd.X + FSelEnd.Y * FMaxLength then + begin + p1 := FSelStart; + p2 := FSelEnd; + Dec(p2.X); + end + else + begin + p1 := FSelEnd; + p2 := FSelStart; + Dec(p2.X); + end; + + if LineLength(p1.Y - 1) < p1.X then + FText[p1.Y - 1] := FText[p1.Y - 1] + Pad(p1.X - LineLength(p1.Y - 1) + 1); + if LineLength(p2.Y - 1) < p2.X then + p2.X := LineLength(p2.Y - 1); + + i := GetPlainTextPos(p1); + s := FText.Text; + Delete(s, i, GetPlainTextPos(p2) - i + 1); + Insert(Value, s, i); + FText.Text := s; + p3 := GetPosPlainText(i + Length(Value)); + + CorrectBookmark(FPos.Y, p3.y-FPos.Y); + + SetPos(p3.X, p3.Y); + FSelStart.X := 0; + DoChange; + UpdateSyntax; +end; + +procedure TfsSyntaxMemo.ClearSel; +begin + if FSelStart.X <> 0 then + begin + FSelStart := Point(0, 0); + Repaint; + end; +end; + +procedure TfsSyntaxMemo.AddSel; +begin + if FSelStart.X = 0 then + FSelStart := FTempPos; + FSelEnd := FPos; + Repaint; +end; + +procedure TfsSyntaxMemo.SetPos(x, y: Integer); +begin + if FMessage <> '' then + begin + FMessage := ''; + Repaint; + end; + + if x > FMaxLength then x := FMaxLength; + if x < 1 then x := 1; + if y > FText.Count then y := FText.Count; + if y < 1 then y := 1; + + FPos := Point(x, y); + if (FWindowSize.X = 0) or (FWindowSize.Y = 0) then exit; + + if FOffset.Y >= FText.Count then + FOffset.Y := FText.Count - 1; + + if FPos.X > FOffset.X + FWindowSize.X then + begin + FOffset.X := FOffset.X + FPos.X - (FOffset.X + FWindowSize.X); + Repaint; + end + else if FPos.X <= FOffset.X then + begin + FOffset.X := FOffset.X - (FOffset.X - FPos.X + 1); + Repaint; + end + else if FPos.Y > FOffset.Y + FWindowSize.Y then + begin + FOffset.Y := FOffset.Y + FPos.Y - (FOffset.Y + FWindowSize.Y); + Repaint; + end + else if FPos.Y <= FOffset.Y then + begin + FOffset.Y := FOffset.Y - (FOffset.Y - FPos.Y + 1); + Repaint; + end; + + ShowCaretPos; + UpdateScrollBar; + +end; + +procedure TfsSyntaxMemo.ScrollClick(Sender: TObject); +begin + if FUpdating then exit; + FOffset.Y := Round(FVScroll.Value); + if FOffset.Y > FText.Count then + FOffset.Y := FText.Count; + ShowCaretPos; + Repaint; +end; + +procedure TfsSyntaxMemo.ScrollEnter(Sender: TObject); +begin + SetFocus; +end; + +procedure TfsSyntaxMemo.DblClick; +var + s: String; +begin + FDoubleClicked := True; + DoCtrlL; + FSelStart := FPos; + s := LineAt(FPos.Y - 1); + if s <> '' then + while CharInSet(s[FPos.X],WordChars) + or IsUnicodeChar(s[FPos.X]) do + Inc(FPos.X); + FSelEnd := FPos; + Repaint; +end; + +function GetComponentForm(Comp: TFmxObject): TCommonCustomForm; +begin + Result := nil; + while (Comp.Parent <> nil) do + begin + if (Comp.Parent is TCommonCustomForm) then + begin + Result := Comp.Parent as TCommonCustomForm; + Exit; + end; + Comp := Comp.Parent; + end; +end; + +procedure TfsSyntaxMemo.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); +var + pt: TPointF; + f: TCommonCustomForm; + r: TRectF; + LStr, s: String; + i, cIndex: Integer; + +begin + if FDoubleClicked then + begin + FDoubleClicked := False; + Exit; + end; + if Button = TMouseButton.mbRight then + begin + if PopupMenu = nil then + begin + f := GetComponentForm(Self); + if f <> nil then + begin + pt := f.ClientToScreen(PointF(AbsoluteRect.Left + X, AbsoluteRect.Top + Y)); + FPopUpMenu.Popup(pt.X, pt.Y); + end; + end; + end + else + begin + FMoved := True; + if not IsFocused then + SetFocus; + FDown := True; + if FIsMonoType then + SetPos(Round((X - FGutterWidth) / FCharWidth) + 1 + FOffset.X, + Trunc(Y / FCharHeight) + 1 + FOffset.Y) + else + begin + cIndex := 0; + LStr := LineAt(FPos.Y - 1); + LStr := Copy(LineAt(FPos.Y - 1), FOffset.X + 1, Length(LStr) - (FOffset.X + 1)); + for i := 1 to Length(LStr) do + begin + s := Copy(LStr, 1, i); + r := RectF(0, 0, 100000, 100000); + FTmpCanvas.Canvas.MeasureText(r, s, False, [], TTextAlign.taLeading); + if r.Width >= X - FGutterWidth then + begin + cIndex := i; + break; + end; + end; + SetPos(cIndex + 1 + FOffset.X, + Trunc(Y / FCharHeight) + 1 + FOffset.Y) + end; + ClearSel; + end; +end; + +procedure TfsSyntaxMemo.MouseMove(Shift: TShiftState; X, Y: Single); +begin + if FDown then + begin + FTempPos := FPos; + FPos.X := Round((X - FGutterWidth) / FCharWidth) + 1 + FOffset.X; + FPos.Y := Round(Y / FCharHeight) + 1 + FOffset.Y; + if (FPos.X <> FTempPos.X) or (FPos.Y <> FTempPos.Y) then + begin + SetPos(FPos.X, FPos.Y); + AddSel; + end; + end; +end; + +procedure TfsSyntaxMemo.MouseUp(Button: TMouseButton; Shift: TShiftState; + X, Y: Single); +begin + FDown := False; +end; + +procedure TfsSyntaxMemo.MouseWheel(Shift: TShiftState; WheelDelta: Integer; + var Handled: Boolean); +begin + inherited; + FVScroll.Value := FVScroll.Value + (WheelDelta div ABS(WheelDelta)) * KWheel; +end; + +procedure TfsSyntaxMemo.DialogKey(var Key: Word; Shift: TShiftState); +begin + inherited; + if Key = 9 then + begin + if Shift = [] then + begin + if FSelStart.X <> 0 then + DoCtrlI + else + TabIndent; + end + else if Shift = [ssShift] then + DoCtrlU; + FMoved := True; + end; +end; + +procedure TfsSyntaxMemo.KeyDown(var Key: Word; var KeyChar: WideChar; Shift: TShiftState); +var + MyKey: Boolean; +begin + inherited; + FAllowLinesChange := False; + + FTempPos := FPos; + MyKey := True; + case Key of + vkLeft: + if ssCtrl in Shift then + DoCtrlL else + DoLeft; + + vkRight: + if ssCtrl in Shift then + DoCtrlR else + DoRight; + + vkUp: + DoUp; + + vkDown: + DoDown; + + vkHome: + DoHome(ssCtrl in Shift); + + vkEnd: + DoEnd(ssCtrl in Shift); + + vkPrior: + DoPgUp; + + vkNext: + DoPgDn; + + vkReturn: + if Shift = [] then + DoReturn; + + vkDelete: + if ssShift in Shift then + CutToClipboard else + DoDel; + + vkBack: + DoBackspace; + + vkInsert: + if ssCtrl in Shift then + CopyToClipboard + else if ssShift in Shift then + PasteFromClipboard; + + vkF3: + Find(LastSearch); // F3 Repeat search + + else + MyKey := False; + end; + + if (Shift = [ssCtrl]) or (Shift = [ssCommand]) then + begin + MyKey := True; + if (Key = Ord('c')) or (Key = Ord('C')) then // Ctrl+C Copy + CopyToClipboard + else if (Key = Ord('v')) or (Key = Ord('V')) then // Ctrl+V Paste + PasteFromClipboard + else if (Key = Ord('x')) or (Key = Ord('X')) then // Ctrl+X Cut + CutToClipboard + else if (Key = Ord('z')) or (Key = Ord('Z')) then // Ctrl+Z Undo + Undo + else if (Key = Ord('a')) or (Key = Ord('A')) then // Ctrl+A Select all + begin + SetPos(0, 0); + FSelStart := FPos; + SetPos(LineLength(FText.Count - 1) + 1, FText.Count); + FSelEnd := FPos; + Repaint; + end + else if (Key = Ord('f')) or (Key = Ord('F')) then // Ctrl+F Search + begin + SynMemoSearch := TfsSynMemoSearch.Create(nil); + if SynMemoSearch.ShowModal = mrOk then + Find(SynMemoSearch.Edit1.Text); + LastSearch := SynMemoSearch.Edit1.Text; + SynMemoSearch.Free; + end + else if (Key = Ord('y')) or (Key = Ord('Y')) then // Ctrl+Y Delete line + begin + if FText.Count > FPos.Y then + begin + FMoved := True; + AddUndo; + FText.Delete(FPos.Y - 1); + CorrectBookmark(FPos.Y, -1); + UpdateSyntax; + end + else + if FText.Count = FPos.Y then + begin + FMoved := True; + AddUndo; + FText[FPos.Y - 1] := ''; + FPos.X := 1; + SetPos(FPos.X, FPos.Y); + UpdateSyntax; + end + end + else if Key in [48..57] then + GotoBookmark(Key-48) + else + MyKey := False; + end; + + if Shift = [ssCtrl, ssShift] then + if Key in [48..57] then + if IsBookmark(FPos.Y - 1) < 0 then + AddBookmark(FPos.Y - 1, Key-48) + else + if IsBookmark(FPos.Y - 1) = (Key-48) then + DeleteBookmark(Key-48); + + + if Key in [vkLeft, vkRight, vkUp, vkDown, vkHome, vkEnd, vkPrior, vkNext] then + begin + FMoved := True; + if ssShift in Shift then + AddSel else + ClearSel; + end + else if Key in [vkReturn, vkDelete, vkBack, vkInsert] then + FMoved := True; + + case WideChar(KeyChar) of + #0032..#$FFFF: + if (Shift = []) or (Shift = [ssShift]) then + begin + DoChar(WideChar(KeyChar)); + FMoved := True; + end; + else + MyKey := False; + end; + if MyKey then + Key := 0; +end; + +procedure TfsSyntaxMemo.DoLeft; +begin + Dec(FPos.X); + if FPos.X < 1 then + FPos.X := 1; + SetPos(FPos.X, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoRight; +begin + Inc(FPos.X); + if FPos.X > FMaxLength then + FPos.X := FMaxLength; + SetPos(FPos.X, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoUp; +begin + Dec(FPos.Y); + if FPos.Y < 1 then + FPos.Y := 1; + SetPos(FPos.X, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoDown; +begin + Inc(FPos.Y); + if FPos.Y > FText.Count then + FPos.Y := FText.Count; + SetPos(FPos.X, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoHome(Ctrl: Boolean); +begin + if Ctrl then + SetPos(1, 1) else + SetPos(1, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoEnd(Ctrl: Boolean); +begin + if Ctrl then + SetPos(LineLength(FText.Count - 1) + 1, FText.Count) else + SetPos(LineLength(FPos.Y - 1) + 1, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoExit; +begin +{$IFDEF Delphi17} + inherited; +{$IFNDEF DELPHI18} + CaretVisible := False; +{$ELSE} + HideCaret; +{$ENDIF} +{$ELSE} + Platform.HideVirtualKeyboard; + inherited; + HideCaret; +{$ENDIF} +end; + +procedure TfsSyntaxMemo.DoPgUp; +begin + if FOffset.Y > FWindowSize.Y then + begin + FOffset.Y := FOffset.Y - (FWindowSize.Y - 1); + FPos.Y := FPos.Y - (FWindowSize.Y - 1); + end + else + begin + if FOffset.Y > 0 then + begin + FPos.Y := FPos.Y - FOffset.Y; + FOffset.Y := 0; + end + else + FPos.Y := 1; + end; + SetPos(FPos.X, FPos.Y); + Repaint; +end; + +procedure TfsSyntaxMemo.DoPgDn; +begin + if FOffset.Y + FWindowSize.Y < FText.Count then + begin + FOffset.Y := FOffset.Y + (FWindowSize.Y - 1); + FPos.Y := FPos.Y + (FWindowSize.Y - 1); + end + else + begin + FOffset.Y := FText.Count; + FPos.Y := FText.Count; + end; + SetPos(FPos.X, FPos.Y); + Repaint; +end; + +procedure TfsSyntaxMemo.DoReturn; +var + s: String; +begin + if FReadOnly then exit; + s := LineAt(FPos.Y - 1); + FText[FPos.Y - 1] := Copy(s, 1, FPos.X - 1); + FText.Insert(FPos.Y, Copy(s, FPos.X, FMaxLength)); + EnterIndent; +end; + +procedure TfsSyntaxMemo.DoDel; +var + s: String; +begin + if FReadOnly then exit; + FMessage := ''; + if FSelStart.X <> 0 then + SelText := '' + else + begin + s := FText[FPos.Y - 1]; + AddUndo; + if FPos.X <= LineLength(FPos.Y - 1) then + begin + Delete(s, FPos.X, 1); + FText[FPos.Y - 1] := s; + end + else if FPos.Y < FText.Count then + begin + s := s + Pad(FPos.X - Length(s) - 1) + LineAt(FPos.Y); + FText[FPos.Y - 1] := s; + FText.Delete(FPos.Y); + CorrectBookmark(FSelStart.Y, -1); + end; + UpdateScrollBar; + UpdateSyntax; + DoChange; + end; +end; + +procedure TfsSyntaxMemo.DoBackspace; +var + s: String; +begin + if FReadOnly then exit; + FMessage := ''; + if FSelStart.X <> 0 then + SelText := '' + else + begin + s := FText[FPos.Y - 1]; + if FPos.X > 1 then + begin + if (GetLineBegin(FPos.Y - 1) = FPos.X) or (Trim(s) = '') then + UnIndent + else + begin + AddUndo; + if Trim(s) <> '' then + begin + Delete(s, FPos.X - 1, 1); + FText[FPos.Y - 1] := s; + DoLeft; + end + else + DoHome(False); + UpdateSyntax; + DoChange; + end; + end + else if FPos.Y > 1 then + begin + AddUndo; + CorrectBookmark(FPos.Y, -1); + s := LineAt(FPos.Y - 2); + FText[FPos.Y - 2] := s + FText[FPos.Y - 1]; + FText.Delete(FPos.Y - 1); + SetPos(Length(s) + 1, FPos.Y - 1); + UpdateSyntax; + DoChange; + end; + end; +end; + +procedure TfsSyntaxMemo.DoCtrlI; +begin + if FSelStart.X <> 0 then + ShiftSelected(True); +end; + +procedure TfsSyntaxMemo.DoCtrlU; +begin + if FSelStart.X <> 0 then + ShiftSelected(False); +end; + +procedure TfsSyntaxMemo.DoCtrlL; +var + i: Integer; + s: String; +begin + s := FText.Text; + i := Length(LineAt(FPos.Y - 1)); + if FPos.X > i then + FPos.X := i; + + i := GetPlainTextPos(FPos); + + Dec(i); + while (i > 0) and not (CharInSet(s[i], WordChars) or IsUnicodeChar(s[i])) do + if s[i] = Char(LineBreak[1]) then + break else + Dec(i); + while (i > 0) and (CharInSet(s[i], WordChars) or IsUnicodeChar(s[i])) do + Dec(i); + Inc(i); + + FPos := GetPosPlainText(i); + SetPos(FPos.X, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoCtrlR; +var + i: Integer; + s: String; +begin + s := FText.Text; + i := Length(LineAt(FPos.Y - 1)); + if FPos.X > i then + begin + DoDown; + DoHome(False); + FPos.X := 0; + end; + + i := GetPlainTextPos(FPos); + while (i < Length(s)) and ((CharInSet(s[i], WordChars)) or IsUnicodeChar(s[i])) do + Inc(i); + while (i < Length(s)) and not ((CharInSet(s[i], WordChars)) or IsUnicodeChar(s[i])) do + if s[i] = Char(LineBreak[1]) then + break else + Inc(i); + FPos := GetPosPlainText(i); + SetPos(FPos.X, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoChar(Ch: Char); +begin + SelText := Ch; +end; + +function TfsSyntaxMemo.GetCharAttr(Pos: TPoint): TCharAttributes; + + function IsBlock: Boolean; + var + p1, p2, p3: Integer; + begin + Result := False; + if FSelStart.X = 0 then exit; + + p1 := FSelStart.X + FSelStart.Y * FMaxLength; + p2 := FSelEnd.X + FSelEnd.Y * FMaxLength; + if p1 > p2 then + begin + p3 := p1; + p1 := p2; + p2 := p3; + end; + p3 := Pos.X + Pos.Y * FMaxLength; + Result := (p3 >= p1) and (p3 < p2); + end; + + function CharAttr: TCharAttr; + var + s: String; + begin + if Pos.Y - 1 < FSynStrings.Count then + begin + s := FSynStrings[Pos.Y - 1]; + if Pos.X <= Length(s) then + Result := TCharAttr(Ord(s[Pos.X])) else + Result := caText; + end + else + Result := caText; + end; + +begin + Result := [CharAttr]; + if IsBlock then + Result := Result + [caBlock]; +end; + +function TfsSyntaxMemo.GetCharWidth(Str: String): Single; +var + r: TRectF; + dx: Single; + j, j1: Integer; + a, a1: TCharAttributes; + + function CalcSize(LStr: String): Single; + begin + if FIsMonoType then + begin + Result := FCharWidth * Length(LStr); + Exit; + end; + if LStr = '' then + begin + Result := 0; + Exit; + end; + + r := RectF(0, 0, 100000, 100000); + { MeasureText trunc all spaces at the end, so we are using this hack to calcl size with spaces } + FTmpCanvas.Canvas.MeasureText(r, LStr + 'W', False, [], TTextAlign.taLeading); + dx := r.Width; + FTmpCanvas.Canvas.MeasureText(r, 'W', False, [], TTextAlign.taLeading); + Result := dx - r.Width; + end; +begin + + j1 := 1; + a := GetCharAttr(Point(1, FPos.Y)); + a1 := a; + Result := 0; + + for j := 1 to Length(Str) do + begin + a1 := GetCharAttr(Point(j, FPos.Y)); + if a1 <> a then + begin + SetAttr(FTmpCanvas.Canvas, a); + Result := Result + CalcSize(Copy(Str, j1, (j - j1))); + a := a1; + j1 := j; + end; + end; + SetAttr(FTmpCanvas.Canvas, a); + Result := Result + CalcSize(Copy(Str, j1, Length(Str) - (j1 - 1))); +end; + +procedure TfsSyntaxMemo.Paint; +var + i, j, j1: Integer; + a, a1: TCharAttributes; + s: String; + x, y: Single; + aClientR: TRectF; + aSelColor, aSelFontColor: TAlphaColor; + + procedure SetAttrL(a: TCharAttributes); + begin + SetAttr(Canvas, a); + aSelColor := FFill.Color; + aSelFontColor := Canvas.Fill.Color; + if caBlock in a then + begin + aSelColor := FBlockColor; + aSelFontColor := FBlockFontColor; + end; + + // make non-selected text looking good + if aSelColor = FFill.Color then + aSelColor := 0; + end; + + function MyTextOut(x, y: Single; const s: String): Single; + var + i: Integer; + dx, dy: Single; + r: TRectF; + begin + with Canvas do + begin + r := RectF(0, 0, 100000, 100000); + { MeasureText trunc all spaces at the end, so we are using this hack to calcl size with spaces } + Canvas.MeasureText(r, s + 'W',False, [], TTextAlign.taLeading); + dx := r.Width + x; + Canvas.MeasureText(r, 'W', False, [], TTextAlign.taLeading); + dx := dx - r.Width; + if dx > (aClientR.Right - aClientR.Left) then + dx := aClientR.Right - aClientR.Left; + dy := y + FCharHeight; + if FIsMonoType then + dx := x + FCharWidth * Length(s); + Fill.Color := aSelColor; + FillRect(RectF(x + 1, y, dx + 1, dy + 1), 0, 0, AllCorners, 1); + Fill.Color := aSelFontColor; + if FIsMonoType then + FillText(RectF(x, y, dx + 1, 10000), + s, False, 1, [], TTextAlign.taLeading, TTextAlign.taLeading) + else + begin + for i := 1 to Length(s) do + FillText(RectF(x + (i - 1) * FCharWidth, y, + (x + (i - 1) * FCharWidth) + FCharWidth, y + FCharHeight), + s[i], False, 1, FillTextFlags, TTextAlign.taLeading, TTextAlign.taLeading); + end; + end; + Result := dx; + end; + +begin + aClientR := GetClientRect; + with Canvas do + begin + Fill.Assign(FBorder.Fill); + FillRect(RectF(0, 0, Self.Width , Self.Height), 0, 0, AllCorners, 1, TCornerType.ctBevel); + Fill.Assign(FFill); + FillRect(aClientR, 0, 0, AllCorners, 1, TCornerType.ctBevel); + Fill.Assign(FGutterFill); + FillRect(RectF(FGutterWidth - aClientR.Left, + Self.Height - FFooterHeight - aClientR.Top, + aClientR.Left, aClientR.Top), 0, 0, AllCorners, 1, TCornerType.ctBevel); + FillRect(RectF(aClientR.Left, Self.Height - FFooterHeight - aClientR.Top, + Self.Width - aClientR.Left, Self.Height - aClientR.Top), 1, 1, + AllCorners, 1, TCornerType.ctBevel); + + Stroke.Assign(FBorder.Fill); +{$IFDEF DELPHI25} + Stroke.Cap := TStrokeCap.scRound; + Stroke.Thickness := FBorder.Width; +{$ELSE} + StrokeCap := TStrokeCap.scRound; + StrokeThickness := FBorder.Width; +{$ENDIF} + x := FGutterWidth - FBorder.Width; + DrawLine(PointF(x, aClientR.Top + 1), PointF(x, aClientR.Bottom - FFooterHeight ), 1); + if FFooterHeight > 0 then + DrawLine(PointF(x, aClientR.Bottom - FFooterHeight), + PointF(aClientR.Right - 1, aClientR.Bottom - FFooterHeight), 1); + if FUpdatingSyntax then Exit; + + for i := FOffset.Y to FOffset.Y + FWindowSize.Y - 1 do + begin + if i >= FText.Count then break; + + s := FText[i]; + j1 := FOffset.X + 1; + a := GetCharAttr(Point(j1, i + 1)); + a1 := a; + x := FGutterWidth + FBorder.Width; + y := aClientR.Top + (i - FOffset.Y) * FCharHeight; + for j := j1 to FOffset.X + FWindowSize.X do + begin + if j > Length(s) then break; + + a1 := GetCharAttr(Point(j, i + 1)); + if a1 <> a then + begin + SetAttrL(a); + x := MyTextOut(x, y, Copy(FText[i], j1, j - j1)); + a := a1; + j1 := j; + end; + end; + + SetAttrL(a); + + MyTextOut(x, y, Copy(s, j1, FMaxLength)); + + BookmarkDraw(y, i); + ActiveLineDraw(y, i); + end; + + if FMessage <> '' then + begin + Font.Family := 'Tahoma'; + Font.Style := [TFontStyle.fsBold]; + Font.Size := 8; + Fill.Color := TAlphaColorRec.Maroon; + FillRect(RectF(aClientR.Left, aClientR.Bottom - TextHeight('|') - 6, aClientR.Right , aClientR.Bottom), 0, 0, + AllCorners, 1, TCornerType.ctBevel); + Fill.Color := TAlphaColorRec.White; + FillText(RectF(aClientR.Left + 6, aClientR.Bottom - TextHeight('|') - 5, + 6 + TextWidth('W') * Length(FMessage), aClientR.Bottom), FMessage, + False, 1, [], TTextAlign.taLeading) + end + else + ShowPos; + end; +end; + +procedure TfsSyntaxMemo.CreateSynArray; +var + i, n, Pos: Integer; + ch: Char; + FSyn: String; + + procedure SkipSpaces; + begin + while (Pos <= Length(FSyn)) and + ((CharInSet(FSyn[Pos], [#1..#32])) or + not (CharInSet(FSyn[Pos],['_', 'A'..'Z', 'a'..'z', '''', '"', '/', '{', '(', '-']))) do + Inc(Pos); + end; + + function IsKeyWord(const s: String): Boolean; + begin + Result := False; + if FKeywords = '' then exit; + + if FKeywords[1] <> ',' then + FKeywords := ',' + FKeywords; + if FKeywords[Length(FKeywords)] <> ',' then + FKeywords := FKeywords + ','; + + Result := System.Pos(',' + AnsiLowerCase(s) + ',', FKeywords) <> 0; + end; + + function GetIdent: TCharAttr; + var + i: Integer; + cm1, cm2, cm3, cm4, st1: Char; + begin + i := Pos; + Result := caText; + + if FSyntaxType = stPascal then + begin + cm1 := '/'; + cm2 := '{'; + cm3 := '('; + cm4 := ')'; + st1 := ''''; + end + else if FSyntaxType in [stCpp,stJs,stVb] then + begin + cm1 := '/'; + cm2 := ' '; + cm3 := '/'; + cm4 := '/'; + st1 := '"'; + end + else if FSyntaxType = stSQL then + begin + cm1 := '-'; + cm2 := ' '; + cm3 := '/'; + cm4 := '/'; + st1 := '"'; + end + else + begin + cm1 := ' '; + cm2 := ' '; + cm3 := ' '; + cm4 := ' '; + st1 := ' '; + end; + + if CharInSet(FSyn[Pos], ['_', 'A'..'Z', 'a'..'z']) then + begin + while CharInSet(FSyn[Pos], ['_', 'A'..'Z', 'a'..'z', '0'..'9']) do + Inc(Pos); + if IsKeyWord(Copy(FSyn, i, Pos - i)) then + Result := caKeyword; + Dec(Pos); + end + else if (FSyn[Pos] = cm1) and (FSyn[Pos + 1] = cm1) then + begin + while (Pos <= Length(FSyn)) and not (CharInSet(FSyn[Pos], [#10, #13])) do + Inc(Pos); + Result := caComment; + end + else if FSyn[Pos] = cm2 then + begin + while (Pos <= Length(FSyn)) and (FSyn[Pos] <> '}') do + Inc(Pos); + Result := caComment; + end + else if (FSyn[Pos] = cm3) and (FSyn[Pos + 1] = '*') then + begin + while (Pos < Length(FSyn)) and not ((FSyn[Pos] = '*') and (FSyn[Pos + 1] = cm4)) do + Inc(Pos); + Inc(Pos, 2); + Result := caComment; + end + else if FSyn[Pos] = st1 then + begin + Inc(Pos); + while (Pos < Length(FSyn)) and (FSyn[Pos] <> st1) and not (CharInSet(FSyn[Pos], [#10, #13])) do + Inc(Pos); + Result := caString; + end; + Inc(Pos); + end; + +begin + FSyn := FText.Text + #0#0#0#0#0#0#0#0#0#0#0; + FAllowLinesChange := False; + Pos := 1; + + while Pos < Length(FSyn) do + begin + n := Pos; + SkipSpaces; + for i := n to Pos - 1 do + if FSyn[i] > #31 then + FSyn[i] := Chr(Ord(caText)); + + n := Pos; + ch := Chr(Ord(GetIdent)); + for i := n to Pos - 1 do + if i <= Length(FSyn) then + if FSyn[i] > #31 then + FSyn[i] := ch; + end; + + FUpdatingSyntax := True; + FSynStrings.Text := FSyn; + FSynStrings.Add(' '); + FUpdatingSyntax := False; +end; + +procedure TfsSyntaxMemo.UpdateView; +begin + UpdateSyntax; + Repaint; +end; + +procedure TfsSyntaxMemo.UpdateWindowSize; +begin + if FCharWidth = 0 then exit; + FWindowSize := Point(Trunc((Width - FGutterWidth - FBorder.Width * 2) / FCharWidth), + Trunc((Height - FFooterHeight - FBorder.Width * 2) / FCharHeight)); +end; + +procedure TfsSyntaxMemo.CopyPopup(Sender: TObject); +begin + CopyToClipboard; +end; + +procedure TfsSyntaxMemo.PastePopup(Sender: TObject); +begin + PasteFromClipboard; +end; + +procedure TfsSyntaxMemo.Resize; +begin + inherited; + UpdateWindowSize; + FVScroll.Position.Y := FBorder.Width; + FVScroll.Height := Height - FFooterHeight - FBorder.Width; + FVScroll.Width := 16; + FVScroll.Position.X := Width - FVScroll.Width - FBorder.Width; + UpdateScrollBar; +end; + +procedure TfsSyntaxMemo.CutPopup(Sender: TObject); +begin + CutToClipboard; +end; + +procedure TfsSyntaxMemo.SetShowGutter(Value: boolean); +begin + FShowGutter := Value; + if Value then + FGutterWidth := 20 + else + FGutterWidth := 0; + Repaint; +end; + +procedure TfsSyntaxMemo.SetShowFooter(Value: boolean); +begin + FShowFooter := Value; + if Value then + FFooterHeight := 20 + else + FFooterHeight := 0; + Repaint; +end; + +function TfsSyntaxMemo.FMemoFind(Text: String; var Position : TPoint): boolean; +var + i, j : integer; +begin + j := 0; + result := False; + if FText.Count > 1 then + begin + Text := UpperCase(Text); + for i := Position.Y to FText.Count - 1 do + begin + j := Pos( Text, UpperCase(FText[i])); + if j > 0 then + begin + Result := True; + break; + end + end; + Position.X := j; + Position.Y := i + 1; + end; +end; + +procedure TfsSyntaxMemo.FontChanged(Sender: TObject); +begin + FCommentAttr.Font.Size := FFontSettings.Font.Size; + FCommentAttr.Font.Family := FFontSettings.Font.Family; + FKeywordAttr.Font.Size := FFontSettings.Font.Size; + FKeywordAttr.Font.Family := FFontSettings.Font.Family; + FStringAttr.Font.Size := FFontSettings.Font.Size; + FStringAttr.Font.Family := FFontSettings.Font.Family; + FTextAttr.Font.Size := FFontSettings.Font.Size; + FTextAttr.Font.Family := FFontSettings.Font.Family; + CalcCharSize; + { need to uptade size, maybe font size was changed } + UpdateWindowSize; +end; + +function TfsSyntaxMemo.Find(Text: String): boolean; +var + Position: TPoint; +begin + Position := FPos; + if FMemoFind(Text, Position) then + begin + SetPos(Position.X, Position.Y); + result := true; + end + else + begin + ShowMessage('Text "'+Text+'" not found.'); + result := false; + end; +end; + +procedure TfsSyntaxMemo.ActiveLineDraw(Y : Single; ALine : integer); +begin + if ShowGutter then + with Canvas do + if ALine = FActiveLine then + begin + Fill.Color := TAlphaColorRec.Red; + //Pen.Color := clBlack; + FillEllipse(RectF(4, Y + 4, 11, Y + 15), 1); + end; +end; + +procedure TfsSyntaxMemo.BookmarkDraw(Y : Single; ALine : integer); +var + bm : integer; +begin + if ShowGutter then + with Canvas do + begin + bm := IsBookmark(ALine); + if bm >= 0 then + begin + Fill.Color := TAlphaColorRec.Black; + FillRect(RectF(3 + Border.Width, Y + 1, 13 + Border.Width, Y + 12), 0, 0, + AllCorners, 1, TCornerType.ctBevel); + Fill.Color := TAlphaColorRec.Green; + FillRect(RectF(2 + Border.Width, Y + 2, 12 + Border.Width, Y + 13), 0, 0, + AllCorners, 1, TCornerType.ctBevel); + Font.Family := 'Tahoma'; + Fill.Color := TAlphaColorRec.White; + Font.Style := [TFontStyle.fsBold]; + Font.Size := 7; + y := y + 2.0; + FillText(RectF(4 + Border.Width, Y, 4 + TextWidth('7') + Border.Width, + Y + TextHeight('7')), IntToStr(bm), False, 1, [], TTextAlign.taLeading) + end; + end; +end; + +function TfsSyntaxMemo.IsBookmark(Line : integer): integer; +var + Pos : integer; +begin + Result := -1; + for Pos := 0 to Length(Bookmarks) - 1 do + if Bookmarks[Pos] = Line then + begin + Result := Pos; + break; + end; +end; + +procedure TfsSyntaxMemo.AddBookmark(Line, Number : integer); +begin + if Number < Length(Bookmarks) then + begin + Bookmarks[Number] := Line; + Repaint; + end; +end; + +procedure TfsSyntaxMemo.DeleteBookmark(Number : integer); +begin + if Number < Length(Bookmarks) then + begin + Bookmarks[Number] := -1; + Repaint; + end; +end; + +procedure TfsSyntaxMemo.CorrectBookmark(Line : integer; delta : integer); +var + i : integer; +begin + for i := 0 to Length(Bookmarks) - 1 do + if Bookmarks[i] >= Line then + Inc(Bookmarks[i], Delta); +end; + +procedure TfsSyntaxMemo.GotoBookmark(Number : integer); +begin + if Number < Length(Bookmarks) then + if Bookmarks[Number] >= 0 then + SetPos(0, Bookmarks[Number] + 1); +end; + +procedure TfsSyntaxMemo.DOver(Sender: TObject; const Data: TDragObject; const Point: TPointF; {$IFNDEF DELPHI20}var Accept: Boolean{$ELSE} var Operation: TDragOperation{$ENDIF}); +begin +{$IFNDEF DELPHI20} + Accept := Data.Source is TTreeView; +{$ELSE} + if Data.Source is TTreeView then + Operation := TDragOperation.Copy; +{$ENDIF} +end; + +procedure TfsSyntaxMemo.DDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF); +begin + if Data.Source is TTreeView then + begin + SetPos(Round((Point.X - FGutterWidth) / FCharWidth) + 1 + FOffset.X, + Round(Point.Y / FCharHeight) + 1 + FOffset.Y); + SetSelText(TTreeView(Data.Source).Selected.Text); + end; +end; + +procedure TfsSyntaxMemo.SetKeywordAttr(Value: TfsFontSettings); +begin + FKeywordAttr.Assign(Value); + UpdateSyntax; +end; + +procedure TfsSyntaxMemo.SetStringAttr(Value: TfsFontSettings); +begin + FStringAttr.Assign(Value); + UpdateSyntax; +end; + +procedure TfsSyntaxMemo.SetTextAttr(Value: TfsFontSettings); +begin + FTextAttr.Assign(Value); + UpdateSyntax; +end; + +procedure TfsSyntaxMemo.SetCommentAttr(Value: TfsFontSettings); +begin + FCommentAttr.Assign(Value); + UpdateSyntax; +end; + +procedure TfsSyntaxMemo.SetFill(const Value: TBrush); +begin + FFill.Assign(Value); +end; + +procedure TfsSyntaxMemo.SetFontSettings(const Value: TfsFontSettings); +begin + FFontSettings.Assign(Value); +end; + +procedure TfsSyntaxMemo.SetGutterFill(const Value: TBrush); +begin + FGutterFill.Assign(Value); +end; + +procedure TfsSyntaxMemo.SetActiveLine(Line : Integer); +begin + FActiveLine := Line; + Repaint; +end; + +procedure TfsSyntaxMemo.SetAttr(aCanvas: TCanvas; a: TCharAttributes); +begin + with aCanvas do + begin + Font.Assign(FFontSettings.Font); + Canvas.Fill.Assign(FFontSettings.Fill); + + if caText in a then + begin + Font.Assign(FTextAttr.Font); + Canvas.Fill.Assign(FTextAttr.Fill); + end; + + if caComment in a then + begin + Font.Assign(FCommentAttr.Font); + Canvas.Fill.Assign(FCommentAttr.Fill); + end; + + if caKeyword in a then + begin + Font.Assign(FKeywordAttr.Font); + Canvas.Fill.Assign(FKeywordAttr.Fill); + end; + + if caString in a then + begin + Font.Assign(FStringAttr.Font); + Canvas.Fill.Assign(FStringAttr.Fill); + end; + end; +end; + + + +procedure TfsSyntaxMemo.SetBorder(const Value: TfsBorderSettings); +begin + FBorder.Fill.Assign(Value.Fill); + FBorder.Width := Value.Width; +end; + +function TfsSyntaxMemo.GetActiveLine: Integer; +begin + Result := FActiveLine; +end; + +procedure TfsSynMemoSearch.FormKeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + ModalResult := mrOk; +end; + +{ TfsBorderSettings } + +constructor TfsBorderSettings.Create; +begin + FFill := TBrush.Create(TBrushKind.bkSolid, TAlphaColorRec.Silver); + FWidth := 1; +end; + +destructor TfsBorderSettings.Destroy; +begin + FFill.Free; + inherited; +end; + +procedure TfsBorderSettings.SetFill(const Value: TBrush); +begin + FFill.Assign(Value); +end; + +procedure TfsBorderSettings.SetWidth(const Value: Integer); +begin + if Value > 3 then + FWidth := 3 + else if Value < 0 then + FWidth := 0 + else + FWidth := Value; +end; + +{ TfsFontSettings } + +procedure TfsFontSettings.Assign(Source: TPersistent); +begin + inherited; + if Source is TfsFontSettings then + begin + Fill.Assign(TfsFontSettings(Source).Fill); + Font.Assign(TfsFontSettings(Source).Font); + end; +end; + +constructor TfsFontSettings.Create(); +begin + FFill := TBrush.Create(TBrushKind.bkSolid, TAlphaColorRec.Black); + FFont := TFont.Create; + FFont.Family := 'Courier New'; + FFont.Size := 13; +end; + +destructor TfsFontSettings.Destroy; +begin + FFill.Free; + FFont.Free; + inherited; +end; + +procedure TfsFontSettings.SetFill(const Value: TBrush); +begin + FFill.Assign(Value); +end; + +procedure TfsFontSettings.SetFont(const Value: TFont); +begin + FFont.Assign(Value); +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsSyntaxMemo, TFmxObject); + GroupDescendentsWith(TfsBorderSettings, TFmxObject); + GroupDescendentsWith(TfsFontSettings, TFmxObject); + + RegisterFmxClasses([TfsBorderSettings, TfsFontSettings]); + +end. diff --git a/FastScript/FMX.fs_tree.pas b/FastScript/FMX.fs_tree.pas new file mode 100644 index 0000000..0ebbf74 --- /dev/null +++ b/FastScript/FMX.fs_tree.pas @@ -0,0 +1,659 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Function/Classes tree FMX visual control } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_tree; + +interface + +{$I fs.inc} + +uses + FMX.Types, + System.SysUtils, System.Classes, FMX.Controls, FMX.Forms, FMX.Dialogs, + FMX.ExtCtrls, FMX.fs_synmemo, FMX.Objects, + FMX.fs_XML, FMX.fs_iinterpreter, FMX.TreeView, FMX.Memo, System.UITypes, System.Types +{$IFDEF DELPHI18} + ,FMX.StdCtrls +{$ENDIF} +{$IFDEF DELPHI19} + , FMX.Graphics +{$ENDIF} +{$IFDEF DELPHI28} + , FMX.BaseTypeAliases, FMX.FormTypeAliases +{$ENDIF}; + +type + TfsTreeViewItem = class(TTreeViewItem) + private + FButton: TCustomButton; + FCloseImageIndex: Integer; + FOpenImageIndex: Integer; + FImgPos: Single; + function GetBitmap():TBitmap; + protected + procedure ApplyStyle; override; + public + constructor Create(AOwner: TComponent); override; + procedure Paint; override; + property CloseImageIndex: Integer read FCloseImageIndex write FCloseImageIndex; + property OpenImageIndex: Integer read FOpenImageIndex write FOpenImageIndex; + end; + +{$i frxPlatformsAttribute.inc} + + TfsTreeView = class(TTreeView) + private + FPicBitmap: TBitmap; + FIconWidth: Integer; + FIconHeight: Integer; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure LoadResouces(Stream: TStream; IconWidth, IconHeight: Integer); + property PicPitmap: TBitmap read FPicBitmap write FPicBitmap; + property IconWidth: Integer read FIconWidth write FIconWidth; + property IconHeight: Integer read FIconHeight write FIconHeight; + function GetBitmapRect(Index: Integer): TRectF; + procedure DragOver(const Data: TDragObject; const Point: TPointF; {$IFNDEF DELPHI20}var Accept: Boolean{$ELSE} var Operation: TDragOperation{$ENDIF}); override; + procedure DragDrop(const Data: TDragObject; const Point: TPointF); override; + published + property StyleLookup; + property CanFocus default True; + property DisableFocusEffect; + property TabOrder; + property AllowDrag default False; + property AlternatingRowBackground default False; + property ItemHeight; +// property HideSelectionUnfocused default False; + property MultiSelect default False; + property ShowCheckboxes default False; + property Sorted default False; + property OnChange; + property OnChangeCheck; + property OnCompare; + property OnDragChange; + end; + +{$i frxPlatformsAttribute.inc} + TfsTree = class(TPanel) + private + Tree: TfsTreeView; + FXML: TfsXMLDocument; + FScript: TfsScript; + FImages: TList; + FShowFunctions: boolean; + FShowClasses: boolean; + FShowTypes: Boolean; + FShowVariables: Boolean; + FExpanded: boolean; + FExpandLevel : integer; + FMemo: TfsSyntaxMemo; + FUpdating: Boolean; + procedure FillTree; + + procedure SetMemo(Value: TfsSyntaxMemo); + + procedure SetScript(const Value: TfsScript); + protected + {$IFDEF DELPHI19} + procedure CreateImageFromRes(Image: TImage; Bmp: FMX.Graphics.TBitmap; + Width, Height: Integer; Index: Integer); + {$ELSE} + procedure CreateImageFromRes(Image: TImage; Bmp: FMX.Types.TBitmap; + Width, Height: Integer; Index: Integer); +{$ENDIF} + + procedure TreeChange(Sender: TObject; Node: TTreeViewItem); + procedure TreeDblClick(Sender: TObject); + procedure Notification(AComponent: TComponent; + Operation: TOperation); override; + protected + procedure Loaded; override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure SetColor(Color: TAlphaColor); + procedure UpdateItems; + function GetFieldName: String; + published + property Align; + property Anchors; + property DragMode; + property Enabled; + property PopupMenu; + property Script: TfsScript read FScript write SetScript; + property ShowHint; + property TabOrder; + property Visible; + + property SyntaxMemo: TfsSyntaxMemo read FMemo write SetMemo; + property ShowClasses: boolean read FShowClasses write FShowClasses; + property ShowFunctions: boolean read FShowFunctions write FShowFunctions; + property ShowTypes: boolean read FShowTypes write FShowTypes; + property ShowVariables: boolean read FShowVariables write FShowVariables; + property Expanded: boolean read FExpanded write FExpanded; + property ExpandLevel: integer read FExpandLevel write FExpandLevel; + + property OnClick; + property OnDblClick; + property OnDragDrop; + property OnDragOver; + property OnEnter; + property OnExit; + property OnKeyDown; + property OnMouseDown; + property OnMouseMove; + property OnMouseUp; + property Left; + property Top; + property Width; + property Height; + end; + +implementation + +{$IFNDEF FPC} + {$R fs_tree.res} +{$ENDIF} + +uses FMX.fs_iTools; + +constructor TfsTree.Create(AOwner: TComponent); +var + S: TResourceStream; +begin + inherited; + DragMode := TDragMode.dmManual; + Tree := TfsTreeView.Create(Self); + Tree.Stored := False; + with Tree do + begin + Parent := Self; + DragMode := TDragMode.dmAutomatic; + Align := TAlignLayout.alClient; + TabOrder := 0; + end; + FImages := TList.Create(); + S := TResourceStream.Create(HInstance, 'FSTREEFMX', RT_RCDATA);//RT_RCDATA + S.Position := 0; + Tree.LoadResouces(S, 16, 16); + S.Free; + Tree.OnDblClick := TreeDblClick; + FXML := TfsXMLDocument.Create; + Expanded := True; + ExpandLevel := 0; + ShowClasses := True; + ShowFunctions := True; + ShowTypes := True; + ShowVariables := True; + UpdateItems; + Top := 0; + Left := 0; + Height := 250; + Width := 200; +end; + + + {$IFDEF DELPHI19} +procedure TfsTree.CreateImageFromRes(Image: TImage; Bmp: FMX.Graphics.TBitmap; + Width, Height, Index: Integer); + {$ELSE} +procedure TfsTree.CreateImageFromRes(Image: TImage; Bmp: FMX.Types.TBitmap; + Width, Height, Index: Integer); +{$ENDIF} +begin + Image.Width := Width; + Image.Height := Height; + Image.Bitmap.SetSize(Width, Height); + Image.Bitmap.Canvas.BeginScene; + Image.Bitmap.Canvas.DrawBitmap(Bmp, RectF(Width * Index , 0, Width * Index + Width , Height), RectF(0, 0, Width, Height), 1 ); + Image.Bitmap.Canvas.EndScene; + //Image.Bitmap.BitmapChanged; +end; + +destructor TfsTree.Destroy; +begin + FImages.Free; + Tree.Free; + FUpdating := True; + FXML.Free; + inherited; +end; + +procedure TfsTree.FillTree; + + function GetCategoryByName(s: String): String; + begin + if s = 'ctConv' then result := 'Conversion' + else if s = 'ctFormat' then result := 'Formatting' + else if s = 'ctDate' then result := 'Date/Time' + else if s = 'ctString' then result := 'String routines' + else if s = 'ctMath' then result := 'Mathematical' + else if s = 'ctOther' then result := 'Other' + else result := s; + end; + + procedure AddClasses(xi: TfsXMLItem; Root: TfsTreeViewItem); + var + i: Integer; + Node: TfsTreeViewItem; + s: String; + begin + s := xi.Prop['text']; + Node := TfsTreeViewItem.Create(Tree); + Node.Text := s; + if Root <> nil then + Node.Parent := Root + else + Node.Parent := Tree; + Node.Parent.AddObject(Node); + if Root = nil then + Node.Text := xi.Name; + if xi.Count = 0 then + begin + Node.OpenImageIndex := 1; + Node.CloseImageIndex := 1; + end + else + begin + Node.OpenImageIndex := 3; + Node.CloseImageIndex := 2; + end; + for i := 0 to xi.Count - 1 do + AddClasses(xi[i], Node); + end; + + procedure AddFunctions(xi: TfsXMLItem; Root: TfsTreeViewItem); + var + i: Integer; + Node: TfsTreeViewItem; + s: String; + begin + s := xi.Prop['text']; + if xi.Count = 0 then + s := Copy(s, Pos(' ', s) + 1, 255) else { function } + s := GetCategoryByName(s); { category } + Node := TfsTreeViewItem.Create(Tree); + Node.DragMode := TDragMode.dmAutomatic; + Node.Text := s; + if Root <> nil then + Node.Parent := Root + else + Node.Parent := Tree; + Node.Parent.AddObject(Node); + if Root = nil then + Node.Text := xi.Name; + if xi.Count = 0 then + begin + Node.OpenImageIndex := 0; + Node.CloseImageIndex := 0; + end + else + begin + Node.OpenImageIndex := 3; + Node.CloseImageIndex := 2; + end; + for i := 0 to xi.Count - 1 do + AddFunctions(xi[i], Node); + end; + + procedure AddTypes(xi: TfsXMLItem; Root: TfsTreeViewItem); + var + i: Integer; + Node: TfsTreeViewItem; + s: String; + begin + s := Copy(xi.Prop['text'], 1, 255); + Node := TfsTreeViewItem.Create(Tree); + Node.Text := s; + if Root <> nil then + Node.Parent := Root + else + Node.Parent := Tree; + Node.Parent.AddObject(Node); + if Root = nil then + Node.Text := xi.Name; + if xi.Count = 0 then + begin + Node.OpenImageIndex := 0; + Node.CloseImageIndex := 0; + end + else + begin + Node.OpenImageIndex := 3; + Node.CloseImageIndex := 2; + end; + for i := 0 to xi.Count - 1 do + AddTypes(xi[i], Node); + end; + + procedure AddVariables(xi: TfsXMLItem; Root: TfsTreeViewItem); + var + i: Integer; + Node: TfsTreeViewItem; + s: String; + begin + s := xi.Prop['text']; + Node := TfsTreeViewItem.Create(Tree); + Node.Text := s; + if Root <> nil then + Node.Parent := Root + else + Node.Parent := Tree; + Node.Parent.AddObject(Node); + if Root = nil then + Node.Text := xi.Name; + if xi.Count = 0 then + begin + Node.OpenImageIndex := 0; + Node.CloseImageIndex := 0; + end + else + begin + Node.OpenImageIndex := 3; + Node.CloseImageIndex := 2; + end; + for i := 0 to xi.Count - 1 do + AddVariables(xi[i], Node); + end; + + procedure ExpandNodes(level: integer); + var + j : integer; + + procedure ExpandNode(Node: TTreeViewItem; level: integer); + var + j : integer; + begin + if Node.Level < level then + for j := 0 to Node.Count - 1 do + begin + if Node.Items[j].Level < Level then + Node.Items[j].IsExpanded := True; + ExpandNode(Node.Items[j], Level); + end; + end; + begin + if level > 0 then + for j := 0 to Tree.Count - 1 do + begin + if Tree.Items[j].Level <= Level then + Tree.Items[j].IsExpanded := True; + ExpandNode(Tree.Items[j], Level); + end; + end; + +begin + FUpdating := True; + FXML.Root.Clear; + + GenerateXMLContents(fsGlobalUnit, FXML.Root); + if FScript <> nil then + GenerateXMLContents(FScript, FXML.Root); + + Tree.BeginUpdate; + Tree.Clear; + + if ShowClasses then + AddClasses(FXML.Root.FindItem('Classes'), nil); + + if ShowFunctions then + AddFunctions(FXML.Root.FindItem('Functions'), nil); + + if ShowTypes then + AddTypes(FXML.Root.FindItem('Types'), nil); + + if ShowVariables then + AddVariables(FXML.Root.FindItem('Variables'), nil); + + if Expanded then + ExpandNodes(ExpandLevel); + Tree.EndUpdate; + FUpdating := False; +end; + +procedure TfsTree.UpdateItems; +begin + FillTree; +end; + +procedure TfsTree.TreeChange(Sender: TObject; + Node: TTreeViewItem); +begin + if FUpdating then Exit; +end; + +procedure TfsTree.TreeDblClick(Sender: TObject); +begin + //if Assigned(SyntaxMemo) then + //if Tree.Selected.Count = 0 then + // SyntaxMemo.SelText := Tree.Selected.Text; + if Assigned(OnDblClick) then OnDblClick(Self); +end; + +function TfsTree.GetFieldName: String; +var + i, n: Integer; + s: String; +begin + Result := ''; + if (Tree.Selected <> nil) and (Tree.Selected.Count = 0) then + begin + s := Tree.Selected.Text; + if Pos('(', s) <> 0 then + n := 1 else + n := 0; + for i := 1 to Length(s) do +{$IFDEF Delphi12} + if (s[i] = ',') or (s[i] = ';') then +{$ELSE} + if s[i] in [',', ';'] then +{$ENDIF} + Inc(n); + + if n = 0 then + s := Copy(s, 1, Pos(':', s) - 1) + else + begin + s := Copy(s, 1, Pos('(', s)); + for i := 1 to n - 1 do + s := s + ','; + s := s + ')'; + end; + Result := s; + end; +end; + +procedure TfsTree.Loaded; +begin + Inherited; + +end; + +procedure TfsTree.SetColor(Color: TAlphaColor); +begin + //Tree.Canvas.Stroke.Color := TAlphaColorRec.Azure; + // Tree.Color := Color; +end; + +procedure TfsTree.SetMemo(Value: TfsSyntaxMemo); +begin + FMemo := Value; +end; + +procedure TfsTree.SetScript(const Value: TfsScript); +begin + FScript := Value; + UpdateItems; +end; + +procedure TfsTree.Notification(AComponent: TComponent; Operation: TOperation); +begin + inherited Notification(AComponent, Operation); + if Operation = opRemove then + if AComponent = FScript then + FScript := nil + else if AComponent = FMemo then + FMemo := nil +end; + +{ TfsTreeViewItem } + +procedure TfsTreeViewItem.ApplyStyle; +var + B: TFmxObject; + Offset: Single; +begin + inherited; + B := FindStyleResource('button'); + if (B <> nil) and (B is TCustomButton) then + begin + FButton := TCustomButton(B); + B := FindStyleResource('text'); + Offset := 0; + if Self.TreeView is TfsTreeView then + Offset := TfsTreeView(Self.TreeView).IconWidth; + + if (B <> nil) and (B is TText) then + begin +{$IFDEF DELPHI17} + TText(B).Margins.Left := Offset; +{$ELSE} + TText(B).Padding.Left := Offset; +{$ENDIF} + end; + FImgPos := FButton.Position.X + FButton.Width - 2; + end; +end; + + +constructor TfsTreeViewItem.Create(AOwner: TComponent); +begin + inherited; + FImgPos := 0; + FCloseImageIndex := -1; + FOpenImageIndex := -1; +end; + +function TfsTreeViewItem.GetBitmap: TBitmap; +begin + Result := nil; + if TreeView is TfsTreeView then + begin + Result := TfsTreeView(TreeView).FPicBitmap; + end; +end; + +procedure TfsTreeViewItem.Paint; +var + Bmp: TBitmap; + IconRect: TRectF; + Index: Integer; +begin + inherited Paint; + if IsExpanded then + Index := FOpenImageIndex + else + Index := FCloseImageIndex; + + if Index = -1 then Exit; + + Bmp := GetBitmap; + if TreeView is TfsTreeView then + begin + IconRect := TfsTreeView(TreeView).GetBitmapRect(Index); + end; + if (Bmp <> nil) and (FImgPos > 0)then + Canvas.DrawBitmap(Bmp, IconRect, RectF(16, 0, 34, 16), 1 ); +end; + +{ TfsTreeView } + +constructor TfsTreeView.Create(AOwner: TComponent); +begin + inherited; + FPicBitmap := nil; + FIconWidth := 0; + FIconHeight := 0; +end; + +destructor TfsTreeView.Destroy; +begin + if FPicBitmap <> nil then + FPicBitmap.Free; + + inherited; +end; + +procedure TfsTreeView.DragDrop(const Data: TDragObject; const Point: TPointF); +begin + //inherited; + // don't use TTreeView handlers +end; + +procedure TfsTreeView.DragOver(const Data: TDragObject; const Point: TPointF; + {$IFNDEF DELPHI20}var Accept: Boolean{$ELSE} var Operation: TDragOperation{$ENDIF}); +begin + //inherited; + //don't use TTreeView handlers +end; + +function TfsTreeView.GetBitmapRect(Index: Integer): TRectF; +var + maxX, maxY, i: Integer; + PosX, PosY: Integer; +begin + Result := RectF(0, 0, 0, 0); + if FPicBitmap = nil then Exit; + PosX := 0; + PosY := 0; + maxX := FPicBitmap.Width div FIconWidth; + maxY := FPicBitmap.Height div FIconHeight; + + for i := 0 to maxY - 1 do + begin + if Index < maxX then + begin + PosX := FIconWidth * Index; + break; + end; + Index := Index div maxY; + Inc(PosY); + if PosY > maxY then + begin + PosX := 0; + PosY := 0; + break; + end; + end; + Result := RectF(PosX, PosY, PosX + FIconWidth, PosY + FIconHeight); +end; + +procedure TfsTreeView.LoadResouces(Stream: TStream; IconWidth, + IconHeight: Integer); +begin + FIconWidth := IconWidth; + FIconHeight := IconHeight; + if FPicBitmap = nil then + FPicBitmap := TBitmap.CreateFromStream(Stream) + else + FPicBitmap.LoadFromStream(Stream); +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsTreeViewItem, TFmxObject); + GroupDescendentsWith(TfsTreeView, TFmxObject); + GroupDescendentsWith(TfsTree, TFmxObject); + RegisterFmxClasses([TfsTreeViewItem, TfsTreeView]); + +end. diff --git a/FastScript/FMX.fs_xml.pas b/FastScript/FMX.fs_xml.pas new file mode 100644 index 0000000..11723e4 --- /dev/null +++ b/FastScript/FMX.fs_xml.pas @@ -0,0 +1,15 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ XML document } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_xml; + +{$i FMX.inc} +{$i fs_xml.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.BaseTypeAliases.pas b/FastScript/FMX/FMX.BaseTypeAliases.pas new file mode 100644 index 0000000..2d807b0 --- /dev/null +++ b/FastScript/FMX/FMX.BaseTypeAliases.pas @@ -0,0 +1,283 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Graphics.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.BaseTypeAliases; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.Types, FMX.Objects, System.UITypes, System.UIConsts, FMX.Graphics, FMX.Controls, System.Types, System.TypInfo; + +type + + TCalloutPositionHelper = record helper for TCalloutPosition + const + cpTop = TCalloutPosition.Top deprecated 'Use TCalloutPosition.Top'; + cpLeft = TCalloutPosition.Left deprecated 'Use TCalloutPosition.Left'; + cpBottom = TCalloutPosition.Bottom deprecated 'Use TCalloutPosition.Bottom'; + cpRight = TCalloutPosition.Right deprecated 'Use TCalloutPosition.Right'; + end; + + TCornerHelper = record helper for TCorner + const + crTopLeft = TCorner.TopLeft deprecated 'Use TCorner.TopLeft'; + crTopRight = TCorner.TopRight deprecated 'Use TCorner.TopRight'; + crBottomLeft = TCorner.BottomLeft deprecated 'Use TCorner.BottomLeft'; + crBottomRight = TCorner.BottomRight deprecated 'Use TCorner.BottomRight'; + end; + + TCornerTypeHelper = record helper for TCornerType + const + ctRound = TCornerType.Round deprecated 'Use TCornerType.Round'; + ctBevel = TCornerType.Bevel deprecated 'Use TCornerType.Bevel'; + ctInnerRound = TCornerType.InnerRound deprecated 'Use TCornerType.InnerRound'; + ctInnerLine = TCornerType.InnerLine deprecated 'Use TCornerType.InnerLine'; + end; + + TSideHelper = record helper for TSide + const + sdTop = TSide.Top deprecated 'Use TSide.Top'; + sdLeft = TSide.Left deprecated 'Use TSide.Left'; + sdBottom = TSide.Bottom deprecated 'Use TSide.Bottom'; + sdRight = TSide.Right deprecated 'Use TSide.Right'; + end; + + TTextAlignHelper = record helper for TTextAlign + const + taCenter = TTextAlign.Center deprecated 'Use TTextAlign.Center'; + taLeading = TTextAlign.Leading deprecated 'Use TTextAlign.Leading'; + taTrailing = TTextAlign.Trailing deprecated 'Use TTextAlign.Trailing'; + end; + + TTextTrimmingHelper = record helper for TTextTrimming + const + ttNone = TTextTrimming.None deprecated 'Use TTextTrimming.None'; + ttCharacter = TTextTrimming.Character deprecated 'Use TTextTrimming.Character'; + ttWord = TTextTrimming.Word deprecated 'Use TTextTrimming.Word'; + end; + + TStyledSettingHelper = record helper for TStyledSetting + const + ssFamily = TStyledSetting.Family deprecated 'Use TStyledSetting.Family'; + ssSize = TStyledSetting.Size deprecated 'Use TStyledSetting.Size'; + ssStyle = TStyledSetting.Style deprecated 'Use TStyledSetting.Style'; + ssFontColor = TStyledSetting.FontColor deprecated 'Use TStyledSetting.FontColor'; + ssOther = TStyledSetting.Other deprecated 'Use TStyledSetting.Other'; + end; + + TMenuItemChangeHelper = record helper for TMenuItemChange + const + mcEnabled = TMenuItemChange.Enabled deprecated 'Use TMenuItemChange.Enabled'; + mcVisible = TMenuItemChange.Visible deprecated 'Use TMenuItemChange.Visible'; + mcText = TMenuItemChange.Text deprecated 'Use TMenuItemChange.Text'; + mcShortcut = TMenuItemChange.Shortcut deprecated 'Use TMenuItemChange.Shortcut'; + mcChecked = TMenuItemChange.Checked deprecated 'Use TMenuItemChange.Checked'; + mcBitmap = TMenuItemChange.Bitmap deprecated 'Use TMenuItemChange.Bitmap'; + end; + + TScreenOrientationHelper = record helper for TScreenOrientation + const + soPortrait = TScreenOrientation.Portrait deprecated 'Use TScreenOrientation.Portrait'; + soLandscape = TScreenOrientation.Landscape deprecated 'Use TScreenOrientation.Landscape'; + soInvertedPortrait = TScreenOrientation.InvertedPortrait deprecated 'Use TScreenOrientation.InvertedPortrait'; + soInvertedLandscape = TScreenOrientation.InvertedLandscape deprecated 'Use TScreenOrientation.InvertedLandscape'; + end; + + TFormStyleHelper = record helper for TFormStyle + const + fsNormal = TFormStyle.Normal deprecated 'Use TFormStyle.Normal'; + fsPopup = TFormStyle.Popup deprecated 'Use TFormStyle.Popup'; + fsStayOnTop = TFormStyle.StayOnTop deprecated 'Use TFormStyle.StayOnTop'; + end; + + TAlignLayoutHelper = record helper for TAlignLayout + const + alNone = TAlignLayout.None deprecated 'Use TAlignLayout.None'; + alTop = TAlignLayout.Top deprecated 'Use TAlignLayout.Top'; + alLeft = TAlignLayout.Left deprecated 'Use TAlignLayout.Left'; + alRight = TAlignLayout.Right deprecated 'Use TAlignLayout.Right'; + alBottom = TAlignLayout.Bottom deprecated 'Use TAlignLayout.Bottom'; + alMostTop = TAlignLayout.MostTop deprecated 'Use TAlignLayout.MostTop'; + alMostBottom = TAlignLayout.MostBottom deprecated 'Use TAlignLayout.MostBottom'; + alMostLeft = TAlignLayout.MostLeft deprecated 'Use TAlignLayout.MostLeft'; + alMostRight = TAlignLayout.MostRight deprecated 'Use TAlignLayout.MostRight'; + alClient = TAlignLayout.Client deprecated 'Use TAlignLayout.Client'; + alContents = TAlignLayout.Contents deprecated 'Use TAlignLayout.Contents'; + alCenter = TAlignLayout.Center deprecated 'Use TAlignLayout.Center'; + alVertCenter = TAlignLayout.VertCenter deprecated 'Use TAlignLayout.VertCenter'; + alHorzCenter = TAlignLayout.HorzCenter deprecated 'Use TAlignLayout.HorzCenter'; + alHorizontal = TAlignLayout.Horizontal deprecated 'Use TAlignLayout.Horizontal'; + alVertical = TAlignLayout.Vertical deprecated 'Use TAlignLayout.Vertical'; + alScale = TAlignLayout.Scale deprecated 'Use TAlignLayout.Scale'; + alFit = TAlignLayout.Fit deprecated 'Use TAlignLayout.Fit'; + alFitLeft = TAlignLayout.FitLeft deprecated 'Use TAlignLayout.FitLeft'; + alFitRight = TAlignLayout.FitRight deprecated 'Use TAlignLayout.FitRight'; + end; + + TGradientStyleHelper = record helper for TGradientStyle + const + gsLinear = TGradientStyle.Linear deprecated 'Use TGradientStyle.Linear'; + gsRadial = TGradientStyle.Radial deprecated 'Use TGradientStyle.Radial'; + end; + + TBrushKindHelper = record helper for TBrushKind + const + bkNone = TBrushKind.None deprecated 'Use TBrushKind.None'; + bkSolid = TBrushKind.Solid deprecated 'Use TBrushKind.Solid'; + bkGradient = TBrushKind.Gradient deprecated 'Use TBrushKind.Gradient'; + bkBitmap = TBrushKind.Bitmap deprecated 'Use TBrushKind.Bitmap'; + bkResource = TBrushKind.Resource deprecated 'Use TBrushKind.Resource'; + end; + + TStrokeCapHelper = record helper for TStrokeCap + const + scFlat = TStrokeCap.Flat deprecated 'Use TStrokeCap.Flat'; + scRound = TStrokeCap.Round deprecated 'Use TStrokeCap.Round'; + end; + + TStrokeJoinHelper = record helper for TStrokeJoin + const + sjMiter = TStrokeJoin.Miter deprecated 'Use TStrokeJoin.Miter'; + sjRound = TStrokeJoin.Round deprecated 'Use TStrokeJoin.Round'; + sjBevel = TStrokeJoin.Bevel deprecated 'Use TStrokeJoin.Bevel'; + end; + + TStrokeDashHelper = record helper for TStrokeDash + const + sdSolid = TStrokeDash.Solid deprecated 'Use TStrokeDash.Solid'; + sdDash = TStrokeDash.Dash deprecated 'Use TStrokeDash.Dash'; + sdDot = TStrokeDash.Dot deprecated 'Use TStrokeDash.Dot'; + sdDashDot = TStrokeDash.DashDot deprecated 'Use TStrokeDash.DashDot'; + sdDashDotDot = TStrokeDash.DashDotDot deprecated 'Use TStrokeDash.DashDotDot'; + sdCustom = TStrokeDash.Custom deprecated 'Use TStrokeDash.Custom'; + end; + + TFillTextFlagHelper = record helper for TFillTextFlag + const + ftRightToLeft = TFillTextFlag.RightToLeft deprecated 'Use TFillTextFlag.RightToLeft'; + end; + + TMapAccessHelper = record helper for TMapAccess + const + maRead = TMapAccess.Read deprecated 'Use TMapAccess.Read'; + maWrite = TMapAccess.Write deprecated 'Use TMapAccess.Write'; + maReadWrite = TMapAccess.ReadWrite deprecated 'Use TMapAccess.ReadWrite'; + end; + + TOrientationHelper = record helper for TOrientation + const + orHorizontal = TOrientation.Horizontal deprecated 'Use TOrientation.Horizontal'; + orVertical = TOrientation.Vertical deprecated 'Use TOrientation.Vertical'; + end; + + TPlacementHelper = record helper for TPlacement + const + plBottom = TPlacement.Bottom deprecated 'Use TPlacement.Bottom'; + plTop = TPlacement.Top deprecated 'Use TPlacement.Top'; + plLeft = TPlacement.Left deprecated 'Use TPlacement.Left'; + plRight = TPlacement.Right deprecated 'Use TPlacement.Right'; + plCenter = TPlacement.Center deprecated 'Use TPlacement.Center'; + plBottomCenter = TPlacement.BottomCenter deprecated 'Use TPlacement.BottomCenter'; + plTopCenter = TPlacement.TopCenter deprecated 'Use TPlacement.TopCenter'; + plLeftCenter = TPlacement.LeftCenter deprecated 'Use TPlacement.LeftCenter'; + plRightCenter = TPlacement.RightCenter deprecated 'Use TPlacement.RightCenter'; + plAbsolute = TPlacement.Absolute deprecated 'Use TPlacement.Absolute'; + plMouse = TPlacement.Mouse deprecated 'Use TPlacement.Mouse'; + plMouseCenter = TPlacement.MouseCenter deprecated 'Use TPlacement.MouseCenter'; + end; + + TVirtualKeyboardTypeHelper = record helper for TVirtualKeyboardType + const + vktDefault = TVirtualKeyboardType.Default deprecated 'Use TVirtualKeyboardType.Default'; + vktNumbersAndPunctuation = TVirtualKeyboardType.NumbersAndPunctuation deprecated 'Use TVirtualKeyboardType.NumbersAndPunctuation'; + vktNumberPad = TVirtualKeyboardType.NumberPad deprecated 'Use TVirtualKeyboardType.NumberPad'; + vktPhonePad = TVirtualKeyboardType.PhonePad deprecated 'Use TVirtualKeyboardType.PhonePad'; + vktAlphabet = TVirtualKeyboardType.Alphabet deprecated 'Use TVirtualKeyboardType.Alphabet'; + vktURL = TVirtualKeyboardType.URL deprecated 'Use TVirtualKeyboardType.URL'; + vktNamePhonePad = TVirtualKeyboardType.NamePhonePad deprecated 'Use TVirtualKeyboardType.NamePhonePad'; + vktEmailAddress = TVirtualKeyboardType.EmailAddress deprecated 'Use TVirtualKeyboardType.EmailAddress'; + end; + + TVirtualKeyboardStateHelper = record helper for TVirtualKeyboardState + const + vksAutoShow = TVirtualKeyboardState.AutoShow deprecated 'Use TVirtualKeyboardState.AutoShow'; + vksVisible = TVirtualKeyboardState.Visible deprecated 'Use TVirtualKeyboardState.Visible'; + vksError = TVirtualKeyboardState.Error deprecated 'Use TVirtualKeyboardState.Error'; + vksTransient = TVirtualKeyboardState.Transient deprecated 'Use TVirtualKeyboardState.Transient'; + end; + + TReturnKeyTypeHelper = record helper for TReturnKeyType + const + rktDefault = TReturnKeyType.Default deprecated 'Use TReturnKeyType.Default'; + rktDone = TReturnKeyType.Done deprecated 'Use TReturnKeyType.Done'; + rktGo = TReturnKeyType.Go deprecated 'Use TReturnKeyType.Go'; + rktNext = TReturnKeyType.Next deprecated 'Use TReturnKeyType.Next'; + rktSearch = TReturnKeyType.Search deprecated 'Use TReturnKeyType.Search'; + rktSend = TReturnKeyType.Send deprecated 'Use TReturnKeyType.Send'; + end; + +implementation + +initialization + AddEnumElementAliases(TypeInfo(TCalloutPosition), ['cpTop', 'cpLeft', 'cpBottom', 'cpRight']); + AddEnumElementAliases(TypeInfo(TCorner), ['crTopLeft', 'crTopRight', 'crBottomLeft', 'crBottomRight']); + AddEnumElementAliases(TypeInfo(TCornerType), ['ctRound', 'ctBevel', 'ctInnerRound', 'ctInnerLine']); + AddEnumElementAliases(TypeInfo(TSide), ['sdTop', 'sdLeft', 'sdBottom', 'sdRight']); + AddEnumElementAliases(TypeInfo(TTextAlign), ['taCenter', 'taLeading', 'taTrailing']); + AddEnumElementAliases(TypeInfo(TTextTrimming), ['ttNone', 'ttCharacter', 'ttWord']); + AddEnumElementAliases(TypeInfo(TStyledSetting), ['ssFamily', 'ssSize', 'ssStyle', 'ssFontColor', 'ssOther']); + AddEnumElementAliases(TypeInfo(TMenuItemChange), ['mcEnabled', 'mcVisible', 'mcText', 'mcShortcut', 'mcChecked', 'mcBitmap']); + AddEnumElementAliases(TypeInfo(TScreenOrientation), ['soPortrait', 'soLandscape', 'soInvertedPortrait', 'soInvertedLandscape']); + AddEnumElementAliases(TypeInfo(TFormStyle), ['fsNormal', 'fsPopup', 'fsStayOnTop']); + AddEnumElementAliases(TypeInfo(TAlignLayout), ['alNone', 'alTop', 'alLeft', 'alRight', 'alBottom', 'alMostTop', 'alMostBottom', 'alMostLeft', 'alMostRight', 'alClient', 'alContents', 'alCenter', 'alVertCenter', 'alHorzCenter', 'alHorizontal', 'alVertical', 'alScale', 'alFit', 'alFitLeft', 'alFitRight']); + AddEnumElementAliases(TypeInfo(TGradientStyle), ['gsLinear', 'gsRadial']); + AddEnumElementAliases(TypeInfo(TBrushKind), ['bkNone', 'bkSolid', 'bkGradient', 'bkBitmap', 'bkResource']); + AddEnumElementAliases(TypeInfo(TStrokeCap), ['scFlat', 'scRound']); + AddEnumElementAliases(TypeInfo(TStrokeJoin), ['sjMiter', 'sjRound', 'sjBevel']); + AddEnumElementAliases(TypeInfo(TStrokeDash), ['sdSolid', 'sdDash', 'sdDot', 'sdDashDot', 'sdDashDotDot', 'sdCustom']); + AddEnumElementAliases(TypeInfo(TMapAccess), ['maRead', 'maWrite', 'maReadWrite']); + AddEnumElementAliases(TypeInfo(TFillTextFlag), ['ftRightToLeft']); + AddEnumElementAliases(TypeInfo(TOrientation), ['orHorizontal', 'orVertical']); + AddEnumElementAliases(TypeInfo(TPlacement), ['plBottom', 'plTop', 'plLeft', 'plRight', 'plCenter', 'plBottomCenter', 'plTopCenter', 'plLeftCenter', 'plRightCenter', 'plAbsolute', 'plMouse', 'plMouseCenter']); + AddEnumElementAliases(TypeInfo(TVirtualKeyboardType), ['vktDefault', 'vktNumbersAndPunctuation', 'vktNumberPad', 'vktPhonePad', 'vktAlphabet', 'vktURL', 'vktNamePhonePad', 'vktEmailAddress']); + AddEnumElementAliases(TypeInfo(TReturnKeyType), ['rktDefault', 'rktDone', 'rktGo', 'rktNext', 'rktSearch']); + AddEnumElementAliases(TypeInfo(TVirtualKeyboardState), ['vksAutoShow', 'vksVisible', 'vksError', 'vksTransient']); + + +finalization + RemoveEnumElementAliases(TypeInfo(TCalloutPosition)); + RemoveEnumElementAliases(TypeInfo(TCorner)); + RemoveEnumElementAliases(TypeInfo(TCornerType)); + RemoveEnumElementAliases(TypeInfo(TSide)); + RemoveEnumElementAliases(TypeInfo(TTextAlign)); + RemoveEnumElementAliases(TypeInfo(TTextTrimming)); + RemoveEnumElementAliases(TypeInfo(TStyledSetting)); + RemoveEnumElementAliases(TypeInfo(TMenuItemChange)); + RemoveEnumElementAliases(TypeInfo(TScreenOrientation)); + RemoveEnumElementAliases(TypeInfo(TFormStyle)); + RemoveEnumElementAliases(TypeInfo(TAlignLayout)); + RemoveEnumElementAliases(TypeInfo(TGradientStyle)); + RemoveEnumElementAliases(TypeInfo(TBrushKind)); + RemoveEnumElementAliases(TypeInfo(TStrokeCap)); + RemoveEnumElementAliases(TypeInfo(TStrokeJoin)); + RemoveEnumElementAliases(TypeInfo(TStrokeDash)); + RemoveEnumElementAliases(TypeInfo(TMapAccess)); + RemoveEnumElementAliases(TypeInfo(TFillTextFlag)); + RemoveEnumElementAliases(TypeInfo(TOrientation)); + RemoveEnumElementAliases(TypeInfo(TPlacement)); + RemoveEnumElementAliases(TypeInfo(TVirtualKeyboardType)); + RemoveEnumElementAliases(TypeInfo(TReturnKeyType)); + RemoveEnumElementAliases(TypeInfo(TVirtualKeyboardState)); + + +end. diff --git a/FastScript/FMX/FMX.FormTypeAliases.pas b/FastScript/FMX/FMX.FormTypeAliases.pas new file mode 100644 index 0000000..99d3df6 --- /dev/null +++ b/FastScript/FMX/FMX.FormTypeAliases.pas @@ -0,0 +1,70 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Graphics.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.FormTypeAliases; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.Types, FMX.Objects, System.UITypes, System.UIConsts, FMX.Graphics, System.Types, System.TypInfo, FMX.Forms; + +type + TFmxFormBorderStyleHelper = record helper for TFmxFormBorderStyle + const + bsNone = TFmxFormBorderStyle.None deprecated 'Use TFmxFormBorderStyle.None'; + bsSingle = TFmxFormBorderStyle.Single deprecated 'Use TFmxFormBorderStyle.Single'; + bsSizeable = TFmxFormBorderStyle.Sizeable deprecated 'Use TFmxFormBorderStyle.Sizeable'; + bsToolWindow = TFmxFormBorderStyle.ToolWindow deprecated 'Use TFmxFormBorderStyle.ToolWindow'; + bsSizeToolWin = TFmxFormBorderStyle.SizeToolWin deprecated 'Use TFmxFormBorderStyle.SizeToolWin'; + end; + + TFormPositionHelper = record helper for TFormPosition + const + poDesigned = TFormPosition.Designed deprecated 'Use TFormPosition.Designed'; + poDefault = TFormPosition.Default deprecated 'Use TFormPosition.Default'; + poDefaultPosOnly = TFormPosition.DefaultPosOnly deprecated 'Use TFormPosition.DefaultPosOnly'; + poDefaultSizeOnly = TFormPosition.DefaultSizeOnly deprecated 'Use TFormPosition.DefaultSizeOnly'; + poScreenCenter = TFormPosition.ScreenCenter deprecated 'Use TFormPosition.ScreenCenter'; + poDesktopCenter = TFormPosition.DesktopCenter deprecated 'Use TFormPosition.DesktopCenter'; + poMainFormCenter = TFormPosition.MainFormCenter deprecated 'Use TFormPosition.MainFormCenter'; + poOwnerFormCenter = TFormPosition.OwnerFormCenter deprecated 'Use TFormPosition.OwnerFormCenter'; + end; + + TFmxFormStateHelper = record helper for TFmxFormState + const + fsRecreating = TFmxFormState.Recreating deprecated 'Use TFmxFormState.Recreating'; + fsModal = TFmxFormState.Modal deprecated 'Use TFmxFormState.Modal'; + fsReleased = TFmxFormState.Released deprecated 'Use TFmxFormState.Released'; + fsInDesigner = TFmxFormState.InDesigner deprecated 'Use TFmxFormState.InDesigner'; + fsWasNotShown = TFmxFormState.WasNotShown deprecated 'Use TFmxFormState.WasNotShown'; + fsShowing = TFmxFormState.Showing deprecated 'Use TFmxFormState.Showing'; + fsUpdateBorder = TFmxFormState.UpdateBorder deprecated 'Use TFmxFormState.UpdateBorder'; + fsActivation = TFmxFormState.Activation deprecated 'Use TFmxFormState.Activation'; + end; + + +implementation + +initialization + AddEnumElementAliases(TypeInfo(TFmxFormBorderStyle), ['bsNone', 'bsSingle', 'bsSizeable', 'bsToolWindow', 'bsSizeToolWin']); + AddEnumElementAliases(TypeInfo(TFormPosition), ['poDesigned', 'poDefault', 'poDefaultPosOnly', 'poDefaultSizeOnly', 'poScreenCenter', 'poDesktopCenter', + 'poMainFormCenter', 'poOwnerFormCenter']); + AddEnumElementAliases(TypeInfo(TFmxFormState), ['fsRecreating', 'fsModal', 'fsReleased', 'fsInDesigner', 'fsWasNotShown', 'fsShowing', 'fsUpdateBorder', + 'fsActivation']); + +finalization + RemoveEnumElementAliases(TypeInfo(TFmxFormBorderStyle)); + RemoveEnumElementAliases(TypeInfo(TFormPosition)); + RemoveEnumElementAliases(TypeInfo(TFmxFormState)); + +end. diff --git a/FastScript/FMX/FMX.fs_iadortti.pas b/FastScript/FMX/FMX.fs_iadortti.pas new file mode 100644 index 0000000..f858548 --- /dev/null +++ b/FastScript/FMX/FMX.fs_iadortti.pas @@ -0,0 +1,129 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ ADO classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iadortti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_itools, FMX.fs_idbrtti, + Data.DB, Data.Win.ADODB, Winapi.ADOInt, FMX.Types; + +type +{$i frxPlatformsAttribute.inc} + TfsADORTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddType('TDataType', fvtInt); + AddClass(TADOConnection, 'TComponent'); + AddClass(TParameter, 'TCollectionItem'); + with AddClass(TParameters, 'TCollection') do + begin + AddMethod('function AddParameter: TParameter', CallMethod); + AddDefaultProperty('Items', 'Integer', 'TParameter', CallMethod, True); + end; + with AddClass(TCustomADODataSet, 'TDataSet') do + begin + AddProperty('Sort', 'WideString', GetProp, SetProp); + end; + AddClass(TADOTable, 'TCustomADODataSet'); + with AddClass(TADOQuery, 'TCustomADODataSet') do + AddMethod('procedure ExecSQL', CallMethod); + with AddClass(TADOStoredProc, 'TCustomADODataSet') do + AddMethod('procedure ExecProc', CallMethod); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + + if ClassType = TParameters then + begin + if MethodName = 'ADDPARAMETER' then + Result := frxInteger(TParameters(Instance).AddParameter) + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(TParameters(Instance).Items[Caller.Params[0]]) + end + else if ClassType = TADOQuery then + begin + if MethodName = 'EXECSQL' then + TADOQuery(Instance).ExecSQL + end + else if ClassType = TADOStoredProc then + begin + if MethodName = 'EXECPROC' then + TADOStoredProc(Instance).ExecProc + end +end; + + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TCustomADODataSet then + begin + if PropName = 'SORT' then + Result := TCustomADODataSet(Instance).Sort; + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + + if ClassType = TCustomADODataSet then + begin + if PropName = 'SORT' then + TCustomADODataSet(Instance).Sort := Value; + end + +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsADORTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. + diff --git a/FastScript/FMX/FMX.fs_ibasic.pas b/FastScript/FMX/FMX.fs_ibasic.pas new file mode 100644 index 0000000..8a0c8e7 --- /dev/null +++ b/FastScript/FMX/FMX.fs_ibasic.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Basic grammar } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_ibasic; +{$i FMX.inc} +{$i fs_ibasic.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_ichartrtti.pas b/FastScript/FMX/FMX.fs_ichartrtti.pas new file mode 100644 index 0000000..4fdff87 --- /dev/null +++ b/FastScript/FMX/FMX.fs_ichartrtti.pas @@ -0,0 +1,181 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Chart } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_ichartrtti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_itools, FMX.fs_iformsrtti, FMX.Objects, + FMXTee.Chart, FMXTee.Series, FMXTee.Engine, FMXTee.Procs, FMXTee.Canvas, FMX.Types, System.Types; + + +type +{$i frxPlatformsAttribute.inc} + TfsChartRTTI = class(TFmxObject); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddType('TChartValue', fvtFloat); + AddEnum('TLegendStyle', 'lsAuto, lsSeries, lsValues, lsLastValues'); + AddEnum('TLegendAlignment', 'laLeft, laRight, laTop, laBottom'); + AddEnum('TLegendTextStyle', 'ltsPlain, ltsLeftValue, ltsRightValue, ltsLeftPercent,' + + 'ltsRightPercent, ltsXValue'); + AddEnum('TChartListOrder', 'loNone, loAscending, loDescending'); + AddEnum('TGradientDirection', 'gdTopBottom, gdBottomTop, gdLeftRight, gdRightLeft'); + AddEnum('TSeriesMarksStyle', 'smsValue, smsPercent, smsLabel, smsLabelPercent, ' + + 'smsLabelValue, smsLegend, smsPercentTotal, smsLabelPercentTotal, smsXValue'); + AddEnum('TAxisLabelStyle', 'talAuto, talNone, talValue, talMark, talText'); + AddEnum('THorizAxis', 'aTopAxis, aBottomAxis'); + AddEnum('TVertAxis', 'aLeftAxis, aRightAxis'); + AddEnum('TTeeBackImageMode', 'pbmStretch, pbmTile, pbmCenter'); + AddEnum('TPanningMode', 'pmNone, pmHorizontal, pmVertical, pmBoth'); + AddEnum('TSeriesPointerStyle', 'psRectangle, psCircle, psTriangle, ' + + 'psDownTriangle, psCross, psDiagCross, psStar, psDiamond, psSmallDot'); + AddEnum('TMultiArea', 'maNone, maStacked, maStacked100'); + AddEnum('TMultiBar', 'mbNone, mbSide, mbStacked, mbStacked100'); + AddEnum('TBarStyle', 'bsRectangle, bsPyramid, bsInvPyramid, bsCilinder, ' + + 'bsEllipse, bsArrow, bsRectGradient'); + + AddEnum('TPenEndStyle', 'esRound, esSquare, esFlat'); + AddEnum('TPenMode', 'pmBlack, pmWhite, pmNop, pmNot, pmCopy, pmNotCopy, ' + + 'pmMergePenNot, pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge, ' + + 'pmNotMerge, pmMask, pmNotMask, pmXor, pmNotXor'); + AddEnum('TPenStyle', 'psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame'); + AddClass(TChartValueList, 'TPersistent'); + AddClass(TChartAxisTitle, 'TPersistent'); + AddClass(TChartAxis, 'TPersistent'); + AddClass(TCustomChartLegend, 'TPersistent'); + AddClass(TChartLegend, 'TCustomChartLegend'); + AddClass(TSeriesMarks, 'TPersistent'); + AddClass(TChartGradient, 'TPersistent'); + AddClass(TChartWall, 'TPersistent'); + AddClass(TChartBrush, 'TBrush'); + AddClass(TChartTitle, 'TPersistent'); + AddClass(TView3DOptions, 'TPersistent'); + AddClass(TChartPen, 'TComponent'); + with AddClass(TChartSeries, 'TComponent') do + begin + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure Delete(Index: Integer)', CallMethod); + AddMethod('function Count: Integer', CallMethod); + AddMethod('procedure Add(const AValue: Double; const ALabel: String; AColor: TColor)', CallMethod); + AddProperty('Active','Boolean', GetProp, SetProp); + AddProperty('ColorEachPoint','Boolean', GetProp, SetProp); + + end; + AddClass(TSeriesPointer, 'TPersistent'); + AddClass(TCustomSeries, 'TChartSeries'); + AddClass(TLineSeries, 'TCustomSeries'); + AddClass(TPointSeries, 'TCustomSeries'); + AddClass(TAreaSeries, 'TCustomSeries'); + with AddClass(TCustomBarSeries, 'TChartSeries') do + begin + AddProperty('Title','String', GetProp, SetProp); + end; + AddClass(TBarSeries, 'TCustomBarSeries'); + AddClass(THorizBarSeries, 'TCustomBarSeries'); + AddClass(TCircledSeries, 'TChartSeries'); + AddClass(TPieSeries, 'TCircledSeries'); + AddClass(TFastLineSeries, 'TChartSeries'); + AddClass(TCustomChart, 'TWinControl'); + AddClass(TChart, 'TCustomChart'); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + + if ClassType = TChartSeries then + begin + if MethodName = 'CLEAR' then + TChartSeries(Instance).Clear + else if MethodName = 'ADD' then + TChartSeries(Instance).Add(Caller.Params[0], String(Caller.Params[1]), Caller.Params[2]) + else if MethodName = 'DELETE' then + TChartSeries(Instance).Delete(Caller.Params[0]) + else if MethodName = 'COUNT' then + Result := TChartSeries(Instance).Count + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TChartSeries then + begin + if PropName = 'ACTIVE' then + Result := TChartSeries(Instance).Active + else if PropName = 'COLOREACHPOINT' then + Result := TChartSeries(Instance).ColorEachPoint + end else + if ClassType = TCustomBarSeries then + begin + if PropName = 'Title' then + Result := TCustomBarSeries(Instance).Title + end; +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TChartSeries then + begin + if PropName = 'ACTIVE' then + TChartSeries(Instance).Active := Value + else if PropName = 'COLOREACHPOINT' then + TChartSeries(Instance).ColorEachPoint := Value + end else + if ClassType = TCustomBarSeries then + begin + if PropName = 'Title' then + TCustomBarSeries(Instance).Title := Value + end +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsChartRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX/FMX.fs_iclassesrtti.pas b/FastScript/FMX/FMX.fs_iclassesrtti.pas new file mode 100644 index 0000000..97fd2ec --- /dev/null +++ b/FastScript/FMX/FMX.fs_iclassesrtti.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Classes.pas classes and functions } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iclassesrtti; +{$i FMX.inc} +{$i fs_iclassesrtti.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_iconst.pas b/FastScript/FMX/FMX.fs_iconst.pas new file mode 100644 index 0000000..c23d7cf --- /dev/null +++ b/FastScript/FMX/FMX.fs_iconst.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Resources } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iconst; +{$i FMX.inc} +{$i fs_iconst.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_icpp.pas b/FastScript/FMX/FMX.fs_icpp.pas new file mode 100644 index 0000000..64a3c70 --- /dev/null +++ b/FastScript/FMX/FMX.fs_icpp.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ C++ grammar } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_icpp; +{$i FMX.inc} +{$i fs_icpp.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_idbrtti.pas b/FastScript/FMX/FMX.fs_idbrtti.pas new file mode 100644 index 0000000..dbb1620 --- /dev/null +++ b/FastScript/FMX/FMX.fs_idbrtti.pas @@ -0,0 +1,570 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ DB.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_idbrtti; + +interface + +{$i fs.inc} + +uses + System.Types, System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_itools, FMX.fs_iclassesrtti, FMX.fs_ievents, + Data.DB, FMX.Types; + +type +{$i frxPlatformsAttribute.inc} + TfsDBRTTI = class(TComponent); // fake component + + TfsDatasetNotifyEvent = class(TfsCustomEvent) + public + procedure DoEvent(Dataset: TDataset); + function GetMethod: Pointer; override; + end; + + TfsFilterRecordEvent = class(TfsCustomEvent) + public + procedure DoEvent(DataSet: TDataSet; var Accept: Boolean); + function GetMethod: Pointer; override; + end; + + TfsFieldGetTextEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TField; var Text: String; DisplayText: Boolean); + function GetMethod: Pointer; override; + end; + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TfsDatasetNotifyEvent } + +procedure TfsDatasetNotifyEvent.DoEvent(Dataset: TDataset); +begin + CallHandler([Dataset]); +end; + +function TfsDatasetNotifyEvent.GetMethod: Pointer; +begin + Result := @TfsDatasetNotifyEvent.DoEvent; +end; + + +{ TfsFilterRecordEvent } + +procedure TfsFilterRecordEvent.DoEvent(DataSet: TDataSet; var Accept: Boolean); +begin + CallHandler([DataSet, Accept]); + Accept := Handler.Params[1].Value; +end; + +function TfsFilterRecordEvent.GetMethod: Pointer; +begin + Result := @TfsFilterRecordEvent.DoEvent; +end; + + +{ TfsFieldGetTextEvent } + +procedure TfsFieldGetTextEvent.DoEvent(Sender: TField; var Text: String; DisplayText: Boolean); +begin + CallHandler([Sender, Text, DisplayText]); + Text := Handler.Params[1].Value; +end; + +function TfsFieldGetTextEvent.GetMethod: Pointer; +begin + Result := @TfsFieldGetTextEvent.DoEvent; +end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddEnum('TFieldType', 'ftUnknown, ftString, ftSmallint, ftInteger, ftWord,' + + 'ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime,' + + 'ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo,' + + 'ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString,' + + 'ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob,' + + 'ftVariant, ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd'); + AddEnum('TBlobStreamMode', 'bmRead, bmWrite, bmReadWrite'); + AddEnumSet('TLocateOptions', 'loCaseInsensitive, loPartialKey'); + AddEnumSet('TFilterOptions', 'foCaseInsensitive, foNoPartialCompare'); + AddEnum('TParamType', 'ptUnknown, ptInput, ptOutput, ptInputOutput, ptResult'); + + with AddClass(TField, 'TComponent') do + begin + AddProperty('AsBoolean', 'Boolean', GetProp, SetProp); + AddProperty('AsCurrency', 'Currency', GetProp, SetProp); + AddProperty('AsDateTime', 'TDateTime', GetProp, SetProp); + AddProperty('AsFloat', 'Double', GetProp, SetProp); + AddProperty('AsInteger', 'Integer', GetProp, SetProp); + AddProperty('AsString', 'String', GetProp, SetProp); + AddProperty('AsVariant', 'Variant', GetProp, SetProp); + AddProperty('DataType', 'TFieldType', GetProp, nil); + AddProperty('DisplayName', 'String', GetProp, nil); + AddProperty('DisplayText', 'String', GetProp, nil); + AddProperty('IsNull', 'Boolean', GetProp, nil); + AddProperty('Size', 'Integer', GetProp, SetProp); + AddProperty('Value', 'Variant', GetProp, SetProp); + AddProperty('OldValue', 'Variant', GetProp, nil); + AddEvent('OnGetText', TfsFieldGetTextEvent); + end; + with AddClass(TFields, 'TObject') do + AddDefaultProperty('Fields', 'Integer', 'TField', CallMethod, True); + AddClass(TStringField, 'TField'); + AddClass(TNumericField, 'TField'); + AddClass(TIntegerField, 'TNumericField'); + AddClass(TSmallIntField, 'TIntegerField'); + AddClass(TWordField, 'TIntegerField'); + AddClass(TAutoIncField, 'TIntegerField'); + AddClass(TFloatField, 'TNumericField'); + AddClass(TCurrencyField, 'TFloatField'); + AddClass(TBooleanField, 'TField'); + AddClass(TDateTimeField, 'TField'); + AddClass(TDateField, 'TDateTimeField'); + AddClass(TTimeField, 'TDateTimeField'); + AddClass(TBinaryField, 'TField'); + AddClass(TBytesField, 'TBinaryField'); + AddClass(TVarBytesField, 'TBinaryField'); + AddClass(TBCDField, 'TNumericField'); + with AddClass(TBlobField, 'TField') do + begin + AddMethod('procedure LoadFromFile(const FileName: String)', CallMethod); + AddMethod('procedure LoadFromStream(Stream: TStream)', CallMethod); + AddMethod('procedure SaveToFile(const FileName: String)', CallMethod); + AddMethod('procedure SaveToStream(Stream: TStream)', CallMethod); + end; + AddClass(TMemoField, 'TBlobField'); + AddClass(TGraphicField, 'TBlobField'); + AddClass(TFieldDef, 'TPersistent'); + with AddClass(TFieldDefs, 'TObject') do + begin + AddMethod('function AddFieldDef: TFieldDef', CallMethod); + AddMethod('function Find(const Name: string): TFieldDef', CallMethod); + AddMethod('procedure Add(const Name: string; DataType: TFieldType; Size: Word; Required: Boolean)', CallMethod); + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure Update', CallMethod); + AddDefaultProperty('Items', 'Integer', 'TFieldDef', CallMethod, True); + end; + AddClass(TDataSource, 'TComponent'); + AddType('TBookmark', fvtVariant); + with AddClass(TDataSet, 'TComponent') do + begin + AddMethod('procedure Open', CallMethod); + AddMethod('procedure Close', CallMethod); + AddMethod('procedure First', CallMethod); + AddMethod('procedure Last', CallMethod); + AddMethod('procedure Next', CallMethod); + AddMethod('procedure Prior', CallMethod); + AddMethod('procedure Cancel', CallMethod); + AddMethod('procedure Delete', CallMethod); + AddMethod('procedure Post', CallMethod); + AddMethod('procedure Append', CallMethod); + AddMethod('procedure Insert', CallMethod); + AddMethod('procedure Edit', CallMethod); + + AddMethod('function FieldByName(const FieldName: string): TField', CallMethod); + AddMethod('procedure GetFieldNames(List: TStrings)', CallMethod); + AddMethod('function FindFirst: Boolean', CallMethod); + AddMethod('function FindLast: Boolean', CallMethod); + AddMethod('function FindNext: Boolean', CallMethod); + AddMethod('function FindPrior: Boolean', CallMethod); + AddMethod('procedure FreeBookmark(Bookmark: TBookmark)', CallMethod); + AddMethod('function GetBookmark: TBookmark', CallMethod); + AddMethod('procedure GotoBookmark(Bookmark: TBookmark)', CallMethod); + AddMethod('function Locate(const KeyFields: string; const KeyValues: Variant;' + + 'Options: TLocateOptions): Boolean', CallMethod); + AddMethod('function IsEmpty: Boolean', CallMethod); + AddMethod('procedure EnableControls', CallMethod); + AddMethod('procedure DisableControls', CallMethod); + + AddProperty('Bof', 'Boolean', GetProp, nil); + AddProperty('Eof', 'Boolean', GetProp, nil); + AddProperty('FieldCount', 'Integer', GetProp, nil); + AddProperty('FieldDefs', 'TFieldDefs', GetProp, nil); + AddProperty('Fields', 'TFields', GetProp, nil); + AddProperty('Filter', 'string', GetProp, SetProp); + AddProperty('Filtered', 'Boolean', GetProp, SetProp); + AddProperty('FilterOptions', 'TFilterOptions', GetProp, SetProp); + AddProperty('Active', 'Boolean', GetProp, SetProp); + + AddEvent('BeforeOpen', TfsDatasetNotifyEvent); + AddEvent('AfterOpen', TfsDatasetNotifyEvent); + AddEvent('BeforeClose', TfsDatasetNotifyEvent); + AddEvent('AfterClose', TfsDatasetNotifyEvent); + AddEvent('BeforeInsert', TfsDatasetNotifyEvent); + AddEvent('AfterInsert', TfsDatasetNotifyEvent); + AddEvent('BeforeEdit', TfsDatasetNotifyEvent); + AddEvent('AfterEdit', TfsDatasetNotifyEvent); + AddEvent('BeforePost', TfsDatasetNotifyEvent); + AddEvent('AfterPost', TfsDatasetNotifyEvent); + AddEvent('BeforeCancel', TfsDatasetNotifyEvent); + AddEvent('AfterCancel', TfsDatasetNotifyEvent); + AddEvent('BeforeDelete', TfsDatasetNotifyEvent); + AddEvent('AfterDelete', TfsDatasetNotifyEvent); + AddEvent('BeforeScroll', TfsDatasetNotifyEvent); + AddEvent('AfterScroll', TfsDatasetNotifyEvent); + AddEvent('OnCalcFields', TfsDatasetNotifyEvent); + AddEvent('OnFilterRecord', TfsFilterRecordEvent); + AddEvent('OnNewRecord', TfsDatasetNotifyEvent); + end; + + with AddClass(TParam, 'TPersistent') do + begin + AddMethod('procedure Clear', CallMethod); + AddProperty('AsBoolean', 'Boolean', GetProp, SetProp); + AddProperty('AsCurrency', 'Currency', GetProp, SetProp); + AddProperty('AsDateTime', 'TDateTime', GetProp, SetProp); + AddProperty('AsFloat', 'Double', GetProp, SetProp); + AddProperty('AsInteger', 'Integer', GetProp, SetProp); + AddProperty('AsDate', 'TDate', GetProp, SetProp); + AddProperty('AsTime', 'TTime', GetProp, SetProp); + AddProperty('AsString', 'String', GetProp, SetProp); + AddProperty('Bound', 'Boolean', GetProp, SetProp); + AddProperty('IsNull', 'Boolean', GetProp, nil); + AddProperty('Text', 'String', GetProp, SetProp); + end; + with AddClass(TParams, 'TPersistent') do + begin + AddMethod('function ParamByName(const Value: string): TParam', CallMethod); + AddMethod('function FindParam(const Value: string): TParam', CallMethod); + AddDefaultProperty('Items', 'Integer', 'TParam', CallMethod, True); + end; + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + _TDataSet: TDataSet; + + function IntToLocateOptions(i: Integer): TLocateOptions; + begin + Result := []; + if (i and 1) <> 0 then + Result := Result + [loCaseInsensitive]; + if (i and 2) <> 0 then + Result := Result + [loPartialKey]; + end; + +begin + Result := 0; + + if ClassType = TFields then + begin + if MethodName = 'FIELDS.GET' then + Result := frxInteger(TFields(Instance)[Caller.Params[0]]) + end + else if ClassType = TFieldDefs then + begin + if MethodName = 'ITEMS.GET' then + Result := frxInteger(TFieldDefs(Instance)[Caller.Params[0]]) + else if MethodName = 'ADD' then + TFieldDefs(Instance).Add(Caller.Params[0], TFieldType(Caller.Params[1]), Caller.Params[2], Caller.Params[3]) + else if MethodName = 'ADDFIELDDEF' then + Result := frxInteger(TFieldDefs(Instance).AddFieldDef) + else if MethodName = 'CLEAR' then + TFieldDefs(Instance).Clear + else if MethodName = 'FIND' then + Result := frxInteger(TFieldDefs(Instance).Find(Caller.Params[0])) + else if MethodName = 'UPDATE' then + TFieldDefs(Instance).Update + end + else if ClassType = TBlobField then + begin + if MethodName = 'LOADFROMFILE' then + TBlobField(Instance).LoadFromFile(Caller.Params[0]) + else if MethodName = 'LOADFROMSTREAM' then + TBlobField(Instance).LoadFromStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'SAVETOFILE' then + TBlobField(Instance).SaveToFile(Caller.Params[0]) + else if MethodName = 'SAVETOSTREAM' then + TBlobField(Instance).SaveToStream(TStream(frxInteger(Caller.Params[0]))) + end + else if ClassType = TDataSet then + begin + _TDataSet := TDataSet(Instance); + if MethodName = 'OPEN' then + _TDataSet.Open + else if MethodName = 'CLOSE' then + _TDataSet.Close + else if MethodName = 'FIRST' then + _TDataSet.First + else if MethodName = 'LAST' then + _TDataSet.Last + else if MethodName = 'NEXT' then + _TDataSet.Next + else if MethodName = 'PRIOR' then + _TDataSet.Prior + else if MethodName = 'CANCEL' then + _TDataSet.Cancel + else if MethodName = 'DELETE' then + _TDataSet.Delete + else if MethodName = 'POST' then + _TDataSet.Post + else if MethodName = 'APPEND' then + _TDataSet.Append + else if MethodName = 'INSERT' then + _TDataSet.Insert + else if MethodName = 'EDIT' then + _TDataSet.Edit + else if MethodName = 'FIELDBYNAME' then + Result := frxInteger(_TDataSet.FieldByName(Caller.Params[0])) + else if MethodName = 'GETFIELDNAMES' then + _TDataSet.GetFieldNames(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'FINDFIRST' then + Result := _TDataSet.FindFirst + else if MethodName = 'FINDLAST' then + Result := _TDataSet.FindLast + else if MethodName = 'FINDNEXT' then + Result := _TDataSet.FindNext + else if MethodName = 'FINDPRIOR' then + Result := _TDataSet.FindPrior + else if MethodName = 'FREEBOOKMARK' then + _TDataSet.FreeBookmark(TBookMark(frxInteger(Caller.Params[0]))) +{$IFNDEF CPUX64} + else if MethodName = 'GETBOOKMARK' then + Result := frxInteger(_TDataSet.GetBookmark) +{$ENDIF} + else if MethodName = 'GOTOBOOKMARK' then + _TDataSet.GotoBookmark(TBookMark(frxInteger(Caller.Params[0]))) + else if MethodName = 'LOCATE' then + Result := _TDataSet.Locate(Caller.Params[0], Caller.Params[1], IntToLocateOptions(Caller.Params[2])) + else if MethodName = 'ISEMPTY' then + Result := _TDataSet.IsEmpty + else if MethodName = 'ENABLECONTROLS' then + _TDataSet.EnableControls + else if MethodName = 'DISABLECONTROLS' then + _TDataSet.DisableControls + end + else if ClassType = TParam then + begin + if MethodName = 'CLEAR' then + TParam(Instance).Clear + end + else if ClassType = TParams then + begin + if MethodName = 'PARAMBYNAME' then + Result := frxInteger(TParams(Instance).ParamByName(Caller.Params[0])) + else if MethodName = 'FINDPARAM' then + Result := frxInteger(TParams(Instance).FindParam(Caller.Params[0])) + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(TParams(Instance)[Caller.Params[0]]) + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +var + _TField: TField; + _TParam: TParam; + _TDataSet: TDataSet; + + function FilterOptionsToInt(f: TFilterOptions): Integer; + begin + Result := 0; + if foCaseInsensitive in f then + Result := Result or 1; + if foNoPartialCompare in f then + Result := Result or 2; + end; + +begin + Result := 0; + + if ClassType = TField then + begin + _TField := TField(Instance); + if PropName = 'ASBOOLEAN' then + Result := _TField.AsBoolean + else if PropName = 'ASCURRENCY' then + Result := _TField.AsCurrency + else if PropName = 'ASDATETIME' then + Result := _TField.AsDateTime + else if PropName = 'ASFLOAT' then + Result := _TField.AsFloat + else if PropName = 'ASINTEGER' then + Result := _TField.AsInteger + else if PropName = 'ASSTRING' then + Result := _TField.AsString + else if PropName = 'ASVARIANT' then + Result := _TField.AsVariant + else if PropName = 'DATATYPE' then + Result := _TField.DataType + else if PropName = 'DISPLAYNAME' then + Result := _TField.DisplayName + else if PropName = 'DISPLAYTEXT' then + Result := _TField.DisplayText + else if PropName = 'ISNULL' then + Result := _TField.IsNull + else if PropName = 'SIZE' then + Result := _TField.Size + else if PropName = 'VALUE' then + Result := _TField.Value + else if PropName = 'OLDVALUE' then + Result := _TField.OldValue + end + else if ClassType = TDataSet then + begin + _TDataSet := TDataSet(Instance); + if PropName = 'BOF' then + Result := _TDataSet.Bof + else if PropName = 'EOF' then + Result := _TDataSet.Eof + else if PropName = 'FIELDCOUNT' then + Result := _TDataSet.FieldCount + else if PropName = 'FIELDDEFS' then + Result := frxInteger(_TDataSet.FieldDefs) + else if PropName = 'FIELDS' then + Result := frxInteger(_TDataSet.Fields) + else if PropName = 'FILTER' then + Result := _TDataSet.Filter + else if PropName = 'FILTERED' then + Result := _TDataSet.Filtered + else if PropName = 'FILTEROPTIONS' then + Result := FilterOptionsToInt(_TDataSet.FilterOptions) + else if PropName = 'ACTIVE' then + Result := _TDataSet.Active + end + else if ClassType = TParam then + begin + _TParam := TParam(Instance); + if PropName = 'BOUND' then + Result := _TParam.Bound + else if PropName = 'ISNULL' then + Result := _TParam.IsNull + else if PropName = 'TEXT' then + Result := _TParam.Text + else if PropName = 'ASBOOLEAN' then + Result := _TParam.AsBoolean + else if PropName = 'ASCURRENCY' then + Result := _TParam.AsCurrency + else if PropName = 'ASDATETIME' then + Result := _TParam.AsDateTime + else if PropName = 'ASFLOAT' then + Result := _TParam.AsFloat + else if PropName = 'ASINTEGER' then + Result := _TParam.AsInteger + else if PropName = 'ASDATE' then + Result := _TParam.AsDate + else if PropName = 'ASTIME' then + Result := _TParam.AsTime + else if PropName = 'ASSTRING' then + Result := _TParam.AsString + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +var + _TField: TField; + _TParam: TParam; + _TDataSet: TDataSet; + + function IntToFilterOptions(i: Integer): TFilterOptions; + begin + Result := []; + if (i and 1) <> 0 then + Result := Result + [foCaseInsensitive]; + if (i and 2) <> 0 then + Result := Result + [foNoPartialCompare]; + end; + +begin + if ClassType = TField then + begin + _TField := TField(Instance); + if PropName = 'ASBOOLEAN' then + _TField.AsBoolean := Value + else if PropName = 'ASCURRENCY' then + _TField.AsCurrency := Value + else if PropName = 'ASDATETIME' then + _TField.AsDateTime := Value + else if PropName = 'ASFLOAT' then + _TField.AsFloat := Value + else if PropName = 'ASINTEGER' then + _TField.AsInteger := Value + else if PropName = 'ASSTRING' then + _TField.AsString := Value + else if PropName = 'ASVARIANT' then + _TField.AsVariant := Value + else if PropName = 'VALUE' then + _TField.Value := Value + else if PropName = 'SIZE' then + _TField.Size := Value + end + else if ClassType = TDataSet then + begin + _TDataSet := TDataSet(Instance); + if PropName = 'FILTER' then + _TDataSet.Filter := Value + else if PropName = 'FILTERED' then + _TDataSet.Filtered := Value + else if PropName = 'FILTEROPTIONS' then + _TDataSet.FilterOptions := IntToFilterOptions(Value) + else if PropName = 'ACTIVE' then + _TDataSet.Active := Value + end + else if ClassType = TParam then + begin + _TParam := TParam(Instance); + if PropName = 'ASBOOLEAN' then + _TParam.AsBoolean := Value + else if PropName = 'ASCURRENCY' then + _TParam.AsCurrency := Value + else if PropName = 'ASDATETIME' then + _TParam.AsDateTime := Value + else if PropName = 'ASFLOAT' then + _TParam.AsFloat := Value + else if PropName = 'ASINTEGER' then + _TParam.AsInteger := Value + else if PropName = 'ASDATE' then + _TParam.AsDate := Value + else if PropName = 'ASTIME' then + _TParam.AsTime := Value + else if PropName = 'ASSTRING' then + _TParam.AsString := Value + else if PropName = 'BOUND' then + _TParam.Bound := Value + else if PropName = 'TEXT' then + _TParam.Text := Value + end +end; + + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsDBRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX/FMX.fs_idialogsrtti.pas b/FastScript/FMX/FMX.fs_idialogsrtti.pas new file mode 100644 index 0000000..0d12fba --- /dev/null +++ b/FastScript/FMX/FMX.fs_idialogsrtti.pas @@ -0,0 +1,133 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Dialogs.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_idialogsrtti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_iclassesrtti, FMX.Types +, FMX.Dialogs, System.UITypes, System.Types +{$IFDEF DELPHI19} +, FMX.Printer +{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsDialogsRTTI = class(TComponent); // fake component + + +implementation + +type + THackDialog = class(TCommonDialog); + + + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + public + constructor Create(AScript: TfsScript); override; + end; + +type + TWordSet = set of 0..15; + PWordSet = ^TWordSet; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +var + dlg: String; +begin + inherited Create(AScript); + with AScript do + begin + AddEnumSet('TOpenOptions', 'ofReadOnly, ofOverwritePrompt, ofHideReadOnly,' + + 'ofNoChangeDir, ofShowHelp, ofNoValidate, ofAllowMultiSelect,' + + 'ofExtensionDifferent, ofPathMustExist, ofFileMustExist, ofCreatePrompt,' + + 'ofShareAware, ofNoReadOnlyReturn, ofNoTestFileCreate, ofNoNetworkButton,' + + 'ofNoLongNames, ofOldStyleDialog, ofNoDereferenceLinks, ofEnableIncludeNotify,' + + 'ofEnableSizing'); + AddEnum('TFileEditStyle', 'fsEdit, fsComboBox'); + AddEnumSet('TColorDialogOptions', 'cdFullOpen, cdPreventFullOpen, cdShowHelp,' + + 'cdSolidColor, cdAnyColor'); + AddEnumSet('TFontDialogOptions', 'fdAnsiOnly, fdTrueTypeOnly, fdEffects,' + + 'fdFixedPitchOnly, fdForceFontExist, fdNoFaceSel, fdNoOEMFonts,' + + 'fdNoSimulations, fdNoSizeSel, fdNoStyleSel, fdNoVectorFonts,' + + 'fdShowHelp, fdWysiwyg, fdLimitSize, fdScalableOnly, fdApplyButton'); + AddEnum('TFontDialogDevice', 'fdScreen, fdPrinter, fdBoth'); + AddEnum('TPrintRange', 'prAllPages, prSelection, prPageNums'); + AddEnumSet('TPrintDialogOptions', 'poPrintToFile, poPageNums, poSelection,' + + 'poWarning, poHelp, poDisablePrintToFile'); + AddEnum('TMsgDlgType', 'mtCustom, mtInformation, mtWarning, mtError, mtConfirmation'); + AddEnumSet('TMsgDlgButtons', 'mbNone, mbOk, mbCancel, mbYes, mbNo, mbAbort, ' + + 'mbRetry, mbIgnore'); + + + with AddClass(TCommonDialog, 'TComponent') do + AddMethod('function Execute: Boolean', CallMethod); + AddClass(TOpenDialog, 'TCommonDialog'); + AddClass(TSaveDialog, 'TCommonDialog'); + AddClass(TPrintDialog, dlg); + AddClass(TPrinterSetupDialog, dlg); + + AddMethod('function MessageDlg(Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer', CallMethod, 'ctOther'); + AddMethod('function InputBox(ACaption, APrompt, ADefault: string): string', CallMethod, 'ctOther'); + AddMethod('function InputQuery(ACaption, APrompt: string; var Value: string): Boolean', CallMethod, 'ctOther'); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + s: String; + b: TMsgDlgButtons; +begin + Result := 0; + + if ClassType = TCommonDialog then + begin + if MethodName = 'EXECUTE' then + Result := THackDialog(Instance).Execute + end + else if MethodName = 'INPUTBOX' then + Result := InputBox(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'INPUTQUERY' then + begin + s := Caller.Params[2]; + Result := InputQuery(Caller.Params[0], Caller.Params[1], s); + Caller.Params[2] := s; + end + else if MethodName = 'MESSAGEDLG' then + begin + Word(PWordSet(@b)^) := Caller.Params[2]; + Result := MessageDlg(Caller.Params[0], Caller.Params[1], b, Caller.Params[3]); + end +end; + + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsDialogsRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_idisp.pas b/FastScript/FMX/FMX.fs_idisp.pas new file mode 100644 index 0000000..3ce8fda --- /dev/null +++ b/FastScript/FMX/FMX.fs_idisp.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ OLE dispatch module } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_idisp; +{$i FMX.inc} +{$i fs_idisp.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_ievents.pas b/FastScript/FMX/FMX.fs_ievents.pas new file mode 100644 index 0000000..2d6981e --- /dev/null +++ b/FastScript/FMX/FMX.fs_ievents.pas @@ -0,0 +1,379 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Standard events } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_ievents; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.Controls, FMX.Forms, System.UITypes, FMX.Types, + System.Types, System.Rtti, FMX.fs_iinterpreter, FMX.fs_iclassesrtti +{$IFDEF DELPHI19} + , FMX.Graphics +{$ENDIF}; + +type + + PDragObject = ^TDragObject; + TfsDragObject = class(TPersistent) + private + FDragObject: TDragObject; + FFiles: TStringList; + function GetStringList: TStringList; + public + function GetRect: TDragObject; + function GetRectP: PDragObject; + constructor Create(aDragObj: TDragObject); + destructor Destroy; override; + published + property Source: TObject read FDragObject.Source write FDragObject.Source; + property Data: {$IFDEF Delphi17}TValue{$ELSE}Variant{$ENDIF} read FDragObject.Data write FDragObject.Data; + property Files: TStringList read GetStringList; + end; + + TfsNotifyEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject); + function GetMethod: Pointer; override; + end; + + TfsMouseEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Single); + function GetMethod: Pointer; override; + end; + + TfsMouseMoveEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; Shift: TShiftState; X, Y: Single); + function GetMethod: Pointer; override; + end; + + TfsMouseWheelEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); + function GetMethod: Pointer; override; + end; + + TfsOnPaintEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; Canvas: TCanvas; const ARect: TRectF); + function GetMethod: Pointer; override; + end; + + TfsCanFocusEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var ACanFocus: Boolean); + function GetMethod: Pointer; override; + end; + + TfsDragOverEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; const Data: TDragObject; const Point: TPointF; var Accept: Boolean); + function GetMethod: Pointer; override; + end; + + TfsDragDropEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; const Data: TDragObject; const Point: TPointF); + function GetMethod: Pointer; override; + end; + + TfsKeyEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var Key: Word; var KeyChar: WideChar; Shift: TShiftState); + function GetMethod: Pointer; override; + end; + + TfsKeyPressEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var Key: Char); + function GetMethod: Pointer; override; + end; + + TfsCloseEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var Action: TCloseAction); + function GetMethod: Pointer; override; + end; + + TfsCloseQueryEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var CanClose: Boolean); + function GetMethod: Pointer; override; + end; + + TfsCanResizeEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var NewWidth, NewHeight: Integer; + var Resize: Boolean); + function GetMethod: Pointer; override; + end; + + +implementation + + +type + TByteSet = set of 0..7; + PByteSet = ^TByteSet; + + +{ TfsNotifyEvent } + +procedure TfsNotifyEvent.DoEvent(Sender: TObject); +begin + CallHandler([Sender]); +end; + +function TfsNotifyEvent.GetMethod: Pointer; +begin + Result := @TfsNotifyEvent.DoEvent; +end; + +{ TfsMouseEvent } + +procedure TfsMouseEvent.DoEvent(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Single); +var + b: Byte; +begin + b := Byte(PByteSet(@Shift)^); + CallHandler([Sender, Integer(Button), b, X, Y]); +end; + +function TfsMouseEvent.GetMethod: Pointer; +begin + Result := @TfsMouseEvent.DoEvent; +end; + +{ TfsMouseMoveEvent } + +procedure TfsMouseMoveEvent.DoEvent(Sender: TObject; Shift: TShiftState; X, + Y: Single); +var + b: Byte; +begin + b := Byte(PByteSet(@Shift)^); + CallHandler([Sender, b, X, Y]); +end; + +function TfsMouseMoveEvent.GetMethod: Pointer; +begin + Result := @TfsMouseMoveEvent.DoEvent; +end; + +{ TfsKeyEvent } + +procedure TfsKeyEvent.DoEvent(Sender: TObject; var Key: Word; + var KeyChar: WideChar; Shift: TShiftState); +var + b: Byte; +begin + b := Byte(PByteSet(@Shift)^); + CallHandler([Sender, Key, KeyChar, b]); + Key := Handler.Params[1].Value; + KeyChar := WideChar(Cardinal(Handler.Params[2].Value)); +end; + +function TfsKeyEvent.GetMethod: Pointer; +begin + Result := @TfsKeyEvent.DoEvent; +end; + +{ TfsKeyPressEvent } + +procedure TfsKeyPressEvent.DoEvent(Sender: TObject; var Key: Char); +begin + CallHandler([Sender, Key]); + Key := String(Handler.Params[1].Value)[1]; +end; + +function TfsKeyPressEvent.GetMethod: Pointer; +begin + Result := @TfsKeyPressEvent.DoEvent; +end; + +{ TfsCloseEvent } + +procedure TfsCloseEvent.DoEvent(Sender: TObject; var Action: TCloseAction); +begin + CallHandler([Sender, Integer(Action)]); + Action := Handler.Params[1].Value; +end; + +function TfsCloseEvent.GetMethod: Pointer; +begin + Result := @TfsCloseEvent.DoEvent; +end; + +{ TfsCloseQueryEvent } + +procedure TfsCloseQueryEvent.DoEvent(Sender: TObject; var CanClose: Boolean); +begin + CallHandler([Sender, CanClose]); + CanClose := Handler.Params[1].Value; +end; + +function TfsCloseQueryEvent.GetMethod: Pointer; +begin + Result := @TfsCloseQueryEvent.DoEvent; +end; + +{ TfsCanResizeEvent } + +procedure TfsCanResizeEvent.DoEvent(Sender: TObject; var NewWidth, + NewHeight: Integer; var Resize: Boolean); +begin + CallHandler([Sender, NewWidth, NewHeight, Resize]); + NewWidth := Handler.Params[1].Value; + NewHeight := Handler.Params[2].Value; + Resize := Handler.Params[3].Value; +end; + +function TfsCanResizeEvent.GetMethod: Pointer; +begin + Result := @TfsCanResizeEvent.DoEvent; +end; + +{ TfsMouseWheelEvent } + +procedure TfsMouseWheelEvent.DoEvent(Sender: TObject; + Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); +var + b: Byte; +begin + b := Byte(PByteSet(@Shift)^); + CallHandler([Sender, b, WheelDelta, Boolean(Handled)]); + Handled := Handler.Params[3].Value; +end; + +function TfsMouseWheelEvent.GetMethod: Pointer; +begin + Result := @TfsMouseWheelEvent.DoEvent; +end; + +{ TfsOnPaintEvent } + +procedure TfsOnPaintEvent.DoEvent(Sender: TObject; Canvas: TCanvas; + const ARect: TRectF); +var + r: TfsRectF; +begin + r := TfsRectF.Create(ARect); + CallHandler([Sender, Canvas, r]); + r.Free; +end; + +function TfsOnPaintEvent.GetMethod: Pointer; +begin + Result := @TfsOnPaintEvent.DoEvent; +end; + +{ TfsCanFocusEvent } + +procedure TfsCanFocusEvent.DoEvent(Sender: TObject; var ACanFocus: Boolean); +begin + CallHandler([Sender, ACanFocus]); + ACanFocus := Handler.Params[1].Value; +end; + +function TfsCanFocusEvent.GetMethod: Pointer; +begin + Result := @TfsCanFocusEvent.DoEvent; +end; + +{ TfsDragOverEvent } + +procedure TfsDragOverEvent.DoEvent(Sender: TObject; const Data: TDragObject; + const Point: TPointF; var Accept: Boolean); +var + dObj: TfsDragObject; +begin + dObj := TfsDragObject.Create(Data); + CallHandler([Sender, dObj, Accept]); + dObj.Free; + Accept := Handler.Params[3].Value; +end; + +function TfsDragOverEvent.GetMethod: Pointer; +begin + Result := @TfsDragOverEvent.DoEvent; +end; + +{ TfsDragObject } + +constructor TfsDragObject.Create(aDragObj: TDragObject); +var + idx: Integer; +begin + FFiles := TStringList.Create; + FDragObject.Source := aDragObj.Source; + FDragObject.Data := aDragObj.Data; + for idx := Low(FDragObject.Files) to High(FDragObject.Files) do + FFiles.Add(FDragObject.Files[idx]); +end; + +destructor TfsDragObject.Destroy; +begin + FFiles.Free; + inherited; +end; + +function TfsDragObject.GetRect: TDragObject; +var + idx: Integer; +begin + SetLength(FDragObject.Files, FFiles.Count); + for idx := 0 to FFiles.Count - 1 do + FDragObject.Files[idx] := FFiles.Strings[idx]; + Result := FDragObject; +end; + +function TfsDragObject.GetRectP: PDragObject; +var + idx: Integer; +begin + SetLength(FDragObject.Files, FFiles.Count); + for idx := 0 to FFiles.Count - 1 do + FDragObject.Files[idx] := FFiles.Strings[idx]; + Result := @FDragObject; +end; + +function TfsDragObject.GetStringList: TStringList; +begin + Result := FFiles; +end; + +{ TfsDragDropEvent } + +procedure TfsDragDropEvent.DoEvent(Sender: TObject; const Data: TDragObject; + const Point: TPointF); +var + dObj: TfsDragObject; + aPoint: TfsPointF; +begin + dObj := TfsDragObject.Create(Data); + aPoint := TfsPointF.Create(Point); + CallHandler([Sender, dObj, aPoint]); + dObj.Free; + aPoint.Free; +end; + +function TfsDragDropEvent.GetMethod: Pointer; +begin + Result := @TfsDragDropEvent.DoEvent; +end; + +end. \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_iexpression.pas b/FastScript/FMX/FMX.fs_iexpression.pas new file mode 100644 index 0000000..f429d38 --- /dev/null +++ b/FastScript/FMX/FMX.fs_iexpression.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Expression parser } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iexpression; +{$i FMX.inc} +{$i fs_iexpression.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_iextctrlsrtti.pas b/FastScript/FMX/FMX.fs_iextctrlsrtti.pas new file mode 100644 index 0000000..5bd17eb --- /dev/null +++ b/FastScript/FMX/FMX.fs_iextctrlsrtti.pas @@ -0,0 +1,268 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ ExtCtrls } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iextctrlsrtti; + +interface + +{$i fs.inc} + +uses System.Types, System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_ievents, FMX.fs_iformsrtti +, FMX.ExtCtrls, FMX.ListBox, FMX.Objects, System.UITypes, FMX.Types, FMX.Controls, FMX.Layouts, + FMX.TabControl, FMX.TreeView +{$IFDEF DELPHI18} + , FMX.StdCtrls +{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsExtCtrlsRTTI = class(TComponent); // fake component + + +implementation + +type + TfsTreeViewDragChange = class(TfsCustomEvent) + public + procedure DoEvent(SourceItem, DestItem: TTreeViewItem; var Allow: Boolean); + function GetMethod: Pointer; override; + end; + + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddEnum('TShapeType', 'stRectangle, stSquare, stRoundRect, stRoundSquare,' + + 'stEllipse, stCircle'); + AddEnum('TBevelStyle', 'bsLowered, bsRaised'); + AddEnum('TBevelShape', 'bsBox, bsFrame, bsTopLine, bsBottomLine, bsLeftLine,' + + 'bsRightLine, bsSpacer'); + AddEnum('TResizeStyle', 'rsNone, rsLine, rsUpdate, rsPattern'); + AddEnum('TButtonLayout', 'blGlyphLeft, blGlyphRight, blGlyphTop, blGlyphBottom'); + AddEnum('TButtonState', 'bsUp, bsDisabled, bsDown, bsExclusive'); + AddEnum('TButtonStyle', 'bsAutoDetect, bsWin31, bsNew'); + AddEnum('TBitBtnKind', 'bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo,' + + 'bkClose, bkAbort, bkRetry, bkIgnore, bkAll'); + AddType('TNumGlyphs', fvtInt); + AddEnum('TTabPosition', 'tpTop, tpBottom, tpLeft, tpRight'); + AddEnum('TTabStyle', 'tsTabs, tsButtons, tsFlatButtons'); + AddEnum('TStatusPanelStyle', 'psText, psOwnerDraw'); + AddEnum('TStatusPanelBevel', 'pbNone, pbLowered, pbRaised'); + AddEnum('TSortType', 'stNone, stData, stText, stBoth'); + AddEnum('TTrackBarOrientation', 'trHorizontal, trVertical'); + AddEnum('TTickMark', 'tmBottomRight, tmTopLeft, tmBoth'); + AddEnum('TTickStyle', 'tsNone, tsAuto, tsManual'); + AddEnum('TProgressBarOrientation', 'pbHorizontal, pbVertical'); + AddEnum('TIconArrangement', 'iaTop, iaLeft'); + AddEnum('TListArrangement', 'arAlignBottom, arAlignLeft, arAlignRight,' + + 'arAlignTop, arDefault, arSnapToGrid'); + AddEnum('TViewStyle', 'vsIcon, vsSmallIcon, vsList, vsReport'); + AddEnum('TToolButtonStyle', 'tbsButton, tbsCheck, tbsDropDown, tbsSeparator, tbsDivider'); + AddEnum('TDateTimeKind', 'dtkDate, dtkTime'); + AddEnum('TDTDateMode', 'dmComboBox, dmUpDown'); + AddEnum('TDTDateFormat', 'dfShort, dfLong'); + AddEnum('TDTCalAlignment', 'dtaLeft, dtaRight'); + AddEnum('TCalDayOfWeek', 'dowMonday, dowTuesday, dowWednesday, dowThursday,' + + 'dowFriday, dowSaturday, dowSunday, dowLocaleDefault'); + + + with AddClass(TPaintBox, 'TControl') do + AddEvent('OnPaint', TfsNotifyEvent); + AddClass(TImage, 'TControl'); + with AddClass(TTimer, 'TComponent') do + AddEvent('OnTimer', TfsNotifyEvent); + + AddClass(TTabItem, 'TTextControl'); + with AddClass(TTabControl, 'TStyledControl') do + begin + AddIndexProperty( 'Tabs', 'Integer', 'TTabItem', CallMethod); + AddEvent('OnChange', TfsNotifyEvent); + AddProperty('TabCount', 'Integer', GetProp, nil); + AddProperty('ActiveTab', 'TTabItem', GetProp, SetProp); + end; + + with AddClass(TTreeViewItem, 'TTextControl') do + begin + AddMethod('function ItemByPoint(const X, Y: Single): TTreeViewItem', CallMethod); + AddMethod('function ItemByIndex(const Idx: Integer): TTreeViewItem', CallMethod); + AddMethod('function TreeView: TCustomTreeView', CallMethod); + AddMethod('function Level: Integer', CallMethod); + AddMethod('function ParentItem: TTreeViewItem', CallMethod); + AddIndexProperty( 'Items', 'Integer', 'TTreeViewItem', CallMethod); + AddProperty('GlobalIndex', 'Integer', GetProp, SetProp); + AddProperty('Count', 'Integer', GetProp, nil); + end; + with AddClass(TTreeView, 'TScrollBox') do + begin + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure CollapseAll', CallMethod); + AddMethod('procedure ExpandAll', CallMethod); + AddMethod('function ItemByText(const AText: string): TTreeViewItem', CallMethod); + AddMethod('function ItemByPoint(const X, Y: Single): TTreeViewItem', CallMethod); + AddMethod('function ItemByIndex(const Idx: Integer): TTreeViewItem', CallMethod); + AddMethod('function ItemByGlobalIndex(const Idx: Integer): TTreeViewItem', CallMethod); + AddIndexProperty('Items', 'Integer', 'TTreeViewItem', CallMethod); + AddProperty('Selected', 'TTreeViewItem', GetProp, SetProp); + AddProperty('Count', 'Integer', GetProp, nil); + AddProperty('GlobalCount', 'Integer', GetProp, nil); + AddProperty('CountExpanded', 'Integer', GetProp, nil); + AddEvent('OnChange', TfsNotifyEvent); + AddEvent('OnChangeCheck', TfsNotifyEvent); + AddEvent('OnDragChange', TfsTreeViewDragChange); + end; + + { TODO ADD necessary methods for these calasses } + //AddClass(TCalendar, 'TStyledControl'); + //AddClass(TCalendarBox, 'TTextControl'); + // AddClass(TCalendarEdit, 'TCustomEdit'); + AddClass(TImageViewer, 'TScrollBox'); + AddClass(TPlotGrid, 'TControl'); + AddClass(TDropTarget, 'TTextControl'); + AddClass(TCornerButton, 'TCustomButton'); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + if ClassType = TTabControl then + begin + if MethodName = 'TABS.GET' then + Result := frxInteger(TTabControl(Instance).Tabs[Caller.Params[0]]) + end + else if ClassType = TTreeViewItem then + begin + if MethodName = 'ITEMS.GET' then + Result := frxInteger(TTreeViewItem(Instance).Items[Caller.Params[0]]) + else if MethodName = 'ITEMBYPOINT' then + Result := frxInteger(TTreeViewItem(Instance).ItemByPoint(Single(Caller.Params[0]), Single(Caller.Params[1]))) + else if MethodName = 'ITEMBYINDEX' then + Result := frxInteger(TTreeViewItem(Instance).ItemByIndex(Caller.Params[0])) + else if MethodName = 'TREEVIEW' then + Result := frxInteger(TTreeViewItem(Instance).TreeView) + else if MethodName = 'LEVEL' then + Result := Integer(TTreeViewItem(Instance).Level) + else if MethodName = 'PARENTITEM' then + Result := frxInteger(TTreeViewItem(Instance).ParentItem) + end + else if ClassType = TTreeView then + begin + if MethodName = 'ITEMS.GET' then + Result := frxInteger(TTreeView(Instance).Items[Caller.Params[0]]) + else if MethodName = 'ITEMBYPOINT' then + Result := frxInteger(TTreeView(Instance).ItemByPoint(Single(Caller.Params[0]), Single(Caller.Params[1]))) + else if MethodName = 'ITEMBYINDEX' then + Result := frxInteger(TTreeView(Instance).ItemByIndex(Caller.Params[0])) + else if MethodName = 'ITEMBYTEXT' then + Result := frxInteger(TTreeView(Instance).ItemByText(String(Caller.Params[0]))) + else if MethodName = 'ITEMBYGLOBALINDEX' then + Result := frxInteger(TTreeView(Instance).ItemByGlobalIndex(Caller.Params[0])) + else if MethodName = 'CLEAR' then + TTreeView(Instance).Clear + else if MethodName = 'COLLAPSEALL' then + TTreeView(Instance).CollapseAll + else if MethodName = 'EXPANDALL' then + TTreeView(Instance).ExpandAll + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + if ClassType = TTabControl then + begin + if PropName = 'TABCOUNT' then + Result := TTabControl(Instance).TabCount + else if PropName = 'ACTIVETAB' then + Result := frxInteger(TTabControl(Instance).ActiveTab) + end + else if ClassType = TTreeViewItem then + begin + if PropName = 'GLOBALINDEX' then + Result := TTreeViewItem(Instance).GlobalIndex + else if PropName = 'COUNT' then + Result := TTreeViewItem(Instance).Count + end + else if ClassType = TTreeView then + begin + if PropName = 'SELECTED' then + Result := frxInteger(TTreeView(Instance).Selected) + else if PropName = 'COUNT' then + Result := TTreeView(Instance).Count + else if PropName = 'GLOBALCOUNT' then + Result := TTreeView(Instance).GlobalCount + else if PropName = 'COUNTEXPANDED' then + Result := TTreeView(Instance).CountExpanded + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TTabControl then + begin + if PropName = 'ACTIVETAB' then + TTabControl(Instance).ActiveTab := TTabItem(frxInteger(Value)) + end + else if ClassType = TTreeViewItem then + begin +// if PropName = 'GLOBALINDEX' then +// TTreeViewItem(Instance).GlobalIndex := Value + end + else if ClassType = TTreeView then + begin + if PropName = 'SELECTED' then + TTreeView(Instance).Selected := TTreeViewItem(frxInteger(Value)) + end +end; + +{ TfsTreeViewDragChange } + +procedure TfsTreeViewDragChange.DoEvent(SourceItem, DestItem: TTreeViewItem; + var Allow: Boolean); +begin + CallHandler([SourceItem, DestItem, Allow]); + Allow := Handler.Params[2].Value; +end; + +function TfsTreeViewDragChange.GetMethod: Pointer; +begin + Result := @TfsTreeViewDragChange.DoEvent; +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsExtCtrlsRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX/FMX.fs_iformsrtti.pas b/FastScript/FMX/FMX.fs_iformsrtti.pas new file mode 100644 index 0000000..28da4fa --- /dev/null +++ b/FastScript/FMX/FMX.fs_iformsrtti.pas @@ -0,0 +1,864 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Forms and StdCtrls } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iformsrtti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_ievents, FMX.fs_iclassesrtti, + FMX.fs_igraphicsrtti, FMX.Types, FMX.Controls, FMX.Forms, System.UITypes, System.Types, + FMX.Edit, FMX.Memo, FMX.ListBox, FMX.Layouts +{$IFDEF DELPHI18} + , FMX.StdCtrls +{$ENDIF} +{$IFDEF DELPHI19} + , FMX.Graphics +{$ENDIF} +{$IFDEF DELPHI29} + , FMX.BaseTypeAliases, FMX.FormTypeAliases +{$ENDIF} + ; + +type +{$i frxPlatformsAttribute.inc} + TfsFormsRTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddConst('mrNone', 'Integer', mrNone); + AddConst('mrOk', 'Integer', mrOk); + AddConst('mrCancel', 'Integer', mrCancel); + AddConst('mrAbort', 'Integer', mrAbort); + AddConst('mrRetry', 'Integer', mrRetry); + AddConst('mrIgnore', 'Integer', mrIgnore); + AddConst('mrYes', 'Integer', mrYes); + AddConst('mrNo', 'Integer', mrNo); + AddConst('mrAll', 'Integer', mrAll); + AddConst('mrNoToAll', 'Integer', mrNoToAll); + AddConst('mrYesToAll', 'Integer', mrYesToAll); + + AddConst('crDefault', 'Integer', crDefault); + AddConst('crNone', 'Integer', crNone); + AddConst('crArrow', 'Integer', crArrow); + AddConst('crCross', 'Integer', crCross); + AddConst('crIBeam', 'Integer', crIBeam); + AddConst('crSize', 'Integer', crSize); + AddConst('crSizeNESW', 'Integer', crSizeNESW); + AddConst('crSizeNS', 'Integer', crSizeNS); + AddConst('crSizeNWSE', 'Integer', crSizeNWSE); + AddConst('crSizeWE', 'Integer', crSizeWE); + AddConst('crUpArrow', 'Integer', crUpArrow); + AddConst('crHourGlass', 'Integer', crHourGlass); + AddConst('crDrag', 'Integer', crDrag); + AddConst('crNoDrop', 'Integer', crNoDrop); + AddConst('crHSplit', 'Integer', crHSplit); + AddConst('crVSplit', 'Integer', crVSplit); + AddConst('crMultiDrag', 'Integer', crMultiDrag); + AddConst('crSQLWait', 'Integer', crSQLWait); + AddConst('crNo', 'Integer', crNo); + AddConst('crAppStart', 'Integer', crAppStart); + AddConst('crHelp', 'Integer', crHelp); + AddConst('crHandPoint', 'Integer', crHandPoint); + AddConst('crSizeAll', 'Integer', crSizeAll); + +{$IFDEF CLX} + AddConst('bsNone', 'Integer', fbsNone); + AddConst('bsSingle', 'Integer', fbsSingle); + AddConst('bsSizeable', 'Integer', fbsSizeable); + AddConst('bsDialog', 'Integer', fbsDialog); + AddConst('bsToolWindow', 'Integer', fbsToolWindow); + AddConst('bsSizeToolWin', 'Integer', fbsSizeToolWin); +{$ELSE} + AddConst('bsNone', 'Integer', TFmxFormBorderStyle.bsNone); + AddConst('bsSingle', 'Integer', TFmxFormBorderStyle.bsSingle); + AddConst('bsSizeable', 'Integer', TFmxFormBorderStyle.bsSizeable); + AddConst('bsToolWindow', 'Integer', TFmxFormBorderStyle.bsToolWindow); + AddConst('bsSizeToolWin', 'Integer', TFmxFormBorderStyle.bsSizeToolWin); +{$ENDIF} + + AddConst('VK_RBUTTON', 'Integer', VKRBUTTON); + AddConst('VKCANCEL', 'Integer', VKCANCEL); + AddConst('VKMBUTTON', 'Integer', VKMBUTTON); + AddConst('VKBACK', 'Integer', VKBACK);//Backspace key + AddConst('VKTAB', 'Integer', VKTAB);//Tab key + AddConst('VKRETURN', 'Integer', VKRETURN);//Enter key + AddConst('VKSHIFT', 'Integer', VKSHIFT);//Shift key + AddConst('VKCONTROL', 'Integer', VKCONTROL);//Ctrl key + AddConst('VKMENU', 'Integer', VKMENU);//Alt key + AddConst('VKPAUSE', 'Integer', VKPAUSE);//Pause key + AddConst('VKCAPITAL', 'Integer', VKCAPITAL);//Caps Lock key + AddConst('VKESCAPE', 'Integer', VKESCAPE);//Esc key + AddConst('VKSPACE', 'Integer', VKSPACE);//Space bar + AddConst('VKPRIOR', 'Integer', VKPRIOR);//Page Up key + AddConst('VKNEXT', 'Integer', VKNEXT);// Page Down key + AddConst('VKEND', 'Integer', VKEND);// End key + AddConst('VKHOME', 'Integer', VKHOME);// Home key + AddConst('VKLEFT', 'Integer', VKLEFT);// Left Arrow key + AddConst('VKUP', 'Integer', VKUP);// Up Arrow key + AddConst('VKRIGHT', 'Integer', VKRIGHT);// Right Arrow key + AddConst('VKDOWN', 'Integer', VKDOWN);// Down Arrow key + AddConst('VKINSERT', 'Integer', VKINSERT);// Insert key + AddConst('VKDELETE', 'Integer', VKDELETE);// Delete key + AddConst('VKHELP', 'Integer', VKHELP);// Help key + AddConst('VKLWIN', 'Integer', VKLWIN);// Left Windows key (Microsoft keyboard) + AddConst('VKRWIN', 'Integer', VKRWIN);// Right Windows key (Microsoft keyboard) + AddConst('VKAPPS', 'Integer', VKAPPS);// Applications key (Microsoft keyboard) + AddConst('VKNUMPAD0', 'Integer', VKNUMPAD0);// 0 key (numeric keypad) + AddConst('VKNUMPAD1', 'Integer', VKNUMPAD1);// 1 key (numeric keypad) + AddConst('VKNUMPAD2', 'Integer', VKNUMPAD2);// 2 key (numeric keypad) + AddConst('VKNUMPAD3', 'Integer', VKNUMPAD3);// 3 key (numeric keypad) + AddConst('VKNUMPAD4', 'Integer', VKNUMPAD4);// 4 key (numeric keypad) + AddConst('VKNUMPAD5', 'Integer', VKNUMPAD5);// 5 key (numeric keypad) + AddConst('VKNUMPAD6', 'Integer', VKNUMPAD6);// 6 key (numeric keypad) + AddConst('VKNUMPAD7', 'Integer', VKNUMPAD7);// 7 key (numeric keypad) + AddConst('VKNUMPAD8', 'Integer', VKNUMPAD8);// 8 key (numeric keypad) + AddConst('VKNUMPAD9', 'Integer', VKNUMPAD9);// 9 key (numeric keypad) + AddConst('VKMULTIPLY', 'Integer', VKMULTIPLY);// Multiply key (numeric keypad) + AddConst('VKADD', 'Integer', VKADD);// Add key (numeric keypad) + AddConst('VKSEPARATOR', 'Integer', VKSEPARATOR);// Separator key (numeric keypad) + AddConst('VKSUBTRACT', 'Integer', VKSUBTRACT);// Subtract key (numeric keypad) + AddConst('VKDECIMAL', 'Integer', VKDECIMAL);// Decimal key (numeric keypad) + AddConst('VKDIVIDE', 'Integer', VKDIVIDE);// Divide key (numeric keypad) + AddConst('VKF1', 'Integer', VKF1);// F1 key + AddConst('VKF2', 'Integer', VKF2);// F2 key + AddConst('VKF3', 'Integer', VKF3);// F3 key + AddConst('VKF4', 'Integer', VKF4);// F4 key + AddConst('VKF5', 'Integer', VKF5);// F5 key + AddConst('VKF6', 'Integer', VKF6);// F6 key + AddConst('VKF7', 'Integer', VKF7);// F7 key + AddConst('VKF8', 'Integer', VKF8);// F8 key + AddConst('VKF9', 'Integer', VKF9);// F9 key + AddConst('VKF10', 'Integer', VKF10);// F10 key + AddConst('VKF11', 'Integer', VKF11);// F11 key + AddConst('VKF12', 'Integer', VKF12);// F12 key + AddConst('VKNUMLOCK', 'Integer', VKNUMLOCK);// Num Lock key + AddConst('VKSCROLL', 'Integer', VKSCROLL);// Scroll Lock key + + AddConst('crDefault', 'Integer', crDefault); + AddConst('crNone', 'Integer', crNone); + AddConst('crArrow', 'Integer', crArrow); + AddConst('crCross', 'Integer', crCross); + AddConst('crIBeam', 'Integer', crIBeam); + AddConst('crSize', 'Integer', crSize); + AddConst('crSizeNESW', 'Integer', crSizeNESW); + AddConst('crSizeNS', 'Integer', crSizeNS); + AddConst('crSizeNWSE', 'Integer', crSizeNWSE); + AddConst('crSizeWE', 'Integer', crSizeWE); + AddConst('crUpArrow', 'Integer', crUpArrow); + AddConst('crHourGlass', 'Integer', crHourGlass); + AddConst('crDrag', 'Integer', crDrag); + AddConst('crNoDrop', 'Integer', crNoDrop); + AddConst('crHSplit', 'Integer', crHSplit); + AddConst('crVSplit', 'Integer', crVSplit); + AddConst('crMultiDrag', 'Integer', crMultiDrag); + AddConst('crSQLWait', 'Integer', crSQLWait); + AddConst('crNo', 'Integer', crNo); + AddConst('crAppStart', 'Integer', crAppStart); + AddConst('crHelp', 'Integer', crHelp); + AddConst('crHandPoint', 'Integer', crHandPoint); + AddConst('crSizeAll', 'Integer', crSizeAll); + + AddType('TFormBorderStyle', fvtInt); + AddType('TBorderStyle', fvtInt); + + AddEnumSet('TShiftState', 'ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble, ssTouch, ssPen, ssCommand'); + AddEnum('TAniIndicatorStyle', 'aiLinear, aiCircular'); + AddEnum('TAlign', 'alNone, alTop, alBottom, alLeft, alRight, alClient'); + AddEnum('TMouseButton', 'mbLeft, mbRight, mbMiddle'); + AddEnumSet('TAnchors', 'akLeft, akTop, akRight, akBottom'); + AddEnum('TBevelCut', 'bvNone, bvLowered, bvRaised, bvSpace'); + AddEnum('TTextLayout', 'tlTop, tlCenter, tlBottom'); + AddEnum('TEditCharCase', 'ecNormal, ecUpperCase, ecLowerCase'); + AddEnum('TScrollStyle', 'ssNone, ssHorizontal, ssVertical, ssBoth'); + AddEnum('TComboBoxStyle', 'csDropDown, csSimple, csDropDownList, csOwnerDrawFixed, csOwnerDrawVariable'); + AddEnum('TCheckBoxState', 'cbUnchecked, cbChecked, cbGrayed'); + AddEnum('TListBoxStyle', 'lbStandard, lbOwnerDrawFixed, lbOwnerDrawVariable'); + AddEnum('TWindowState', 'wsNormal, wsMinimized, wsMaximized'); + AddEnum('TFormStyle', 'fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop'); + AddEnumSet('TBorderIcons', 'biSystemMenu, biMinimize, biMaximize, biHelp'); + AddEnum('TFormPosition', 'poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter, poDesktopCenter'); + AddEnum('TCloseAction', 'caNone, caHide, caFree, caMinimize'); + + with AddClass(TControl, 'TFmxObject') do + begin + AddMethod('procedure AddObject(AObject: TFmxObject)', CallMethod); + AddMethod('procedure RemoveObject(AObject: TFmxObject)', CallMethod); + AddMethod('procedure SetBounds(X: Single; Y: Single; AWidth: Single; AHeight: Single)', CallMethod); + AddMethod('function AbsoluteToLocal(P: TfsPointF): TfsPointF', CallMethod); + AddMethod('function LocalToAbsolute(P: TfsPointF): TfsPointF', CallMethod); + AddMethod('function AbsoluteToLocalVector(P: TfsVector): TfsVector', CallMethod); + AddMethod('function LocalToAbsoluteVector(P: TfsVector): TfsVector', CallMethod); + AddMethod('function PointInObject(X: Single; Y: Single): Boolean', CallMethod); + AddMethod('procedure BeginUpdate()', CallMethod); + AddMethod('procedure EndUpdate()', CallMethod); +{$IFNDEF DELPHI18} + AddMethod('procedure ApplyEffect()', CallMethod); +{$ENDIF} + AddMethod('procedure UpdateEffects()', CallMethod); + AddMethod('procedure SetFocus()', CallMethod); + AddMethod('procedure PaintTo(ACanvas: TCanvas; ARect: TFsRectF; AParent: TFmxObject)', CallMethod); + AddMethod('procedure Repaint()', CallMethod); + AddMethod('procedure InvalidateRect(ARect: TfsRectF)', CallMethod); + AddMethod('procedure Lock()', CallMethod); + AddProperty('AbsoluteMatrix', 'TfsMatrix', GetProp, nil); + AddProperty('AbsoluteOpacity', 'Single', GetProp, nil); + AddProperty('AbsoluteWidth', 'Single', GetProp, nil); + AddProperty('AbsoluteHeight', 'Single', GetProp, nil); + AddProperty('AbsoluteScale', 'TfsPointF', GetProp, nil); + AddProperty('AbsoluteEnabled', 'Boolean', GetProp, nil); + AddProperty('HasEffect', 'Boolean', GetProp, nil); + AddProperty('HasDisablePaintEffect', 'Boolean', GetProp, nil); + AddProperty('HasAfterPaintEffect', 'Boolean', GetProp, nil); + AddProperty('ChildrenRect', 'TfsRectF', GetProp, nil); + AddProperty('InvertAbsoluteMatrix', 'TfsMatrix', GetProp, nil); + AddProperty('InPaintTo', 'Boolean', GetProp, nil); + AddProperty('LocalRect', 'TfsRectF', GetProp, nil); + AddProperty('AbsoluteRect', 'TfsRectF', GetProp, nil); + AddProperty('UpdateRect', 'TfsRectF', GetProp, nil); + AddProperty('ParentedRect', 'TfsRectF', GetProp, nil); + AddProperty('ParentedVisible', 'Boolean', GetProp, nil); + AddProperty('ClipRect', 'TfsRectF', GetProp, nil); + AddProperty('Canvas', 'TCanvas', GetProp, nil); + AddProperty('AutoCapture', 'Boolean', GetProp, SetProp); + AddProperty('CanFocus', 'Boolean', GetProp, SetProp); + AddProperty('DisableFocusEffect', 'Boolean', GetProp, SetProp); + AddProperty('TabOrder', 'Integer', GetProp, SetProp); + AddProperty('BoundsRect', 'TfsRectF', GetProp, SetProp); + AddEvent('OnDragEnter', TfsDragDropEvent); + AddEvent('OnDragLeave', TfsNotifyEvent); + AddEvent('OnDragOver', TfsDragOverEvent); + AddEvent('OnDragDrop', TfsDragDropEvent); + AddEvent('OnDragEnd', TfsNotifyEvent); + AddEvent('OnKeyDown', TfsKeyEvent); + AddEvent('OnKeyUp', TfsKeyEvent); + AddEvent('OnClick', TfsNotifyEvent); + AddEvent('OnDblClick', TfsNotifyEvent); + AddEvent('OnCanFocus', TfsCanFocusEvent); + AddEvent('OnEnter', TfsNotifyEvent); + AddEvent('OnExit', TfsNotifyEvent); + AddEvent('OnMouseDown', TfsMouseEvent); + AddEvent('OnMouseMove', TfsMouseMoveEvent); + AddEvent('OnMouseUp', TfsMouseEvent); + AddEvent('OnMouseWheel', TfsMouseWheelEvent); + AddEvent('OnMouseEnter', TfsNotifyEvent); + AddEvent('OnMouseLeave', TfsNotifyEvent); + AddEvent('OnPainting', TfsOnPaintEvent); + AddEvent('OnPaint', TfsOnPaintEvent); + AddEvent('OnResize', TfsNotifyEvent); + AddEvent('OnApplyStyleLookup', TfsNotifyEvent); + end; + + { standard controls } + with AddClass(TStyledControl, 'TControl') do + begin + AddMethod('function FindStyleResource(AStyleLookup: string): TFmxObject', CallMethod); + AddMethod('procedure ApplyStyleLookup()', CallMethod); +{$IFNDEF DELPHI20} + AddMethod('procedure UpdateStyle()', CallMethod); +{$ENDIF} + AddProperty('StyleLookup', 'String', GetProp, SetProp); + end; + + AddClass(TStyledControl, 'TControl'); + AddClass(TTextControl, 'TStyledControl'); + AddClass(TPanel, 'TStyledControl'); + AddClass(TCalloutPanel, 'TPanel'); + AddClass(TLabel, 'TTextControl'); + AddClass(TCustomButton, 'TTextControl'); + AddClass(TButton, 'TCustomButton'); + AddClass(TSpeedButton, 'TCustomButton'); + with AddClass(TCheckBox, 'TTextControl') do + AddEvent('OnChange', TfsNotifyEvent); + + with AddClass(TRadioButton, 'TTextControl') do + AddEvent('OnChange', TfsNotifyEvent); + AddClass(TGroupBox, 'TTextControl'); + AddClass(TStatusBar, 'TStyledControl'); + AddClass(TToolBar, 'TStyledControl'); + AddClass(TSizeGrip, 'TStyledControl'); + AddClass(TSplitter, 'TStyledControl'); + AddClass(TProgressBar, 'TStyledControl'); + AddClass(TThumb, 'TStyledControl'); + with AddClass(TCustomTrack, 'TStyledControl') do + begin + AddEvent('OnChange', TfsNotifyEvent); + AddEvent('OnTracking', TfsNotifyEvent); + end; + AddClass(TTrack, 'TCustomTrack'); + AddClass(TTrackBar, 'TCustomTrack'); + AddClass(TBitmapTrackBar, 'TTrackBar'); + with AddClass(TSwitch, 'TCustomTrack') do + AddEvent('OnSwitch', TfsNotifyEvent); + with AddClass(TScrollBar, 'TStyledControl') do + AddEvent('OnChange', TfsNotifyEvent); + + AddClass(TSmallScrollBar, 'TScrollBar'); + AddClass(TAniIndicator, 'TStyledControl'); + with AddClass(TArcDial, 'TStyledControl') do + AddEvent('OnChange', TfsNotifyEvent); + AddClass(TExpanderButton, 'TCustomButton'); + with AddClass(TExpander, 'TTextControl') do + AddEvent('OnCheckChange', TfsNotifyEvent); + with AddClass(TImageControl, 'TStyledControl') do + AddEvent('OnChange', TfsNotifyEvent); + AddClass(TPathLabel, 'TStyledControl'); + + + with AddClass(TCustomEdit, 'TStyledControl') do + begin +{$IFNDEF Delphi21} + AddMethod('procedure ClearSelection()', CallMethod); +{$ENDIF} + AddMethod('procedure CopyToClipboard()', CallMethod); + AddMethod('procedure CutToClipboard()', CallMethod); + AddMethod('procedure PasteFromClipboard()', CallMethod); + AddMethod('procedure SelectAll()', CallMethod); +{$IFNDEF Delphi21} + AddMethod('function GetCharX(a: Integer): Single', CallMethod); + AddMethod('function ContentRect(): TfsRectF', CallMethod); +{$ENDIF} + AddProperty('CaretPosition', 'Integer', GetProp, SetProp); + AddProperty('SelStart', 'Integer', GetProp, SetProp); + AddProperty('SelLength', 'Integer', GetProp, SetProp); + AddProperty('SelText', 'string', GetProp, nil); + AddProperty('MaxLength', 'Integer', GetProp, SetProp); + AddProperty('SelectionFill', 'TBrush', GetProp, nil); + AddProperty('FilterChar', 'string', GetProp, SetProp); + AddProperty('Typing', 'Boolean', GetProp, SetProp); + AddEvent('OnChange', TfsNotifyEvent); + AddEvent('OnChangeTracking', TfsNotifyEvent); + AddEvent('OnTyping', TfsNotifyEvent); + end; + AddClass(TEdit, 'TCustomEdit'); + with AddClass(TMemo, 'TScrollBox') do + begin + AddMethod('procedure CopyToClipboard()', CallMethod); + AddMethod('procedure PasteFromClipboard()', CallMethod); + AddMethod('procedure CutToClipboard()', CallMethod); + AddMethod('procedure ClearSelection()', CallMethod); + AddMethod('procedure SelectAll()', CallMethod); + AddMethod('procedure GoToTextEnd()', CallMethod); + AddMethod('procedure GoToTextBegin()', CallMethod); + AddMethod('procedure GotoLineEnd()', CallMethod); + AddMethod('procedure GoToLineBegin()', CallMethod); + AddMethod('procedure UnDo()', CallMethod); + AddProperty('SelStart', 'Integer', GetProp, SetProp); + AddProperty('SelLength', 'Integer', GetProp, SetProp); + AddProperty('SelText', 'string', GetProp, nil); + AddEvent('OnChange', TfsNotifyEvent); + AddEvent('OnChangeTracking', TfsNotifyEvent); + end; + + AddClass(TRadioButton, 'TTextControl'); + with AddClass(TListBoxItem, 'TTextControl') do + begin + AddProperty('Data', 'TObject', GetProp, SetProp); + AddProperty('Index', 'Integer', GetProp, SetProp); + end; + + with AddClass(TCustomListBox, 'TScrollBox') do + begin + AddMethod('procedure Clear()', CallMethod); + AddMethod('function DragChange(SourceItem: TListBoxItem; DestItem: TListBoxItem): Boolean', CallMethod); + AddMethod('procedure SelectAll()', CallMethod); + AddMethod('procedure ClearSelection()', CallMethod); + AddMethod('procedure SelectRange(Item1: TListBoxItem; Item2: TListBoxItem)', CallMethod); + AddMethod('function ItemByPoint(X: Single; Y: Single): TListBoxItem', CallMethod); + AddMethod('function ItemByIndex(Idx: Integer): TListBoxItem', CallMethod); + AddMethod('procedure Exchange(Item1: TListBoxItem; Item2: TListBoxItem)', CallMethod); + AddMethod('procedure AddObject(AObject: TFmxObject)', CallMethod); + AddMethod('procedure InsertObject(Index: Integer; AObject: TFmxObject)', CallMethod); + AddMethod('procedure RemoveObject(AObject: TFmxObject)', CallMethod); + AddIndexProperty( 'ListItems', 'Integer', 'TListBoxItem', CallMethod); + AddProperty('Count', 'Integer', GetProp, nil); + AddProperty('Selected', 'TListBoxItem', GetProp, nil); + AddProperty('Items', 'TStrings', GetProp, SetProp); + AddProperty('ItemIndex', 'Integer', GetProp, SetProp); + end; + + AddClass(TListBox, 'TCustomListBox'); + with AddClass(TCustomComboBox, 'TStyledControl') do + begin + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure DropDown', CallMethod); + AddIndexProperty( 'ListItems', 'Integer', 'TListBoxItem', CallMethod); + AddProperty('Count', 'Integer', GetProp, nil); + AddProperty('Selected', 'TListBoxItem', GetProp, nil); + AddProperty('Items', 'TStrings', GetProp, SetProp); + AddProperty('ItemIndex', 'Integer', GetProp, SetProp); + AddEvent('OnDropDown', TfsNotifyEvent); + AddEvent('OnCloseUp', TfsNotifyEvent); + end; + + with AddClass(TComboBox, 'TCustomComboBox') do + AddEvent('OnChange', TfsNotifyEvent); + + with AddClass(TCommonCustomForm, 'TFmxObject') do + begin + AddConstructor('constructor CreateNew(AOwner: TComponent; Dummy: Integer = 0)', CallMethod); + AddMethod('procedure SetBounds(ALeft: Integer; ATop: Integer; AWidth: Integer; AHeight: Integer)', CallMethod); + AddMethod('function ClientToScreen(Point: TfsPointF): TfsPointF', CallMethod); + AddMethod('function ScreenToClient(Point: TfsPointF): TfsPointF', CallMethod); + AddMethod('function CloseQuery(): Boolean', CallMethod); + AddMethod('function ClientRect(): TfsRectF', CallMethod); + AddMethod('procedure Release()', CallMethod); + AddMethod('procedure Close()', CallMethod); + AddMethod('procedure Show()', CallMethod); + AddMethod('procedure Hide()', CallMethod); + AddMethod('function ShowModal(): Integer', CallMethod); + AddMethod('procedure CloseModal()', CallMethod); + AddMethod('procedure Invalidate()', CallMethod); + AddMethod('procedure BeginUpdate()', CallMethod); + AddMethod('procedure EndUpdate()', CallMethod); + end; + + with AddClass(TCustomForm, 'TCommonCustomForm') do + begin + AddEvent('OnActivate', TfsNotifyEvent); + AddEvent('OnClose', TfsCloseEvent); + AddEvent('OnCloseQuery', TfsCloseQueryEvent); + AddEvent('OnCreate', TfsNotifyEvent); + AddEvent('OnDestroy', TfsNotifyEvent); + AddEvent('OnDeactivate', TfsNotifyEvent); + AddEvent('OnHide', TfsNotifyEvent); + AddEvent('OnPaint', TfsNotifyEvent); + AddEvent('OnShow', TfsNotifyEvent); + AddEvent('OnResize', TfsNotifyEvent); + AddProperty('Canvas', 'TCanvas', GetProp, nil); + AddProperty('ModalResult', 'Integer', GetProp, SetProp); + end; + AddClass(TForm, 'TCustomForm'); + + AddClass(TDataModule, 'TComponent'); + with AddClass(TApplication, 'TComponent') do + begin + AddMethod('procedure ProcessMessages', CallMethod); + end; + AddObject('Application', Application); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + Form: TCommonCustomForm; +begin + Result := 0; + + if ClassType = TControl then + begin + if MethodName = 'ADDOBJECT' then + TControl(Instance).AddObject(TFmxObject(frxInteger(Caller.Params[0]))) + else if MethodName = 'REMOVEOBJECT' then + TControl(Instance).RemoveObject(TFmxObject(frxInteger(Caller.Params[0]))) + else if MethodName = 'SETBOUNDS' then + TControl(Instance).SetBounds(Single(Caller.Params[0]), Single(Caller.Params[1]), Single(Caller.Params[2]), Single(Caller.Params[3])) + else if MethodName = 'ABSOLUTETOLOCAL' then + Result := frxInteger(TfsPointF.Create(TControl(Instance).AbsoluteToLocal(TfsPointF(frxInteger(Caller.Params[0])).GetRect))) + else if MethodName = 'LOCALTOABSOLUTE' then + Result := frxInteger(TfsPointF.Create(TControl(Instance).LocalToAbsolute(TfsPointF(frxInteger(Caller.Params[0])).GetRect))) + else if MethodName = 'ABSOLUTETOLOCALVECTOR' then + Result := frxInteger(TfsVector.Create(TControl(Instance).AbsoluteToLocalVector(TfsVector(frxInteger(Caller.Params[0])).GetRect))) + else if MethodName = 'LOCALTOABSOLUTEVECTOR' then + Result := frxInteger(TfsVector.Create(TControl(Instance).LocalToAbsoluteVector(TfsVector(frxInteger(Caller.Params[0])).GetRect))) + else if MethodName = 'POINTINOBJECT' then + Result := Boolean(TControl(Instance).PointInObject(Single(Caller.Params[0]), Single(Caller.Params[1]))) + else if MethodName = 'BEGINUPDATE' then + TControl(Instance).BeginUpdate() + else if MethodName = 'ENDUPDATE' then + TControl(Instance).EndUpdate() +{$IFNDEF DELPHI18} + else if MethodName = 'APPLYEFFECT' then + TControl(Instance).ApplyEffect() +{$ENDIF} + else if MethodName = 'UPDATEEFFECTS' then + TControl(Instance).UpdateEffects() + else if MethodName = 'SETFOCUS' then + TControl(Instance).SetFocus() + else if MethodName = 'PAINTTO' then + TControl(Instance).PaintTo(TCanvas(frxInteger(Caller.Params[0])), TfsRectF(frxInteger(Caller.Params[1])).GetRect, TFmxObject(frxInteger(Caller.Params[2]))) + else if MethodName = 'REPAINT' then + TControl(Instance).Repaint() + else if MethodName = 'INVALIDATERECT' then + TControl(Instance).InvalidateRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect) + else if MethodName = 'LOCK' then + TControl(Instance).Lock() + end + else if ClassType = TStyledControl then + begin + if MethodName = 'FINDSTYLERESOURCE' then + Result := frxInteger(TStyledControl(Instance).FindStyleResource(String(Caller.Params[0]))) + else if MethodName = 'APPLYSTYLELOOKUP' then + TStyledControl(Instance).ApplyStyleLookup() +{$IFNDEF DELPHI20} + else if MethodName = 'UPDATESTYLE' then + TStyledControl(Instance).UpdateStyle() +{$ENDIF} + end + else if ClassType = TCustomEdit then + begin + {$IFNDEF Delphi21} + if MethodName = 'CLEARSELECTION' then + TCustomEdit(Instance).ClearSelection() + else +{$ENDIF} + if MethodName = 'COPYTOCLIPBOARD' then + TCustomEdit(Instance).CopyToClipboard() + else if MethodName = 'CUTTOCLIPBOARD' then + TCustomEdit(Instance).CutToClipboard() + else if MethodName = 'PASTEFROMCLIPBOARD' then + TCustomEdit(Instance).PasteFromClipboard() + else if MethodName = 'SELECTALL' then + TCustomEdit(Instance).SelectAll() +{$IFNDEF Delphi21} + else if MethodName = 'GETCHARX' then + Result := Single(TCustomEdit(Instance).GetCharX(Integer(Caller.Params[0]))) + else if MethodName = 'CONTENTRECT' then + Result := frxInteger(TfsRectF.Create(TCustomEdit(Instance).ContentRect())) +{$ENDIF} + end + else if ClassType = TMemo then + begin + if MethodName = 'COPYTOCLIPBOARD' then + TMemo(Instance).CopyToClipboard() + else if MethodName = 'PASTEFROMCLIPBOARD' then + TMemo(Instance).PasteFromClipboard() + else if MethodName = 'CUTTOCLIPBOARD' then + TMemo(Instance).CutToClipboard() + else if MethodName = 'CLEARSELECTION' then + TMemo(Instance).ClearSelection() + else if MethodName = 'SELECTALL' then + TMemo(Instance).SelectAll() + else if MethodName = 'GOTOTEXTEND' then + TMemo(Instance).GoToTextEnd() + else if MethodName = 'GOTOTEXTBEGIN' then + TMemo(Instance).GoToTextBegin() + else if MethodName = 'GOTOLINEEND' then + TMemo(Instance).GotoLineEnd() + else if MethodName = 'GOTOLINEBEGIN' then + TMemo(Instance).GoToLineBegin() + else if MethodName = 'UNDO' then + TMemo(Instance).UnDo() + end + else if ClassType = TCustomListBox then + begin + if MethodName = 'ASSIGN' then + TCustomListBox(Instance).Assign(TPersistent(frxInteger(Caller.Params[0]))) + else if MethodName = 'CLEAR' then + TCustomListBox(Instance).Clear() + else if MethodName = 'DRAGCHANGE' then + Result := TCustomListBox(Instance).DragChange(TListBoxItem(frxInteger(Caller.Params[0])), TListBoxItem(frxInteger(Caller.Params[1]))) + else if MethodName = 'SELECTALL' then + TCustomListBox(Instance).SelectAll() + else if MethodName = 'CLEARSELECTION' then + TCustomListBox(Instance).ClearSelection() + else if MethodName = 'SELECTRANGE' then + TCustomListBox(Instance).SelectRange(TListBoxItem(frxInteger(Caller.Params[0])), TListBoxItem(frxInteger(Caller.Params[1]))) + else if MethodName = 'ITEMBYPOINT' then + Result := frxInteger(TListBoxItem(TCustomListBox(Instance).ItemByPoint(Single(Caller.Params[0]), Single(Caller.Params[1])))) + else if MethodName = 'ITEMBYINDEX' then + Result := frxInteger(TListBoxItem(TCustomListBox(Instance).ItemByIndex(Integer(Caller.Params[0])))) + else if MethodName = 'EXCHANGE' then + TCustomListBox(Instance).Exchange(TListBoxItem(frxInteger(Caller.Params[0])), TListBoxItem(frxInteger(Caller.Params[1]))) + else if MethodName = 'ADDOBJECT' then + TCustomListBox(Instance).AddObject(TFmxObject(frxInteger(Caller.Params[0]))) + else if MethodName = 'INSERTOBJECT' then + TCustomListBox(Instance).InsertObject(Integer(Caller.Params[0]), TFmxObject(frxInteger(Caller.Params[1]))) + else if MethodName = 'REMOVEOBJECT' then + TCustomListBox(Instance).RemoveObject(TFmxObject(frxInteger(Caller.Params[0]))) + else if MethodName = 'LISTITEMS.GET' then + Result := frxInteger(TCustomListBox(Instance).ListItems[Caller.Params[0]]) + end + else if ClassType = TCustomComboBox then + begin + if MethodName = 'CLEAR' then + TCustomComboBox(Instance).Clear() + else if MethodName = 'DROPDOWN' then + TCustomComboBox(Instance).DropDown() + else if MethodName = 'LISTITEMS.GET' then + Result := frxInteger(TCustomComboBox(Instance).ListItems[Caller.Params[0]]) + end + else if ClassType = TCommonCustomForm then + begin + Form := TCommonCustomForm(Instance); + if MethodName = 'CREATENEW' then + Result := frxInteger(Form.CreateNew(TComponent(frxInteger(Caller.Params[0])), Integer(Caller.Params[1]))) + else if MethodName = 'SETBOUNDS' then + Form.SetBounds(Integer(Caller.Params[0]), Integer(Caller.Params[1]), Integer(Caller.Params[2]), Integer(Caller.Params[3])) + else if MethodName = 'CLIENTTOSCREEN' then + Result := frxInteger(TfsPointF.Create(Form.ClientToScreen(TfsPointF(frxInteger(Caller.Params[0])).GetRect))) + else if MethodName = 'SCREENTOCLIENT' then + Result := frxInteger(TfsPointF.Create(Form.ScreenToClient(TfsPointF(frxInteger(Caller.Params[0])).GetRect))) + else if MethodName = 'CLOSEQUERY' then + Result := Form.CloseQuery + else if MethodName = 'CLIENTRECT' then + Result := frxInteger(TfsRectF.Create(Form.ClientRect)) + else if MethodName = 'RELEASE' then + Form.Release() + else if MethodName = 'CLOSE' then + Form.Close() + else if MethodName = 'SHOW' then + Form.Show() + else if MethodName = 'HIDE' then + Form.Hide() + else if MethodName = 'SHOWMODAL' then + Result := Integer(Form.ShowModal) + else if MethodName = 'CLOSEMODAL' then + Form.CloseModal() + else if MethodName = 'INVALIDATE' then + Form.Invalidate() + else if MethodName = 'BEGINUPDATE' then + Form.BeginUpdate() + else if MethodName = 'ENDUPDATE' then + Form.EndUpdate() + end + else if ClassType = TApplication then + begin + if MethodName = 'PROCESSMESSAGES' then + TApplication(Instance).ProcessMessages + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TControl then + begin + if PropName = 'ABSOLUTEMATRIX' then + Result := frxInteger(TfsMatrix.Create(TControl(Instance).AbsoluteMatrix)) + else if PropName = 'ABSOLUTEOPACITY' then + Result := TControl(Instance).AbsoluteOpacity + else if PropName = 'ABSOLUTEWIDTH' then + Result := TControl(Instance).AbsoluteWidth + else if PropName = 'ABSOLUTEHEIGHT' then + Result := TControl(Instance).AbsoluteHeight + else if PropName = 'ABSOLUTESCALE' then + Result := frxInteger(TfsPointF.Create(TControl(Instance).AbsoluteScale)) + else if PropName = 'ABSOLUTEENABLED' then + Result := TControl(Instance).AbsoluteEnabled + else if PropName = 'HASEFFECT' then + Result := TControl(Instance).HasEffect + else if PropName = 'HASDISABLEPAINTEFFECT' then + Result := TControl(Instance).HasDisablePaintEffect + else if PropName = 'HASAFTERPAINTEFFECT' then + Result := TControl(Instance).HasAfterPaintEffect + else if PropName = 'CHILDRENRECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).ChildrenRect)) + else if PropName = 'INVERTABSOLUTEMATRIX' then + Result := frxInteger(TfsMatrix.Create(TControl(Instance).InvertAbsoluteMatrix)) + else if PropName = 'INPAINTTO' then + Result := TControl(Instance).InPaintTo + else if PropName = 'LOCALRECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).LocalRect)) + else if PropName = 'ABSOLUTERECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).AbsoluteRect)) + else if PropName = 'UPDATERECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).UpdateRect)) + else if PropName = 'PARENTEDRECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).ParentedRect)) + else if PropName = 'PARENTEDVISIBLE' then + Result := TControl(Instance).ParentedVisible + else if PropName = 'CLIPRECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).ClipRect)) + else if PropName = 'CANVAS' then + Result := frxInteger(TControl(Instance).Canvas) + else if PropName = 'AUTOCAPTURE' then + Result := TControl(Instance).AutoCapture + else if PropName = 'CANFOCUS' then + Result := TControl(Instance).CanFocus + else if PropName = 'DISABLEFOCUSEFFECT' then + Result := TControl(Instance).DisableFocusEffect + else if PropName = 'TABORDER' then + Result := Integer(TControl(Instance).TabOrder) + else if PropName = 'BOUNDSRECT' then + Result := frxInteger(TfsRectF.Create(TControl(Instance).BoundsRect)) + end + else if ClassType = TStyledControl then + begin + if PropName = 'STYLELOOKUP' then + Result := TStyledControl(Instance).StyleLookup + end + else if ClassType = TCustomEdit then + begin + if PropName = 'CARETPOSITION' then + Result := TCustomEdit(Instance).CaretPosition + else if PropName = 'SELSTART' then + Result := TCustomEdit(Instance).SelStart + else if PropName = 'SELLENGTH' then + Result := TCustomEdit(Instance).SelLength + else if PropName = 'SELTEXT' then + Result := String(TCustomEdit(Instance).SelText) + else if PropName = 'MAXLENGTH' then + Result := TCustomEdit(Instance).MaxLength + else if PropName = 'SELECTIONFILL' then + Result := frxInteger(TCustomEdit(Instance).SelectionFill) + else if PropName = 'FILTERCHAR' then + Result := TCustomEdit(Instance).FilterChar + else if PropName = 'TYPING' then + Result := TCustomEdit(Instance).Typing + end + else if ClassType = TMemo then + begin + if PropName = 'SELSTART' then + Result := TMemo(Instance).SelStart + else if PropName = 'SELLENGTH' then + Result := TMemo(Instance).SelLength + else if PropName = 'SELTEXT' then + Result := String(TMemo(Instance).SelText) + end + else if ClassType = TListBoxItem then + begin + if PropName = 'DATA' then + Result := frxInteger(TListBoxItem(Instance).Data) + else if PropName = 'INDEX' then + Result := TListBoxItem(Instance).Index + end + else if ClassType = TCustomListBox then + begin + if PropName = 'COUNT' then + Result := TCustomListBox(Instance).Count + else if PropName = 'SELECTED' then + Result := frxInteger(TCustomListBox(Instance).Selected) + else if PropName = 'ITEMS' then + Result := frxInteger(TCustomListBox(Instance).Items) + else if PropName = 'ITEMINDEX' then + Result := TCustomListBox(Instance).ItemIndex + end + else if ClassType = TCustomComboBox then + begin + if PropName = 'COUNT' then + Result := TCustomComboBox(Instance).Count + else if PropName = 'SELECTED' then + Result := frxInteger(TCustomComboBox(Instance).Selected) + else if PropName = 'ITEMS' then + Result := frxInteger(TCustomComboBox(Instance).Items) + else if PropName = 'ITEMINDEX' then + Result := TCustomComboBox(Instance).ItemIndex + end + else if ClassType = TCustomForm then + begin + if PropName = 'MODALRESULT' then + Result := TCustomForm(Instance).ModalResult + else if PropName = 'CANVAS' then + Result := frxInteger(TCustomForm(Instance).Canvas) + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TControl then + begin + if PropName = 'AUTOCAPTURE' then + TControl(Instance).AutoCapture := Boolean(Value) + else if PropName = 'CANFOCUS' then + TControl(Instance).CanFocus := Boolean(Value) + else if PropName = 'DISABLEFOCUSEFFECT' then + TControl(Instance).DisableFocusEffect := Boolean(Value) + else if PropName = 'TABORDER' then + TControl(Instance).TabOrder := TTabOrder(Integer(Value)) + else if PropName = 'BOUNDSRECT' then + TControl(Instance).BoundsRect := TfsRectF(frxInteger(Value)).GetRect + end + else if ClassType = TStyledControl then + begin + if PropName = 'STYLELOOKUP' then + TStyledControl(Instance).StyleLookup := Value; + end + else if ClassType = TCustomEdit then + begin + if PropName = 'CARETPOSITION' then + TCustomEdit(Instance).CaretPosition := Integer(Value) + else if PropName = 'SELSTART' then + TCustomEdit(Instance).SelStart := Integer(Value) + else if PropName = 'SELLENGTH' then + TCustomEdit(Instance).SelLength := Integer(Value) + else if PropName = 'MAXLENGTH' then + TCustomEdit(Instance).MaxLength := Integer(Value) + else if PropName = 'FILTERCHAR' then + TCustomEdit(Instance).FilterChar := String(Value) + else if PropName = 'TYPING' then + TCustomEdit(Instance).Typing := Boolean(Value) + end + else if ClassType = TMemo then + begin + if PropName = 'SELSTART' then + TMemo(Instance).SelStart := Integer(Value) + else if PropName = 'SELLENGTH' then + TMemo(Instance).SelLength := Integer(Value) + end + else if ClassType = TListBoxItem then + begin + if PropName = 'DATA' then + TListBoxItem(Instance).Data := TObject(frxInteger(Value)) + else if PropName = 'INDEX' then + TListBoxItem(Instance).Index := Value + end + else if ClassType = TCustomListBox then + begin + if PropName = 'ITEMS' then + TCustomListBox(Instance).Items := TStrings(frxInteger(Value)) + else if PropName = 'ITEMINDEX' then + TCustomListBox(Instance).ItemIndex := Value + end + else if ClassType = TCustomComboBox then + begin + if PropName = 'ITEMS' then + TCustomComboBox(Instance).Items := TStrings(frxInteger(Value)) + else if PropName = 'ITEMINDEX' then + TCustomComboBox(Instance).ItemIndex := Value + end + else if ClassType = TCustomForm then + begin + if PropName = 'MODALRESULT' then + TCustomForm(Instance).ModalResult := Value + end +end; + + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsFormsRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX/FMX.fs_igraphicsrtti.pas b/FastScript/FMX/FMX.fs_igraphicsrtti.pas new file mode 100644 index 0000000..ec1c1a3 --- /dev/null +++ b/FastScript/FMX/FMX.fs_igraphicsrtti.pas @@ -0,0 +1,522 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Graphics.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_igraphicsrtti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_iclassesrtti +, FMX.Types, FMX.Objects, System.UITypes, System.UIConsts, System.Types, System.Variants +{$IFDEF DELPHI19} + , FMX.Graphics +{$ENDIF} +{$IFDEF DELPHI20} + , System.Math.Vectors +{$ENDIF} +{$IFDEF DELPHI29} + , FMX.BaseTypeAliases +{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsGraphicsRTTI = class(TComponent); // fake component + + +implementation + +type + + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + procedure GetColorProc(const Name: String); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + GetAlphaColorValues(GetColorProc); + AddType('TAlignment', fvtInt); + AddType('TLeftRight', fvtInt); + AddConst('taLeftJustify', 'Integer', taLeftJustify); + AddConst('taRightJustify', 'Integer', taRightJustify); + AddConst('taCenter', 'Integer', taCenter); + AddType('TVerticalAlignment', fvtInt); + AddConst('taAlignTop', 'Integer', taAlignTop); + AddConst('taAlignBottom', 'Integer', taAlignBottom); + AddConst('taVerticalCenter', 'Integer', taVerticalCenter); + //AddEnum('TAlignment', 'taLeftJustify, taRightJustify, taCenter'); + AddType('TCorners ', fvtInt); + AddConst('crTopLeft', 'Integer', TCorner.crTopLeft); + AddConst('crTopRight', 'Integer', TCorner.crTopRight); + AddConst('crBottomLeft', 'Integer', TCorner.crBottomLeft); + AddConst('crBottomRight', 'Integer', TCorner.crBottomRight); + AddType('TSides ', fvtInt); + AddConst('sdTop', 'Integer', TSide.sdTop); + AddConst('sdLeft', 'Integer', TSide.sdLeft); + AddConst('sdBottom', 'Integer', TSide.sdBottom); + AddConst('sdRight', 'Integer', TSide.sdRight); + AddConst('ftRightToLeft', 'Integer', TFillTextFlag.ftRightToLeft); + AddType('TFillTextFlags ', fvtInt); + AddEnumSet('TFontStyles', 'fsBold, fsItalic, fsUnderline, fsStrikeout'); + AddEnum('TFontPitch', 'fpDefault, fpVariable, fpFixed'); + AddEnum('TFontQuality', 'fqDefault, fqDraft, fqProof, fqNonAntialiased, fqAntialiased, fqClearType, fqClearTypeNatural'); + AddEnum('TGradientStyle', 'gsLinear, gsRadial'); + AddEnum('TWrapMode', 'wmTile, wmTileOriginal, wmTileStretch'); + AddEnum('TCornerType', 'ctRound, ctBevel, ctInnerRound, ctInnerLine'); + AddEnum('TAlignLayout', 'alNone, alTop, alLeft, alRight, alBottom, alMostTop, alMostBottom, alMostLeft, alMostRight, alClient, alContents, alCenter, alVertCenter, alHorzCenter, alHorizontal, alVertical, alScale, alFit, alFitLeft, alFitRight'); + AddEnum('TPathPointKind', 'ppMoveTo, ppLineTo, ppCurveTo, ppClose'); + AddEnum('TStrokeCap', 'scFlat, scRound'); + AddEnum('TStrokeJoin', 'sjMiter, sjRound, sjBevel'); + AddEnum('TStrokeDash', 'sdSolid, sdDash, sdDot, sdDashDot, sdDashDotDot, sdCustom'); + + AddEnum('TBrushKind', 'bkNone, bkSolid, bkGradient, bkBitmap, bkResource, bkGrab'); + + AddClass(TfsMatrix, 'TPersistent'); + with AddClass(TFont, 'TPersistent') do + AddConstructor('constructor Create', CallMethod); + AddClass(TGradientPoint, 'TCollectionItem'); + AddClass(TGradientPoints, 'TCollection'); + AddClass(TGradient, 'TPersistent'); + AddClass(TBrushBitmap, 'TPersistent'); + AddClass(TBrushResource, 'TPersistent'); +{$IFNDEF Delphi18} + AddClass(TBrushGrab, 'TPersistent'); +{$ENDIF} + AddClass(TLineMetricInfo, 'TObject'); + + with AddClass(TBrush, 'TPersistent') do + begin + AddConstructor('Create(ADefaultKind: TBrushKind; ADefaultColor: TAlphaColor)', CallMethod); + AddProperty('DefaultColor', 'TAlphaColor', GetProp); + AddProperty('DefaultKind', 'TBrushKind', GetProp); + end; +{$IFDEF Delphi17} + AddClass(TStrokeBrush, 'TBrush'); +{$ENDIF} + + AddClass(TCanvasSaveState, 'TPersistent'); + with AddClass(TCanvas, 'TPersistent') do + begin + AddMethod('function BeginScene: Boolean', CallMethod); + AddMethod('procedure EndScene', CallMethod); + AddMethod('procedure Clear(Color: TAlphaColor)', CallMethod); + AddMethod('procedure ClearRect(ARect: TfsRectF; AColor: TAlphaColor = 0)', CallMethod); + AddMethod('procedure SetMatrix(const M: TfsMatrix)', CallMethod); +{$IFDEF Delphi17} + AddMethod('procedure MultiplyMatrix(const M: TfsMatrix)', CallMethod); +{$ELSE} + AddMethod('procedure MultyMatrix(const M: TfsMatrix)', CallMethod); +{$ENDIF} + AddMethod('function SaveState: TCanvasSaveState', CallMethod); + AddMethod('procedure RestoreState(State: TCanvasSaveState)', CallMethod); + AddMethod('procedure SetClipRects(ARects: array of TfsRectF)', CallMethod); + AddMethod('procedure IntersectClipRect(ARect: TfsRectF)', CallMethod); + AddMethod('procedure ExcludeClipRect(ARect: TfsRectF)', CallMethod); + AddMethod('procedure ResetClipRect', CallMethod); + AddMethod('procedure DrawLine(APt1: TfsPointF; APt2: TfsPointF; AOpacity: Single)', CallMethod); + AddMethod('procedure FillRect(ARect: TfsRectF; XRadius: Single; YRadius: Single; ACorners: TCorners; AOpacity: Single; ACornerType: TCornerType)', CallMethod); + AddMethod('procedure DrawRect(ARect: TfsRectF; XRadius: Single; YRadius: Single; ACorners: TCorners; AOpacity: Single; ACornerType: TCornerType)', CallMethod); + AddMethod('procedure FillEllipse(ARect: TfsRectF; AOpacity: Single)', CallMethod); + AddMethod('procedure DrawEllipse(ARect: TfsRectF; AOpacity: Single)', CallMethod); + AddMethod('procedure FillArc(Center: TfsPointF; Radius: TfsPointF; StartAngle: Single; SweepAngle: Single; AOpacity: Single)', CallMethod); + AddMethod('procedure DrawArc(Center: TfsPointF; Radius: TfsPointF; StartAngle: Single; SweepAngle: Single; AOpacity: Single)', CallMethod); + AddMethod('function PtInPath(APoint: TfsPointF; APath: TPathData): Boolean', CallMethod); + AddMethod('procedure FillPath(APath: TPathData; AOpacity: Single)', CallMethod); + AddMethod('procedure DrawPath(APath: TPathData; AOpacity: Single)', CallMethod); + AddMethod('procedure DrawBitmap(ABitmap: TBitmap; SrcRect: TfsRectF; DstRect: TfsRectF; AOpacity: Single; HighSpeed: Boolean)', CallMethod); + AddMethod('procedure DrawRectSides(ARect: TfsRectF; XRadius: Single; YRadius: Single; ACorners: TCorners; AOpacity: Single; ASides: TSides; ACornerType: TCornerType)', CallMethod); + AddMethod('procedure FillPolygon(Points: TPolygon; AOpacity: Single)', CallMethod); + AddMethod('procedure DrawPolygon(Points: TPolygon; AOpacity: Single)', CallMethod); + AddMethod('function LoadFontFromStream(AStream: TStream): Boolean', CallMethod); + AddMethod('procedure FillText(ARect: TfsRectF; AText: string; WordWrap: Boolean; AOpacity: Single; Flags: TFillTextFlags; ATextAlign: TTextAlign; AVTextAlign: TTextAlign)', CallMethod); + AddMethod('procedure MeasureText(var ARect: TfsRectF; AText: string; WordWrap: Boolean; Flags: TFillTextFlags; ATextAlign: TTextAlign; AVTextAlign: TTextAlign)', CallMethod); + AddMethod('procedure MeasureLines(ALines: TLineMetricInfo; ARect: TfsRectF; AText: string; WordWrap: Boolean; Flags: TFillTextFlags; ATextAlign: TTextAlign; AVTextAlign: TTextAlign)', CallMethod); + AddMethod('function TextToPath(Path: TPathData; ARect: TfsRectF; AText: string; WordWrap: Boolean; ATextAlign: TTextAlign; AVTextAlign: TTextAlign): Boolean', CallMethod); + AddMethod('function TextWidth(AText: string): Single', CallMethod); + AddMethod('function TextHeight(AText: string): Single', CallMethod); + AddMethod('procedure SetCustomDash(Dash: array; Offset: Single)', CallMethod); +{$IFDEF Delphi17} + AddProperty('Stroke', 'TStrokeBrush', GetProp); + AddProperty('StrokeCap', 'TStrokeCap', nil, SetProp); + AddProperty('StrokeDash', 'TStrokeDash', nil, SetProp); + AddProperty('StrokeJoin', 'TStrokeJoin', nil, SetProp); +{$ELSE} + AddProperty('Stroke', 'TBrush', GetProp); + AddProperty('StrokeCap', 'TStrokeCap', GetProp, SetProp); + AddProperty('StrokeDash', 'TStrokeDash', GetProp, SetProp); + AddProperty('StrokeJoin', 'TStrokeJoin', GetProp, SetProp); +{$ENDIF} + AddProperty('StrokeThickness', 'Single', GetProp, SetProp); + AddProperty('Fill', 'TBrush', GetProp, SetProp); + AddProperty('Font', 'TFont', GetProp); + AddProperty('Matrix', 'TfsMatrix', GetProp); + AddProperty('Width', 'Integer', GetProp); + AddProperty('Height', 'Integer', GetProp); + end; + with AddClass(TBitmap, 'TPersistent') do + begin + AddConstructor('constructor Create(AWidth, AHeight: Integer)', CallMethod); + AddConstructor('constructor CreateFromStream(AStream: TStream)', CallMethod); + AddConstructor('constructor CreateFromFile(AFileName: string)', CallMethod); + AddMethod('procedure SetSize(AWidth, AHeight: Integer)', CallMethod); + AddMethod('procedure Clear(AColor: TAlphaColor)', CallMethod); + AddMethod('procedure ClearRect(ARect: TfsRectF; AColor: TAlphaColor = 0)', CallMethod); + AddMethod('function IsEmpty: Boolean', CallMethod); + AddMethod('procedure Rotate(Angle: Single)', CallMethod); + AddMethod('procedure FlipHorizontal', CallMethod); + AddMethod('procedure FlipVertical', CallMethod); + AddMethod('procedure InvertAlpha', CallMethod); +{$IFNDEF DELPHI20} + AddMethod('procedure LoadFromFile(AFileName: string; Rotate: Single = 0)', CallMethod); +{$ELSE} + AddMethod('procedure LoadFromFile(AFileName: string)', CallMethod); +{$ENDIF} + AddMethod('procedure SaveToFile(AFileName: string)', CallMethod); + AddMethod('procedure LoadFromStream(Stream: TStream)', CallMethod); + AddMethod('procedure SaveToStream(Stream: TStream)', CallMethod); +{$IFNDEF Delphi17} + AddMethod('procedure BitmapChanged', CallMethod); + AddIndexProperty( 'Pixels', 'Integer, Integer', 'TAlphaColor', CallMethod); +{$ENDIF} + AddProperty('Canvas', 'TCanvas', GetProp); +{$IFNDEF Delphi21} + AddProperty('ResourceBitmap', 'TBitmap', GetProp); +{$ENDIF} + AddProperty('Width', 'Integer', GetProp, SetProp); + AddProperty('Height', 'Integer', GetProp, SetProp); + end; + AddClass(TSpline, 'TObject'); + AddClass(TBounds, 'TPersistent'); + AddClass(TTransform, 'TPersistent'); + + + +{$IFNDEF Delphi17} + AddClass(TBitmapCodec, 'TPersistent'); +{$ENDIF} + AddClass(TPathData, 'TPersistent'); + AddClass(TCanvasSaveState, 'TPersistent'); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + _Canvas: TCanvas; + _Bitmap: TBitmap; +// mRects: array of TRectF; + mDashs: array of Single; + mPoly: TPolygon; + Idx, Cnt, nLo: Integer; +begin + Result := 0; + + if ClassType = TFont then + begin + if MethodName = 'CREATE' then + Result := frxInteger(TFont(Instance).Create); + end + else if ClassType = TBitmap then + begin + _Bitmap := TBitmap(Instance); + if MethodName = 'CREATE' then + Result := frxInteger(TBitmap(Instance).Create(Caller.Params[0], Caller.Params[1])) + else if MethodName = 'CREATEFROMSTREAM' then + Result := frxInteger(_Bitmap.CreateFromStream(TStream(frxInteger(Caller.Params[0])))) + else if MethodName = 'CREATEFROMFILE' then + Result := frxInteger(_Bitmap.CreateFromFile(String(Caller.Params[0]))) + else if MethodName = 'SETSIZE' then + _Bitmap.SetSize(Integer(Caller.Params[0]), Integer(Caller.Params[1])) + else if MethodName = 'CLEAR' then + _Bitmap.Clear(TAlphaColor(Caller.Params[0])) + else if MethodName = 'CLEARRECT' then + begin + _Bitmap.ClearRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect, TAlphaColor(Caller.Params[1])); + end + else if MethodName = 'ISEMPTY' then + Result := _Bitmap.IsEmpty + else if MethodName = 'ROTATE' then + _Bitmap.Rotate(Single(Caller.Params[1])) + else if MethodName = 'FLIPHORIZONTAL' then + _Bitmap.FlipHorizontal + else if MethodName = 'FLIPVERTICAL' then + _Bitmap.FlipVertical + else if MethodName = 'INVERTALPHA' then + _Bitmap.InvertAlpha + else if MethodName = 'LOADFROMFILE' then +{$IFNDEF DELPHI20} + _Bitmap.LoadFromFile(String(Caller.Params[0]), Single(Caller.Params[1])) +{$ELSE} + _Bitmap.LoadFromFile(String(Caller.Params[0])) +{$ENDIF} + else if MethodName = 'SAVETOFILE' then + _Bitmap.SaveToFile(String(Caller.Params[0])) + else if MethodName = 'LOADFROMSTREAM' then + _Bitmap.LoadFromStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'SAVETOSTREAM' then + _Bitmap.SaveToStream(TStream(frxInteger(Caller.Params[0]))) +{$IFNDEF Delphi17} + else if MethodName = 'BITMAPCHANGED' then + _Bitmap.BitmapChanged + else if MethodName = 'PIXELS.GET' then + Result := _Bitmap.Pixels[Caller.Params[0], Caller.Params[1]] + else if MethodName = 'PIXELS.SET' then + _Bitmap.Pixels[Caller.Params[0], Caller.Params[1]] := Caller.Params[2] +{$ENDIF} + end + else if ClassType = TBrush then + begin + if MethodName = 'CREATE' then + Result := frxInteger(TBrush(Instance).Create(TBrushKind(frxInteger(Caller.Params[0])), + TAlphaColor(frxInteger(Caller.Params[0])))) + end + else if ClassType = TCanvas then + begin + _Canvas := TCanvas(Instance); + + if MethodName = 'BEGINSCENE' then + Result := _Canvas.BeginScene + else if MethodName = 'ENDSCENE' then + _Canvas.EndScene + else if MethodName = 'CLEAR' then + _Canvas.Clear(TAlphaColor(Caller.Params[0])) + else if MethodName = 'CLEARRECT' then + _Canvas.ClearRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect, TAlphaColor(Caller.Params[1])) + else if MethodName = 'SETMATRIX' then + _Canvas.SetMatrix(TfsMatrix(frxInteger(Caller.Params[0])).GetRect) +{$IFDEF Delphi17} + else if MethodName = 'MULTIPLYMATRIX' then + _Canvas.MultiplyMatrix(TfsMatrix(frxInteger(Caller.Params[0])).GetRect) +{$ELSE} + else if MethodName = 'MULTYMATRIX' then + _Canvas.MultyMatrix(TfsMatrix(frxInteger(Caller.Params[0])).GetRect) +{$ENDIF} + else if MethodName = 'SAVESTATE' then + Result := frxInteger(_Canvas.SaveState) + else if MethodName = 'RESTORESTATE' then + _Canvas.RestoreState(TCanvasSaveState(frxInteger(Caller.Params[0]))) + { else if MethodName = 'SETCLIPRECTS' then + begin + nLo := VarArrayLowBound(Caller.Params[0], 1); + Cnt := VarArrayHighBound(Caller.Params[0], 1) - nLo; + SetLength(mRects, Cnt); + for Idx := 0 to Cnt - 1 do + mRects[Idx] := TfsRectF(frxInteger(Caller.Params[0][Idx + nLo])).GetRectP^; + _Canvas.SetClipRects(mRects); + SetLength(mRects, 0); + end } + else if MethodName = 'EXCLUDECLIPRECT' then + _Canvas.ExcludeClipRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect) + else if MethodName = 'INTERSECTCLIPTRECT' then + _Canvas.IntersectClipRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect) + {else if MethodName = 'RESETCLIPRECT' then + _Canvas.ResetClipRect } + else if MethodName = 'DRAWLINE' then + _Canvas.DrawLine(TfsPointF(frxInteger(Caller.Params[0])).GetRect, TfsPointF(frxInteger(Caller.Params[1])).GetRect, Single(Caller.Params[2])) + else if MethodName = 'FILLRECT' then + _Canvas.FillRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect, Single(Caller.Params[1]), Single(Caller.Params[2]), TCorners(Byte(Caller.Params[3])), Single(Caller.Params[4]), TCornerType(Caller.Params[5])) + else if MethodName = 'DRAWRECT' then + _Canvas.DrawRect(TfsRectF(frxInteger(Caller.Params[0])).GetRect, Single(Caller.Params[1]), Single(Caller.Params[2]), TCorners(Byte(Caller.Params[3])), Single(Caller.Params[4]), TCornerType(Caller.Params[5])) + else if MethodName = 'FILLELLIPSE' then + _Canvas.FillEllipse(TfsRectF(frxInteger(Caller.Params[0])).GetRect, Single(Caller.Params[1])) + else if MethodName = 'DRAWELLIPSE' then + _Canvas.DrawEllipse(TfsRectF(frxInteger(Caller.Params[0])).GetRect, Single(Caller.Params[1])) + else if MethodName = 'FILLARC' then + _Canvas.FillArc(TfsPointF(frxInteger(Caller.Params[0])).GetRect, TfsPointF(frxInteger(Caller.Params[1])).GetRect, Single(Caller.Params[2]), Single(Caller.Params[3]), Single(Caller.Params[4])) + else if MethodName = 'DRAWARC' then + _Canvas.DrawArc(TfsPointF(frxInteger(Caller.Params[0])).GetRect, TfsPointF(frxInteger(Caller.Params[1])).GetRect, Single(Caller.Params[2]), Single(Caller.Params[3]), Single(Caller.Params[4])) + else if MethodName = 'PTINPATH' then + Result := Boolean(_Canvas.PtInPath(TfsPointF(frxInteger(Caller.Params[0])).GetRect, TPathData(frxInteger(Caller.Params[1])))) + else if MethodName = 'FILLPATH' then + _Canvas.FillPath(TPathData(frxInteger(Caller.Params[0])), Single(Caller.Params[1])) + else if MethodName = 'DRAWPATH' then + _Canvas.DrawPath(TPathData(frxInteger(Caller.Params[0])), Single(Caller.Params[1])) + else if MethodName = 'DRAWBITMAP' then + _Canvas.DrawBitmap(TBitmap(frxInteger(Caller.Params[0])), TfsRectF(frxInteger(Caller.Params[1])).GetRect, TfsRectF(frxInteger(Caller.Params[2])).GetRect, Single(Caller.Params[3]), Boolean(Caller.Params[4])) + else if MethodName = 'DRAWRECTSIDES' then + _Canvas.DrawRectSides(TfsRectF(frxInteger(Caller.Params[0])).GetRect, Single(Caller.Params[1]), Single(Caller.Params[2]), TCorners(Byte(Caller.Params[3])), Single(Caller.Params[4]), TSides(Byte(Caller.Params[5])), TCornerType(Caller.Params[6])) + else if MethodName = 'FILLPOLYGON' then + begin + nLo := VarArrayLowBound(Caller.Params[0], 1); + Cnt := VarArrayHighBound(Caller.Params[0], 1) - nLo; + SetLength(mPoly, Cnt); + for Idx := 0 to Cnt - 1 do + mPoly[Idx] := TfsPointF(frxInteger(Caller.Params[0][Idx + nLo])).GetRectP^; + _Canvas.FillPolygon(TPolygon(Caller.Params[0]), Single(Caller.Params[1])); + SetLength(mPoly, 0); + end + else if MethodName = 'DRAWPOLYGON' then + begin + nLo := VarArrayLowBound(Caller.Params[0], 1); + Cnt := VarArrayHighBound(Caller.Params[0], 1) - nLo; + SetLength(mPoly, Cnt); + for Idx := 0 to Cnt - 1 do + mPoly[Idx] := TfsPointF(frxInteger(Caller.Params[0][Idx + nLo])).GetRectP^; + _Canvas.DrawPolygon(TPolygon(Caller.Params[0]), Single(Caller.Params[1])); + SetLength(mPoly, 0); + end + else if MethodName = 'LOADFONTFROMSTREAM' then + Result := Boolean(_Canvas.LoadFontFromStream(TStream(frxInteger(Caller.Params[0])))) + else if MethodName = 'FILLTEXT' then + _Canvas.FillText(TfsRectF(frxInteger(Caller.Params[0])).GetRect, String(Caller.Params[1]), Boolean(Caller.Params[2]), Single(Caller.Params[3]), TFillTextFlags(Byte(Caller.Params[4])), TTextAlign(Caller.Params[5]), TTextAlign(Caller.Params[6])) + else if MethodName = 'MEASURETEXT' then + _Canvas.MeasureText(TfsRectF(frxInteger(Caller.Params[0])).GetRectP^, String(Caller.Params[1]), Boolean(Caller.Params[2]), TFillTextFlags(Byte(Caller.Params[3])), TTextAlign(Caller.Params[4]), TTextAlign(Caller.Params[5])) + else if MethodName = 'MEASURELINES' then + _Canvas.MeasureLines(TLineMetricInfo(frxInteger(Caller.Params[0])), TfsRectF(frxInteger(Caller.Params[1])).GetRect, String(Caller.Params[2]), Boolean(Caller.Params[3]), TFillTextFlags(Byte(Caller.Params[4])), TTextAlign(Caller.Params[5]), TTextAlign(Caller.Params[6])) + else if MethodName = 'TEXTTOPATH' then + Result := Boolean(_Canvas.TextToPath(TPathData(frxInteger(Caller.Params[0])), TfsRectF(frxInteger(Caller.Params[1])).GetRect, String(Caller.Params[2]), Boolean(Caller.Params[3]), TTextAlign(Caller.Params[4]), TTextAlign(Caller.Params[5]))) + else if MethodName = 'TEXTWIDTH' then + Result := Single(_Canvas.TextWidth(String(Caller.Params[0]))) + else if MethodName = 'TEXTHEIGHT' then + Result := Single(_Canvas.TextHeight(String(Caller.Params[0]))) + else if MethodName = 'SETCUSTOMDASH' then + begin + nLo := VarArrayLowBound(Caller.Params[0], 1); + Cnt := VarArrayHighBound(Caller.Params[0], 1) - nLo; + SetLength(mDashs, Cnt); + for Idx := 0 to Cnt - 1 do + mDashs[Idx] := Single(Caller.Params[0][Idx + nLo]); +{$IFDEF DELPHI25} + _Canvas.Stroke.SetCustomDash(mDashs, Single(Caller.Params[1])); +{$ELSE} + _Canvas.SetCustomDash(mDashs, Single(Caller.Params[1])); +{$ENDIF} + SetLength(mDashs, 0); + end +{$IFNDEF CLX} + { else if MethodName = 'PIXELS.GET' then + Result := _Canvas.Pixels[Caller.Params[0], Caller.Params[1]] + else if MethodName = 'PIXELS.SET' then + _Canvas.Pixels[Caller.Params[0], Caller.Params[1]] := Caller.Params[2] } +{$ENDIF} + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + if ClassType = TBitmap then + begin + if PropName = 'CANVAS' then + Result := frxInteger(TBitmap(Instance).Canvas) +{$IFNDEF Delphi21} + else if PropName = 'RESOURCEBITMAP' then + Result := frxInteger(TBitmap(Instance).ResourceBitmap) +{$ENDIF} + else if PropName = 'WIDTH' then + Result := Integer(TBitmap(Instance).Width) + else if PropName = 'HEIGHT' then + Result := Integer(TBitmap(Instance).Height) + end + else if ClassType = TCanvas then + begin + if PropName = 'STROKE' then + Result := frxInteger(TCanvas(Instance).Stroke) + else if PropName = 'WIDTH' then + Result := Integer(TCanvas(Instance).Width) + else if PropName = 'HEIGHT' then + Result := Integer(TCanvas(Instance).Height) + else if PropName = 'FONT' then + Result := frxInteger(TCanvas(Instance).Font) + else if PropName = 'FILL' then + Result := frxInteger(TCanvas(Instance).Fill) + else if PropName = 'STROKETHICKNESS' then +{$IFDEF DELPHI25} + Result := Single(TCanvas(Instance).Stroke.Thickness) +{$ELSE} + Result := Single(TCanvas(Instance).StrokeThickness) +{$ENDIF} +{$IFNDEF Delphi17} + else if PropName = 'STROKECAP' then + Result := Integer(TCanvas(Instance).StrokeCap) + else if PropName = 'STROKEDASH' then + Result := Integer(TCanvas(Instance).StrokeDash) + else if PropName = 'STROKEJOIN' then + Result := Integer(TCanvas(Instance).StrokeJoin) +{$ENDIF} + end; +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TBitmap then + begin + if PropName = 'WIDTH' then + TBitmap(Instance).Width := Integer(Value) + else if PropName = 'HEIGHT' then + TBitmap(Instance).Height:= Integer(Value) + end + else if ClassType = TCanvas then + begin + if PropName = 'STROKETHICKNESS' then +{$IFDEF DELPHI25} + TCanvas(Instance).Stroke.Thickness := Single(Value) +{$ELSE} + TCanvas(Instance).StrokeThickness := Single(Value) +{$ENDIF} + else if PropName = 'STROKECAP' then +{$IFDEF DELPHI25} + TCanvas(Instance).Stroke.Cap := TStrokeCap(Value) +{$ELSE} + TCanvas(Instance).StrokeCap := TStrokeCap(Value) +{$ENDIF} + else if PropName = 'STROKEDASH' then +{$IFDEF DELPHI25} + TCanvas(Instance).Stroke.Dash := TStrokeDash(Value) +{$ELSE} + TCanvas(Instance).StrokeDash := TStrokeDash(Value) +{$ENDIF} + else if PropName = 'STROKEJOIN' then +{$IFDEF DELPHI25} + TCanvas(Instance).Stroke.Join := TStrokeJoin(Value) +{$ELSE} + TCanvas(Instance).StrokeJoin := TStrokeJoin(Value) +{$ENDIF} + end; +end; + +procedure TFunctions.GetColorProc(const Name: String); +var + c: Integer; +begin + IdentToAlphaColor('cla' + Name, c); + Script.AddConst('cla' + Name, 'Integer', c); +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsGraphicsRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX/FMX.fs_iibxrtti.pas b/FastScript/FMX/FMX.fs_iibxrtti.pas new file mode 100644 index 0000000..dd92476 --- /dev/null +++ b/FastScript/FMX/FMX.fs_iibxrtti.pas @@ -0,0 +1,125 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ IBX classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iibxrtti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_itools, FMX.fs_idbrtti, Data.db, FMX.Types +{$IFDEF DELPHI20} + , IBX.ibdatabase, IBX.IBCustomDataSet, IBX.IBQuery, IBX.IBTable, IBX.IBStoredProc +{$ELSE} + , ibdatabase, IBCustomDataSet, IBQuery, IBTable, IBStoredProc +{$ENDIF} + ; + +type +{$i frxPlatformsAttribute.inc} + TfsIBXRTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class (TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; const MethodName: + String; Caller: TfsMethodHelper): Variant; + function RecordCount(Instance: TObject; ClassType: TClass; const PropName: + String): Variant; + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddClass(TIBDataBase, 'TComponent'); + + with AddClass(TIBTransaction, 'TComponent') do + begin + AddMethod('procedure Commit', CallMethod); + AddMethod('procedure RollBack', CallMethod); + AddMethod('procedure StartTransaction', CallMethod); + end; + + AddClass(TIBCustomDataSet, 'TDataSet'); + AddClass(TIBTable, 'TIBCustomDataSet'); + with AddClass(TIBQuery, 'TIBCustomDataSet') do + begin + AddMethod('procedure ExecSQL', CallMethod); + AddMethod('procedure FetchAll', CallMethod); + AddProperty('RecordCount', 'Integer',RecordCount, nil); + end; + with AddClass(TIBStoredProc, 'TIBCustomDataSet') do + AddMethod('procedure ExecProc', CallMethod); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; const + MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + + if ClassType = TIBQuery then + begin + if MethodName = 'EXECSQL' then + TIBQuery(Instance).ExecSQL + else + if MethodName = 'FETCHALL' then + TIBQuery(Instance).FETCHALL; + end + else + if ClassType = TIBStoredProc then + begin + if MethodName = 'EXECPROC' then + TIBStoredProc(Instance).ExecProc + end + else + if(ClassType = TIBTransaction) AND (MethodName = 'COMMIT') then + TIBTransaction(Instance).Commit + else + if (ClassType = TIBTransaction) AND (MethodName = 'ROLLBACK') then + TIBTransaction(Instance).RollBack + else + if(ClassType = TIBTransaction) AND (MethodName = 'STARTTRANSACTION') then + TIBTransaction(Instance).StartTransaction; + +end; + +function TFunctions.RecordCount(Instance: TObject; ClassType: TClass; const + PropName: String): Variant; +begin + Result:=0; + if (ClassType = TIBQuery) AND (PropName = 'RECORDCOUNT') then + Result:=TIBQuery(Instance).RecordCount; + +end; + + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsIBXRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX/FMX.fs_iilparser.pas b/FastScript/FMX/FMX.fs_iilparser.pas new file mode 100644 index 0000000..b8d0425 --- /dev/null +++ b/FastScript/FMX/FMX.fs_iilparser.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Intermediate Language parser } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iilparser; +{$i FMX.inc} +{$i fs_iilparser.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_iinirtti.pas b/FastScript/FMX/FMX.fs_iinirtti.pas new file mode 100644 index 0000000..42561a5 --- /dev/null +++ b/FastScript/FMX/FMX.fs_iinirtti.pas @@ -0,0 +1,372 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ IniFiles.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{ Copyright (c) 2004-2007 } +{ by Stalker SoftWare } +{ } +{******************************************} + +unit FMX.fs_iinirtti; + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, System.IniFiles, FMX.Types, System.Types; + +type +{$i frxPlatformsAttribute.inc} + TfsIniRTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; const PropName: String): Variant; + procedure SaveIniFileToStream(oIniFile: TCustomIniFile; oStream: TStream); + procedure LoadIniFileFromStream(oIniFile :TCustomIniFile; oStream :TStream); + procedure WriteTStrings(oIniFile: TCustomIniFile; const Section: String; Values: TStrings; IsClear :Boolean = True); + procedure ReadTStrings(oIniFile: TCustomIniFile; const Section: String; Values: TStrings; IsClear :Boolean = True); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + + with AScript do + begin + with AddClass(TCustomIniFile, 'TObject') do + begin + AddConstructor('constructor Create(const FileName: String)', CallMethod); + AddMethod('function ReadInteger(const Section, Ident: String; Default: LongInt): LongInt', CallMethod); + AddMethod('procedure WriteInteger(const Section, Ident: String; Value: LongInt)', CallMethod); + AddMethod('function ReadBool(const Section, Ident: String; Default: Boolean): Boolean', CallMethod); + AddMethod('procedure WriteBool(const Section, Ident: String; Value: Boolean)', CallMethod); + AddMethod('function ReadDate(const Section, Name: String; Default: TDateTime): TDateTime', CallMethod); + AddMethod('procedure WriteDate(const Section, Name: String; Value: TDateTime)', CallMethod); + AddMethod('function ReadDateTime(const Section, Name: String; Default: TDateTime): TDateTime', CallMethod); + AddMethod('procedure WriteDateTime(const Section, Name: String; Value: TDateTime)', CallMethod); + AddMethod('function ReadFloat(const Section, Name: String; Default: Double): Double', CallMethod); + AddMethod('procedure WriteFloat(const Section, Name: String; Value: Double)', CallMethod); + AddMethod('function ReadTime(const Section, Name: String; Default: TDateTime): TDateTime', CallMethod); + AddMethod('procedure WriteTime(const Section, Name: String; Value: TDateTime);', CallMethod); +{$IFDEF DELPHI6} + AddMethod('function ReadBinaryStream(const Section, Name: String; Value: TStream): Integer', CallMethod); + AddMethod('procedure WriteBinaryStream(const Section, Name: String; Value: TStream)', CallMethod); +{$ENDIF} + AddMethod('function SectionExists(const Section: String): Boolean', CallMethod); + AddMethod('function ValueExists(const Section, Ident: String): Boolean', CallMethod); + + AddMethod('procedure WriteTStrings(const Section :String; Value :TStrings; IsClear :Boolean = True)', CallMethod); + AddMethod('function ReadTStrings(const Section :String; Value :TStrings; IsClear :Boolean = True): String;', CallMethod); + + AddProperty('FileName', 'String', GetProp); + end; + + with AddClass(TMemIniFile, 'TCustomIniFile') do + begin + AddConstructor('constructor Create(const FileName: String)', CallMethod); + AddMethod('procedure WriteString(const Section, Ident, Value: String)', CallMethod); + AddMethod('function ReadString(const Section, Ident, Default: String): String;', CallMethod); +{$IFDEF DELPHI6} + AddMethod('procedure ReadSectionValuesEx(const Section: String; Strings: TStrings)', CallMethod); +{$ENDIF} + AddMethod('procedure DeleteKey(const Section, Ident: String)', CallMethod); + AddMethod('procedure ReadSection(const Section: String; Strings: TStrings)', CallMethod); + AddMethod('procedure ReadSections(Strings: TStrings)', CallMethod); + AddMethod('procedure ReadSectionValues(const Section: String; Strings: TStrings)', CallMethod); + AddMethod('procedure EraseSection(const Section: String)', CallMethod); + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure GetStrings(List: TStrings)', CallMethod); + AddMethod('procedure SetStrings(List: TStrings)', CallMethod); + AddMethod('procedure SaveIniFileToStream(oStream: TStream)', CallMethod); + AddMethod('procedure LoadIniFileFromStream(oStream: TStream)', CallMethod); + end; + + with AddClass(TIniFile, 'TCustomIniFile') do + begin + AddMethod('procedure WriteString(const Section, Ident, Value: String)', CallMethod); + AddMethod('function ReadString(const Section, Ident, Default: String): String;', CallMethod); +{$IFDEF DELPHI6} + AddMethod('procedure ReadSectionValuesEx(const Section: String; Strings: TStrings)', CallMethod); +{$ENDIF} + AddMethod('procedure DeleteKey(const Section, Ident: String)', CallMethod); + AddMethod('procedure ReadSection(const Section: String; Strings: TStrings)', CallMethod); + AddMethod('procedure ReadSections(Strings: TStrings)', CallMethod); + AddMethod('procedure ReadSectionValues(const Section: String; Strings: TStrings)', CallMethod); + AddMethod('procedure EraseSection(const Section: String)', CallMethod); + AddMethod('procedure SaveIniFileToStream(oStream: TStream)', CallMethod); + AddMethod('procedure LoadIniFileFromStream(oStream: TStream)', CallMethod); + end; + + end; + +end; + +{$HINTS OFF} +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String; Caller: TfsMethodHelper): Variant; +var + oCustomIniFile: TCustomIniFile; + oMemIniFile: TMemIniFile; + oIniFile: TIniFile; + oList: TStrings; + nCou: Integer; + +begin + + Result := 0; + + if ClassType = TCustomIniFile then + begin + oCustomIniFile := TCustomIniFile(Instance); + if MethodName = 'CREATE' then + Result := frxInteger(oCustomIniFile.Create(Caller.Params[0])) + else if MethodName = 'WRITEINTEGER' then + oCustomIniFile.WriteInteger(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READINTEGER' then + Result := oCustomIniFile.ReadInteger(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITEBOOL' then + oCustomIniFile.WriteBool(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READBOOL' then + Result := oCustomIniFile.ReadBool(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITEDATE' then + oCustomIniFile.WriteDate(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READDATE' then + Result := oCustomIniFile.ReadDate(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITEDATETIME' then + oCustomIniFile.WriteDateTime(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READDATETIME' then + Result := oCustomIniFile.ReadDateTime(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITEFLOAT' then + oCustomIniFile.WriteFloat(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READFLOAT' then + Result := oCustomIniFile.ReadFloat(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITETIME' then + oCustomIniFile.WriteTime(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READTIME' then + Result := oCustomIniFile.ReadTime(Caller.Params[0], Caller.Params[1], Caller.Params[2]) +{$IFDEF DELPHI6} + else if MethodName = 'WRITEBINARYSTREAM' then + oCustomIniFile.WriteBinaryStream(Caller.Params[0], Caller.Params[1], TStream(frxInteger(Caller.Params[2]))) + else if MethodName = 'READBINARYSTREAM' then + Result := oCustomIniFile.ReadBinaryStream(Caller.Params[0], Caller.Params[1], TStream(frxInteger(Caller.Params[2]))) +{$ENDIF} + else if MethodName = 'SECTIONEXISTS' then + Result := oCustomIniFile.SectionExists(Caller.Params[0]) + else if MethodName = 'VALUEEXISTS' then + Result := oCustomIniFile.ValueExists(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'WRITETSTRINGS' then + WriteTStrings(oCustomIniFile, Caller.Params[0], TStrings(frxInteger(Caller.Params[1])), Caller.Params[2]) + else if MethodName = 'READTSTRINGS' then + ReadTStrings(oCustomIniFile, Caller.Params[0], TStrings(frxInteger(Caller.Params[1])), Caller.Params[2]) + + end; + + if ClassType = TMemIniFile then + begin + oMemIniFile := TMemIniFile(Instance); + if MethodName = 'CREATE' then + Result := frxInteger(oMemIniFile.Create(Caller.Params[0])) + else if MethodName = 'WRITESTRING' then + oMemIniFile.WriteString(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READSTRING' then + Result := oMemIniFile.ReadString(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'DELETEKEY' then + oMemIniFile.DeleteKey(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'READSECTION' then + oMemIniFile.ReadSection(Caller.Params[0], TStrings(frxInteger(Caller.Params[1]))) + else if MethodName = 'READSECTIONS' then + oMemIniFile.ReadSections(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'READSECTIONVALUES' then + oMemIniFile.ReadSectionValues(Caller.Params[0], TStrings(frxInteger(Caller.Params[1]))) + else if MethodName = 'ERASESECTION' then + oMemIniFile.EraseSection(Caller.Params[0]) +{$IFDEF DELPHI6} + else if MethodName = 'READSECTIONVALUESEX' then + begin + oList := TStringList.Create; + try + oMemIniFile.ReadSectionValues(Caller.Params[0], oList); + TStrings(frxInteger(Caller.Params[1])).Clear; + for nCou := 0 to oList.Count-1 do +// TStrings(frxInteger(Caller.Params[1])).Add(oList.ValueFromIndex[nCou]); + TStrings(frxInteger(Caller.Params[1])).Add(oList.Values[oList.Names[nCou]]); + finally + oList.Free; + end; + end +{$ENDIF} + else if MethodName = 'CLEAR' then + oMemIniFile.Clear + else if MethodName = 'GETSTRINGS' then + oMemIniFile.GetStrings(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'SETSTRINGS' then + oMemIniFile.SetStrings(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'SAVEINIFILETOSTREAM' then + SaveIniFileToStream(oMemIniFile, TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'LOADINIFILEFROMSTREAM' then + LoadIniFileFromStream(oMemIniFile, TStream(frxInteger(Caller.Params[0]))) + end; + + if ClassType = TIniFile then + begin + oIniFile := TIniFile(Instance); + if MethodName = 'WRITESTRING' then + oIniFile.WriteString(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READSTRING' then + Result := oIniFile.ReadString(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'DELETEKEY' then + oIniFile.DeleteKey(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'READSECTION' then + oIniFile.ReadSection(Caller.Params[0], TStrings(frxInteger(Caller.Params[1]))) + else if MethodName = 'READSECTIONS' then + oIniFile.ReadSections(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'READSECTIONVALUES' then + oIniFile.ReadSectionValues(Caller.Params[0], TStrings(frxInteger(Caller.Params[1]))) + else if MethodName = 'ERASESECTION' then + oIniFile.EraseSection(Caller.Params[0]) +{$IFDEF DELPHI6} + else if MethodName = 'READSECTIONVALUESEX' then + begin + oList := TStringList.Create; + try + oIniFile.ReadSectionValues(Caller.Params[0], oList); + TStrings(frxInteger(Caller.Params[1])).Clear; + for nCou := 0 to oList.Count-1 do +// TStrings(frxInteger(Caller.Params[1])).Add(oList.ValueFromIndex[nCou]); + TStrings(frxInteger(Caller.Params[1])).Add(oList.Values[oList.Names[nCou]]); + finally + oList.Free; + end; + end +{$ENDIF} + else if MethodName = 'SAVEINIFILETOSTREAM' then + SaveIniFileToStream(oIniFile, TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'LOADINIFILEFROMSTREAM' then + LoadIniFileFromStream(oIniFile, TStream(frxInteger(Caller.Params[0]))) + end; + +end; +{$HINTS ON} + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TCustomIniFile then + begin + if PropName = 'FILENAME' then + Result := TIniFile(Instance).FileName + end; +end; + +procedure TFunctions.SaveIniFileToStream(oIniFile :TCustomIniFile; oStream :TStream); +var + oStrings :TStrings; + +begin + + if (not Assigned(oIniFile)) or (not Assigned(oStream)) then Exit; + + if not ((oIniFile is TIniFile) or (oIniFile is TMemIniFile)) then Exit; + + oStrings:= TStringList.Create; + try + + if oIniFile is TIniFile then + oStrings.LoadFromFile(oIniFile.FileName) + else + if oIniFile is TMemIniFile then + TMemIniFile(oIniFile).GetStrings(oStrings); + + oStrings.SaveToStream(oStream); + + finally + oStrings.Free; + end; + +end; + +procedure TFunctions.LoadIniFileFromStream(oIniFile :TCustomIniFile; oStream :TStream); +var + oStrings :TStrings; + +begin + + if (not Assigned(oIniFile)) or (not Assigned(oStream)) then Exit; + + if not ((oIniFile is TIniFile) or (oIniFile is TMemIniFile)) then Exit; + + oStrings:= TStringList.Create; + try + + oStrings.LoadFromStream(oStream); + + if oIniFile is TIniFile then + oStrings.SaveToFile(oIniFile.FileName) + else + if oIniFile is TMemIniFile then + TMemIniFile(oIniFile).SetStrings(oStrings); + + finally + oStrings.Free; + end; + +end; + +procedure TFunctions.WriteTStrings(oIniFile :TCustomIniFile; const Section :String; Values :TStrings; IsClear :Boolean = True); +var + nCou :Integer; + +begin + + if IsClear then oIniFile.EraseSection(Section); + + for nCou := 0 to Values.Count-1 do + oIniFile.WriteString(Section, 'Items'+IntToStr(nCou), Values[nCou]); + + oIniFile.WriteInteger(Section, 'Count', Values.Count); + +end; + +procedure TFunctions.ReadTStrings(oIniFile :TCustomIniFile; const Section :String; Values :TStrings; IsClear :Boolean = True); +var + nCou, nCount :Integer; + +begin + + nCount := oIniFile.ReadInteger(Section, 'Count', 0); + + if IsClear then Values.Clear; + + for nCou := 0 to nCount-1 do + Values.Add(oIniFile.ReadString(Section, 'Items'+IntToStr(nCou), '')); + +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsIniRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/FMX/FMX.fs_iinterpreter.pas b/FastScript/FMX/FMX.fs_iinterpreter.pas new file mode 100644 index 0000000..0953f64 --- /dev/null +++ b/FastScript/FMX/FMX.fs_iinterpreter.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Main module } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iinterpreter; +{$i FMX.inc} +{$i fs_iinterpreter.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_ijs.pas b/FastScript/FMX/FMX.fs_ijs.pas new file mode 100644 index 0000000..4b321a6 --- /dev/null +++ b/FastScript/FMX/FMX.fs_ijs.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ JScript grammar } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_ijs; +{$i FMX.inc} +{$i fs_ijs.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_imenusrtti.pas b/FastScript/FMX/FMX.fs_imenusrtti.pas new file mode 100644 index 0000000..fe9b172 --- /dev/null +++ b/FastScript/FMX/FMX.fs_imenusrtti.pas @@ -0,0 +1,104 @@ +{**********************************************} +{ } +{ FastScript v1.9 } +{ Menus } +{ } +{ Copyright (c) 1998-2011 } +{ by Fast Reports Inc. } +{ } +{**********************************************} + +unit FMX.fs_imenusrtti; + +interface + +{$I fs.inc} + +uses + System.SysUtils, System.Classes, FMX.Menus, FMX.fs_iinterpreter, FMX.fs_ievents, System.Types, System.Variants, FMX.Types; + +type +{$i frxPlatformsAttribute.inc} + + TfsMenusRTTI = class(TComponent); // fake component + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; const MethodName: + string; Caller: TfsMethodHelper): Variant; + public + constructor Create(AScript: TfsScript); override; + end; + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + + with AScript do + begin + + AddType('TPopupAlignment', fvtInt); + + + with AddClass(TMenuItem, 'TTextControl') do + begin + AddMethod('procedure Popup', CallMethod); + AddMethod('procedure NeedPopup', CallMethod); + AddMethod('function HavePopup: Boolean', CallMethod); + end; { with } + + with AddClass(TMainMenu, 'TFmxObject') do + with AddClass(TMenuBar, 'TStyledControl') do + AddMethod('procedure StartMenuLoop', CallMethod); + + with AddClass(TPopupMenu, 'TFmxObject') do + AddMethod('procedure Popup(X, Y: Single)', CallMethod); + + end; { with } + +end; { Create } + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; const + MethodName: string; Caller: TfsMethodHelper): Variant; +var + oMenuItem: TMenuItem; +begin + Result := 0; + + if ClassType = TMenuItem then + begin + + oMenuItem := TMenuItem(Instance); + + if MethodName = 'POPUP' then + oMenuItem.Popup + else if MethodName = 'NEEDPOPUP' then + oMenuItem.NeedPopup + else if MethodName = 'HAVEPOPUP' then + Result := oMenuItem.HavePopup; + + end + else if ClassType = TPopupMenu then + begin + + if MethodName = 'POPUP' then + TPopupMenu(Instance).Popup(Caller.Params[0], Caller.Params[1]); + + end; +end; { CallMethod } + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsMenusRTTI, TFmxObject); + fsRTTIModules.Add(TFunctions); + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. + diff --git a/FastScript/FMX/FMX.fs_iparser.pas b/FastScript/FMX/FMX.fs_iparser.pas new file mode 100644 index 0000000..b922d9e --- /dev/null +++ b/FastScript/FMX/FMX.fs_iparser.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Parser } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_iparser; +{$i FMX.inc} +{$i fs_iparser.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_ipascal.pas b/FastScript/FMX/FMX.fs_ipascal.pas new file mode 100644 index 0000000..33f4f12 --- /dev/null +++ b/FastScript/FMX/FMX.fs_ipascal.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Pascal grammar } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_ipascal; +{$i FMX.inc} +{$i fs_ipascal.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_isysrtti.pas b/FastScript/FMX/FMX.fs_isysrtti.pas new file mode 100644 index 0000000..b1405ee --- /dev/null +++ b/FastScript/FMX/FMX.fs_isysrtti.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Standard functions } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_isysrtti; +{$i FMX.inc} +{$i fs_isysrtti.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_itools.pas b/FastScript/FMX/FMX.fs_itools.pas new file mode 100644 index 0000000..871b7c6 --- /dev/null +++ b/FastScript/FMX/FMX.fs_itools.pas @@ -0,0 +1,14 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Common functions } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_itools; +{$i FMX.inc} +{$i fs_itools.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMX.fs_lazarus.pas b/FastScript/FMX/FMX.fs_lazarus.pas new file mode 100644 index 0000000..7c4d3a2 --- /dev/null +++ b/FastScript/FMX/FMX.fs_lazarus.pas @@ -0,0 +1,25 @@ +{ This file was automatically created by Lazarus. do not edit! + This source is only used to compile and install the package. + } + +unit fs_lazarus; + +interface + +uses + fs_ipascal, fs_icpp, fs_ijs, fs_ibasic, fs_iclassesrtti, fs_iconst, + fs_idialogsrtti, fs_ievents, fs_iexpression, fs_iextctrlsrtti, + fs_iformsrtti, fs_igraphicsrtti, fs_iilparser, fs_iinirtti, fs_iinterpreter, + fs_iparser, fs_isysrtti, fs_itools, fs_xml, fs_ireg, fs_synmemo, fs_tree, + LazarusPackageIntf; + +implementation + +procedure Register; +begin + RegisterUnit('fs_ireg', @fs_ireg.Register); +end; + +initialization + RegisterPackage('fs_lazarus', @Register); +end. diff --git a/FastScript/FMX/FMX.fs_synmemo.fmx b/FastScript/FMX/FMX.fs_synmemo.fmx new file mode 100644 index 0000000..da0b5ed --- /dev/null +++ b/FastScript/FMX/FMX.fs_synmemo.fmx @@ -0,0 +1,50 @@ +object fsSynMemoSearch: TfsSynMemoSearch + Left = 0 + Top = 0 + BorderStyle = bsToolWindow + Caption = 'Search for text' + ClientHeight = 129 + ClientWidth = 249 + Position = poScreenCenter + FormFactor.Width = 320 + FormFactor.Height = 480 + FormFactor.Devices = [dkDesktop, dkiPhone, dkiPad] + DesignerMobile = False + DesignerWidth = 0 + DesignerHeight = 0 + DesignerDeviceName = '' + DesignerOrientation = 0 + object Edit1: TEdit + TabOrder = 0 + Position.X = 48.000000000000000000 + Position.Y = 13.000000000000000000 + Width = 193.000000000000000000 + Height = 22.000000000000000000 + KillFocusByReturn = False + end + object Label1: TLabel + Height = 15.000000000000000000 + Position.X = 8.000000000000000000 + Position.Y = 16.000000000000000000 + Text = 'Search :' + Width = 49.000000000000000000 + end + object Search: TButton + Height = 17.000000000000000000 + ModalResult = 1 + Position.X = 88.000000000000000000 + Position.Y = 48.000000000000000000 + TabOrder = 2 + Text = 'Search' + Width = 73.000000000000000000 + end + object Button1: TButton + Height = 17.000000000000000000 + ModalResult = 2 + Position.X = 168.000000000000000000 + Position.Y = 48.000000000000000000 + TabOrder = 3 + Text = 'Cancel' + Width = 73.000000000000000000 + end +end diff --git a/FastScript/FMX/FMX.fs_synmemo.pas b/FastScript/FMX/FMX.fs_synmemo.pas new file mode 100644 index 0000000..4b4f2c4 --- /dev/null +++ b/FastScript/FMX/FMX.fs_synmemo.pas @@ -0,0 +1,2397 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Syntax memo FMX control } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +{ Simple syntax highlighter. Supports Pascal, C++, JS, VB and SQL syntax. + + Assign text to Text property. + Assign desired value to SyntaxType property. + Call SetPos to move caret. + Call ShowMessage to display an error message at the bottom. +} + +unit FMX.fs_synmemo; + +interface + +{$I fs.inc} +{$I fmx.inc} + +uses + System.Classes, System.Variants, System.UIConsts, System.SysUtils, System.UITypes, System.Types, + FMX.Controls, FMX.Forms, FMX.Menus, FMX.Types, FMX.Edit, FMX.Platform, FMX.TreeView +{$IFDEF DELPHI18} + ,FMX.StdCtrls +{$ENDIF} +{$IFDEF DELPHI19} + , FMX.Graphics +{$ENDIF} +{$IFDEF DELPHI19} + , FMX.Text +{$ENDIF} +{$IFDEF DELPHI29} + , FMX.BaseTypeAliases, FMX.FormTypeAliases +{$ENDIF}; + +type + TSyntaxType = (stPascal, stCpp, stJs, stVB, stSQL, stText); + TCharAttr = (caNo, caText, caBlock, caComment, caKeyword, caString); + TCharAttributes = set of TCharAttr; + +type + TfsBorderSettings = class(TPersistent) + private + FFill: TBrush; + FWidth: Integer; + private + procedure SetFill(const Value: TBrush); + procedure SetWidth(const Value: Integer); + public + constructor Create; + destructor Destroy; override; + published + property Fill: TBrush read FFill write SetFill; + property Width: Integer read FWidth write SetWidth; + end; + + TfsFontSettings = class(TPersistent) + private + FFill: TBrush; + FFont: TFont; + procedure SetFill(const Value: TBrush); + procedure SetFont(const Value: TFont); + public + constructor Create; + destructor Destroy; override; + procedure Assign(Source: TPersistent); override; + published + property Fill: TBrush read FFill write SetFill; + property Font: TFont read FFont write SetFont; + end; + +{$i frxPlatformsAttribute.inc} + TfsSyntaxMemo = class(TStyledControl{$IFDEF DELPHI18}, ICaret{$ENDIF}) + private +{$IFDEF DELPHI18} + FCaret: TCaret; +{$ENDIF} + FBorder: TfsBorderSettings; + FFill: TBrush; + FFontSettings: TfsFontSettings; + FGutterFill: TBrush; + FAllowLinesChange: Boolean; + FCharHeight: Single; + FCharWidth: Single; + FDoubleClicked: Boolean; + FDown: Boolean; + FGutterWidth: Integer; + FFooterHeight: Integer; + FIsMonoType: Boolean; + FKeywords: String; + FMaxLength: Integer; + FMessage: String; + FModified: Boolean; + FMoved: Boolean; + FOffset: TPoint; + FPos: TPoint; + FReadOnly: Boolean; + FSelEnd: TPoint; + FSelStart: TPoint; + FSynStrings: TStrings; + FSyntaxType: TSyntaxType; + FTempPos: TPoint; + FText: TStringList; + FKeywordAttr: TfsFontSettings; + FStringAttr: TfsFontSettings; + FTextAttr: TfsFontSettings; + FCommentAttr: TfsFontSettings; + FBlockColor: TAlphaColor; + FBlockFontColor: TAlphaColor; + FUndo: TStringList; + FUpdating: Boolean; + FUpdatingSyntax: Boolean; + FVScroll: TScrollBar; + FWindowSize: TPoint; + FPopupMenu: TPopupMenu; + KWheel: Integer; + LastSearch: String; + FShowGutter: boolean; + FShowFooter: boolean; + Bookmarks: array of Integer; + FActiveLine: Integer; + FOnChange: TNotifyEvent; + FTmpCanvas: TBitmap; + procedure CalcCharSize; + function GetCharWidth(Str: String): Single; + function GetText: TStrings; + procedure SetText(Value: TStrings); + procedure SetSyntaxType(Value: TSyntaxType); + procedure SetShowGutter(Value: boolean); + procedure SetShowFooter(Value: boolean); + function FMemoFind(Text: String; var Position : TPoint): boolean; + function GetCharAttr(Pos: TPoint): TCharAttributes; + function GetLineBegin(Index: Integer): Integer; + function GetPlainTextPos(Pos: TPoint): Integer; + function GetPosPlainText(Pos: Integer): TPoint; + function GetSelText: String; + function LineAt(Index: Integer): String; + function LineLength(Index: Integer): Integer; + function Pad(n: Integer): String; + procedure AddSel; + procedure AddUndo; + procedure ClearSel; + procedure CreateSynArray; + procedure DoChange; + procedure EnterIndent; + procedure SetSelText(Value: String); + procedure ShiftSelected(ShiftRight: Boolean); + procedure ShowCaretPos; + procedure TabIndent; + procedure UnIndent; + procedure UpdateScrollBar; + procedure UpdateSyntax; + procedure DoLeft; + procedure DoRight; + procedure DoUp; + procedure DoDown; + procedure DoHome(Ctrl: Boolean); + procedure DoEnd(Ctrl: Boolean); + procedure DoPgUp; + procedure DoPgDn; + procedure DoChar(Ch: Char); + procedure DoReturn; + procedure DoDel; + procedure DoBackspace; + procedure DoCtrlI; + procedure DoCtrlU; + procedure DoCtrlR; + procedure DoCtrlL; + procedure ScrollClick(Sender: TObject); + procedure ScrollEnter(Sender: TObject); + procedure LinesChange(Sender: TObject); + procedure ShowPos; + procedure BookmarkDraw(Y :Single; ALine : integer); + procedure ActiveLineDraw(Y :Single; ALine : integer); + procedure CorrectBookmark(Line : integer; delta : integer); + procedure SetKeywordAttr(Value: TfsFontSettings); + procedure SetStringAttr(Value: TfsFontSettings); + procedure SetTextAttr(Value: TfsFontSettings); + procedure SetCommentAttr(Value: TfsFontSettings); + procedure SetBorder(const Value: TfsBorderSettings); + procedure SetFill(const Value: TBrush); + procedure SetFontSettings(const Value: TfsFontSettings); + procedure SetGutterFill(const Value: TBrush); + protected + procedure SetParent(const Value: TFmxObject); override; + function GetClientRect: TRectF; + procedure DblClick; override; + procedure MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; + procedure MouseMove(Shift: TShiftState; X, Y: Single); override; + procedure MouseUp(Button: TMouseButton; Shift: TShiftState; X, Y: Single); override; + procedure KeyDown(var Key: Word; var KeyChar: WideChar; Shift: TShiftState); override; + procedure CopyPopup(Sender: TObject); + procedure PastePopup(Sender: TObject); + procedure CutPopup(Sender: TObject); + procedure MouseWheel(Shift: TShiftState; WheelDelta: Integer; var Handled: Boolean); override; + procedure DOver(Sender: TObject; const Data: TDragObject; const Point: TPointF; {$IFNDEF DELPHI20}var Accept: Boolean{$ELSE} var Operation: TDragOperation{$ENDIF}); + procedure DDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF); + procedure DoExit; override; + procedure Resize; override; + procedure UpdateWindowSize; + procedure FontChanged(Sender: TObject); + procedure DialogKey(var Key: Word; Shift: TShiftState); override; +{$IFDEF Delphi18} + function ICaret.GetObject = GetCaret; + function GetCaret: TCustomCaret; + procedure SetCaret(const Value: TCaret); + procedure ShowCaret; + procedure HideCaret; +{$ENDIF} +{$IFDEF Delphi17} + function CreateCaret: TCaret; {$IFNDEF Delphi18} override; {$ENDIF} +{$ENDIF} + procedure SetAttr(aCanvas: TCanvas; a: TCharAttributes); + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure Paint; override; + procedure CopyToClipboard; + procedure CutToClipboard; + procedure PasteFromClipboard; + procedure SetPos(x, y: Integer); + procedure ShowMessage(s: String); + procedure Undo; + procedure UpdateView; + function GetPos: TPoint; + function Find(Text: String): boolean; + property Modified: Boolean read FModified write FModified; + property SelText: String read GetSelText write SetSelText; + function IsBookmark(Line : integer): integer; + procedure AddBookmark(Line, Number : integer); + procedure DeleteBookmark(Number : integer); + procedure GotoBookmark(Number : integer); + procedure SetActiveLine(Line : Integer); + function GetActiveLine: Integer; +{$IFDEF Delphi18} + property Caret: TCaret read FCaret write SetCaret; +{$ENDIF} + published + property Align; + property Anchors; + property DragMode; + property Enabled; + property PopupMenu; + property ShowHint; + property TabOrder; + property Width; + property Height; + property Visible; +{$IFDEF Delphi18} + property Cursor; +{$ENDIF} + property BlockColor: TAlphaColor read FBlockColor write FBlockColor; + property BlockFontColor: TAlphaColor read FBlockFontColor write FBlockFontColor; + property CommentAttr: TfsFontSettings read FCommentAttr write SetCommentAttr; + property KeywordAttr: TfsFontSettings read FKeywordAttr write SetKeywordAttr; + property StringAttr: TfsFontSettings read FStringAttr write SetStringAttr; + property TextAttr: TfsFontSettings read FTextAttr write SetTextAttr; + property Border: TfsBorderSettings read FBorder write SetBorder; + property Fill: TBrush read FFill write SetFill; + property FontSettings: TfsFontSettings read FFontSettings write SetFontSettings; + property GutterFill: TBrush read FGutterFill write SetGutterFill; + property Lines: TStrings read GetText write SetText; + property ReadOnly: Boolean read FReadOnly write FReadOnly; + property SyntaxType: TSyntaxType read FSyntaxType write SetSyntaxType; + property ShowFooter: boolean read FShowFooter write SetShowFooter; + property ShowGutter: boolean read FShowGutter write SetShowGutter; + property OnChange: TNotifyEvent read FOnChange write FOnChange; + property OnClick; + property OnDblClick; + property OnDragDrop; + property OnDragOver; + property OnEnter; + property OnExit; + property OnKeyDown; + property OnMouseDown; + property OnMouseMove; + property OnMouseUp; + end; + + TfsSynMemoSearch = class(TForm) + Search: TButton; + Button1: TButton; + Label1: TLabel; + Edit1: TEdit; + procedure FormKeyPress(Sender: TObject; var Key: Char); + private + { Private declarations } + public + { Public declarations } + end; + +var + SynMemoSearch: TfsSynMemoSearch; + +implementation + +{$R *.FMX} +{$IFDEF DELPHI18} +type THachCaret = class(TCaret); +{$ENDIF} + +const + PasKeywords = + 'and,array,begin,case,const,div,do,downto,else,end,except,finally,'+ + 'for,function,if,in,is,mod,nil,not,of,or,procedure,program,repeat,shl,'+ + 'shr,string,then,to,try,until,uses,var,while,with,xor'; + + CppKeywords = + 'bool,break,case,char,continue,define,default,delete,do,double,else,'+ + 'except,finally,float,for,if,include,int,is,new,return,string,switch,try,'+ + 'variant,void,while'; + + SQLKeywords = + 'active,after,all,alter,and,any,as,asc,ascending,at,auto,' + + 'base_name,before,begin,between,by,cache,cast,check,column,commit,' + + 'committed,computed,conditional,constraint,containing,count,create,' + + 'current,cursor,database,debug,declare,default,delete,desc,descending,' + + 'distinct,do,domain,drop,else,end,entry_point,escape,exception,execute,' + + 'exists,exit,external,extract,filter,for,foreign,from,full,function,' + + 'generator,grant,group,having,if,in,inactive,index,inner,insert,into,is,' + + 'isolation,join,key,left,level,like,merge,names,no,not,null,of,on,only,' + + 'or,order,outer,parameter,password,plan,position,primary,privileges,' + + 'procedure,protected,read,retain,returns,revoke,right,rollback,schema,' + + 'select,set,shadow,shared,snapshot,some,suspend,table,then,to,' + + 'transaction,trigger,uncommitted,union,unique,update,user,using,values,' + + 'view,wait,when,where,while,with,work'; + + JSKeywords = + 'break,case,continue,default,delete,do,else,except,finally,for,function,' + + 'import,in,is,if,new,return,switch,try,var,while,with'; + + VBKeywords = + 'addressof,and,as,byref,byval,case,catch,delete,dim,do,else,elseif,' + + 'end,endif,exit,finally,for,function,if,imports,is,loop,mod,new,next,' + + 'not,or,rem,return,select,set,step,sub,then,to,try,wend,while,with,xor'; + + + WordChars = ['a'..'z', 'A'..'Z', '0'..'9', '_']; + LineBreak: AnsiString = sLineBreak; + +function IsUnicodeChar(Chr: Char): Boolean; +begin + Result := ((Chr >= Char($007F)) and (Chr <= Char($FFFF))); +end; + + +{ TfsSyntaxMemo } + +constructor TfsSyntaxMemo.Create(AOwner: TComponent); +var + m: TMenuItem; + i: integer; +begin + inherited Create(AOwner); + FTmpCanvas := TBitmap.Create(1, 1); +{$IFDEF DELPHI18} + FCaret := CreateCaret; +{$ENDIF} + FVScroll := TScrollBar.Create(Self); + FVScroll.Stored := False; + FVScroll.Orientation := TOrientation.orVertical; + + FFontSettings := TfsFontSettings.Create; + FFontSettings.Font.OnChanged := FontChanged; + FFontSettings.Fill.Color := TAlphaColorRec.Black; + + FCommentAttr := TfsFontSettings.Create; + FCommentAttr.Fill.Color := TAlphaColorRec.Green; + FCommentAttr.Font.Style := [TFontStyle.fsItalic]; + + FKeywordAttr := TfsFontSettings.Create; + FKeywordAttr.FFill.Color := TAlphaColorRec.Navy; + FKeywordAttr.Font.Style := [TFontStyle.fsBold]; + + FStringAttr := TfsFontSettings.Create; + FStringAttr.Fill.Color := TAlphaColorRec.Navy; + FStringAttr.Font.Style := []; + + FTextAttr := TfsFontSettings.Create; + FTextAttr.Fill.Color := TAlphaColorRec.Black; + FTextAttr.Font.Style := []; + + FBorder := TfsBorderSettings.Create; + FFill := TBrush.Create(TBrushKind.bkSolid, TAlphaColorRec.White); + FGutterFill := TBrush.Create(TBrushKind.bkSolid, TAlphaColorRec.Whitesmoke); + + if AOwner is TFmxObject then + Parent := AOwner as TFmxObject; + + OnDragOver := DOver; + OnDragDrop := DDrop; + KWheel := -1; + + + FText := TStringList.Create; + FUndo := TStringList.Create; + FSynStrings := TStringList.Create; + FText.Add(''); + FText.OnChange := LinesChange; + FMaxLength := 1024; + SyntaxType := stPascal; + FMoved := True; + SetPos(1, 1); + FOffset := Point(0, 0); + CanFocus := True; + Cursor := crIBeam; + + FBlockColor := TAlphaColorRec.Blue; + FBlockFontColor := TAlphaColorRec.White; + + FPopupMenu := TPopupMenu.Create(Self); + m := TMenuItem.Create(FPopupMenu); + m.Text := 'Cut'; + m.OnClick := CutPopup; + FPopupMenu.AddObject(m); + m := TMenuItem.Create(FPopupMenu); + m.Text := 'Copy'; + m.OnClick := CopyPopup; + FPopupMenu.AddObject(m); + m := TMenuItem.Create(FPopupMenu); + m.Text := 'Paste'; + m.OnClick := PastePopup; + FPopupMenu.AddObject(m); + + LastSearch := ''; + Setlength(Bookmarks, 10); + for i := 0 to Length(Bookmarks)-1 do + Bookmarks[i] := -1; + + FActiveLine := -1; + + Height := 200; + Width := 200; + CalcCharSize; +end; + +destructor TfsSyntaxMemo.Destroy; +begin + FPopupMenu.Free; + FCommentAttr.Free; + FKeywordAttr.Free; + FStringAttr.Free; + FFontSettings.Free; + FTextAttr.Free; + FText.Free; + FUndo.Free; + FSynStrings.Free; + //FVScroll.Free; + FFill.Free; + FBorder.Free; + FGutterFill.Free; +{$IFDEF DELPHI18} + FCaret.Free; +{$ENDIF} + FreeAndNil(FTmpCanvas); + inherited; +end; + +procedure TfsSyntaxMemo.CalcCharSize; +var + tmpBmp: TBitmap; + r: TRectF; +begin + tmpBmp := TBitmap.Create(1, 1); + with tmpBmp.Canvas do + begin + Font.Assign(FFontSettings.Font); + Font.Style := []; + r := RectF(0, 0, 1000, 1000); + MeasureText(r, 'WWWWWW', True, [], TTextAlign.taLeading); // taLeading returns incorrect results in xe2 + FCharHeight := r.Height + 2; + FCharWidth := r.Width / 6; + FIsMonoType := Pos('COURIER NEW', AnsiUppercase(FFontSettings.Font.Family)) <> 0; + end; + tmpBmp.Free; +end; + +{$IFDEF Delphi17} +function TfsSyntaxMemo.CreateCaret: TCaret; +begin + Result := TCaret.Create(Self); + Result.Visible := True; +{$IFDEF DELPHI20} + Result.ReadOnly := False; + Result.Color := claBlack; +{$ENDIF} + Result.Pos := TPointF.Create(1, 1); +end; +{$ENDIF} + +{$IFDEF DELPHI18} +function TfsSyntaxMemo.GetCaret: TCustomCaret; +begin + Result := FCaret; +end; + +procedure TfsSyntaxMemo.SetCaret(const Value: TCaret); +begin + if Assigned(FCaret) then + FCaret.Assign(Value); +end; + +procedure TfsSyntaxMemo.ShowCaret; +begin + THachCaret(FCaret).Show; +end; + +procedure TfsSyntaxMemo.HideCaret; +begin + THachCaret(FCaret).Hide; +end; +{$ENDIF} + +procedure TfsSyntaxMemo.ShowCaretPos; +var + cWidth: Single; + LineLen: Integer; +begin + cWidth := GetCharWidth(Copy(LineAt(FPos.Y - 1), FOffset.X, FPos.X - 1 - FOffset.X)); + LineLen := LineLength(FPos.Y - 1); + if LineLen < FPos.X then + cWidth := Round(cWidth + FCharWidth * (FPos.X - 1 - LineLen)); +{$IFNDEF Delphi18} +{$IFDEF Delphi17} + if IsFocused then + begin + CaretVisible := False; + SetCaretParams(PointF( + FCharWidth * (FPos.X - 1 - FOffset.X) + FGutterWidth + FBorder.Width + 1, + FCharHeight * (FPos.Y - 1 - FOffset.Y) + 1), + PointF(2, FCharHeight), claBlack); + CaretVisible := True; + end + else + CaretVisible := False; +{$ELSE} + if IsFocused then + begin + SetCaretSize(PointF(2, FCharHeight)); + SetCaretPos(PointF( + FCharWidth * (FPos.X - 1 - FOffset.X) + FGutterWidth + FBorder.Width + 1, + FCharHeight * (FPos.Y - 1 - FOffset.Y) + 1)); + ShowCaretProc; + end + else + HideCaret; +{$ENDIF} +{$ELSE} + if IsFocused then + begin + //SetCaretSize(PointF(2, FCharHeight)); + FCaret.Size := PointF(2, FCharHeight); + FCaret.Pos := PointF( + cWidth + FGutterWidth + FBorder.Width + 1, + FCharHeight * (FPos.Y - 1 - FOffset.Y) + 1); + ShowCaret; +// SetCaretPos(PointF( +// FCharWidth * (FPos.X - 1 - FOffset.X) + FGutterWidth + FBorder.Width + 1, +// FCharHeight * (FPos.Y - 1 - FOffset.Y) + 1)); +// ShowCaretProc; + end + else + HideCaret; +{$ENDIF} +end; + +procedure TfsSyntaxMemo.ShowPos; +var + cRect: TRectF; +begin + if FFooterHeight > 0 then + with Canvas do + begin + Font.Family := 'Tahoma'; + Font.Style := []; + Font.Size := 11; + Fill.Color := TAlphaColorRec.Black; + cRect := GetClientRect; + FillText(RectF(cRect.Left + FGutterWidth + 2, cRect.Bottom - TextHeight('|') - 8, + FGutterWidth + 4 + FCharWidth * 10 , + (Self.Height - TextHeight('|') - 4) + FCharHeight), IntToStr(FPos.y) + + ' : ' + IntToStr(FPos.x) + ' ', FALSE, 1, [], TTextAlign.taLeading); + end; +end; + +procedure TfsSyntaxMemo.SetParent(const Value: TFmxObject); +begin + inherited SetParent(Value); + if (Parent = nil) or (csDestroying in ComponentState) then Exit; + ShowGutter := True; + ShowFooter := True; + FVScroll.Parent := Self; + FVScroll.OnChange := ScrollClick; + FVScroll.OnEnter := ScrollEnter; +end; + +function TfsSyntaxMemo.GetClientRect: TRectF; +begin + if FVScroll.Visible then + Result := RectF(FBorder.Width, FBorder.Width, + Width - FVScroll.Width - FBorder.Width, + Height - FBorder.Width) + else + Result := RectF(FBorder.Width, FBorder.Width, + Width - FBorder.Width, Height - FBorder.Width); +end; + +procedure TfsSyntaxMemo.UpdateSyntax; +begin + CreateSynArray; + Repaint; +end; + +procedure TfsSyntaxMemo.UpdateScrollBar; +begin + with FVScroll do + begin +// prevent OnScroll event + FUpdating := True; + + Value := 0; + ViewportSize := 0; + + Max := FText.Count; + SmallChange := 1; + if FWindowSize.Y < Max then + begin + Visible := True; + ViewportSize := FWindowSize.Y; + end + else + Visible := False; + ViewportSize := FWindowSize.Y; + Value := FOffset.Y; + + FUpdating := False; + end; +end; + +function TfsSyntaxMemo.GetText: TStrings; +var + i: Integer; +begin + for i := 0 to FText.Count - 1 do + FText[i] := LineAt(i); + Result := FText; + FAllowLinesChange := True; +end; + +procedure TfsSyntaxMemo.SetText(Value: TStrings); +begin + FAllowLinesChange := True; + FText.Assign(Value); +end; + +procedure TfsSyntaxMemo.SetSyntaxType(Value: TSyntaxType); +begin + FSyntaxType := Value; + if Value = stPascal then + FKeywords := PasKeywords + else if Value = stCpp then + FKeywords := CppKeywords + else if Value = stSQL then + FKeywords := SQLKeywords + else if Value = stVB then + FKeywords := VBKeywords + else if Value = stJS then + FKeywords := JSKeywords + else + FKeywords := ''; + UpdateSyntax; +end; + +function TfsSyntaxMemo.GetPos: TPoint; +begin + Result := FPos; +end; + +procedure TfsSyntaxMemo.DoChange; +begin + FModified := True; + if Assigned(FOnChange) then + FOnChange(Self); +end; + +procedure TfsSyntaxMemo.LinesChange(Sender: TObject); +begin + if FAllowLinesChange then + begin + UpdateSyntax; + FAllowLinesChange := False; + if FText.Count = 0 then + FText.Add(''); + FMoved := True; + FUndo.Clear; + FPos := Point(1, 1); + FOffset := Point(0, 0); + SetPos(FPos.X, FPos.Y); + ClearSel; + ShowCaretPos; + UpdateScrollBar; + end; +end; + +procedure TfsSyntaxMemo.ShowMessage(s: String); +begin + FMessage := s; + Repaint; +end; + +procedure SetClipboard(const Value: String); +{$IFDEF Delphi17} +var + ClipService: IFMXClipboardService; +begin + if TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, IInterface(ClipService)) then + ClipService.SetClipboard(Value); +end; +{$ELSE} +begin + Platform.SetClipboard(Value); +end; +{$ENDIF} + +function GetClipboard: String; +{$IFDEF Delphi17} +var + ClipService: IFMXClipboardService; +begin + if TPlatformServices.Current.SupportsPlatformService(IFMXClipboardService, IInterface(ClipService)) then + Result := ClipService.GetClipboard.ToString + else + Result := ''; +end; +{$ELSE} +begin + Result := VarToStr(Platform.GetClipboard); +end; +{$ENDIF} + +procedure TfsSyntaxMemo.CopyToClipboard; +begin + if FSelStart.X <> 0 then + SetClipboard(SelText); +end; + +procedure TfsSyntaxMemo.CutToClipboard; +begin + if not FReadOnly then + begin + if FSelStart.X <> 0 then + begin + SetClipboard(SelText); + SelText := ''; + end; + CorrectBookmark(FSelStart.Y, FSelStart.Y - FSelEnd.Y); + Repaint; + end; +end; + +procedure TfsSyntaxMemo.PasteFromClipboard; +begin + if (not FReadOnly) then + SelText := GetClipboard; +end; + +function TfsSyntaxMemo.LineAt(Index: Integer): String; +begin + if Index < FText.Count then + Result := TrimRight(FText[Index]) + else + Result := ''; +end; + +function TfsSyntaxMemo.LineLength(Index: Integer): Integer; +begin + if Index < 0 then + Result := 0 else + Result := Length(LineAt(Index)); +end; + +function TfsSyntaxMemo.Pad(n: Integer): String; +begin + result := ''; + SetLength(result, n); + Result := StringOfChar(Char(' '), n) +end; + +procedure TfsSyntaxMemo.AddUndo; +begin + if not FMoved then exit; + FUndo.Add(Format('%5d%5d', [FPos.X, FPos.Y]) + FText.Text); + if FUndo.Count > 32 then + FUndo.Delete(0); +end; + +procedure TfsSyntaxMemo.Undo; +var + s: String; +begin + FMoved := True; + if FUndo.Count = 0 then exit; + s := FUndo[FUndo.Count - 1]; + FPos.X := StrToInt(Copy(s, 1, 5)); + FPos.Y := StrToInt(Copy(s, 6, 5)); + FText.Text := Copy(s, 11, Length(s) - 10); + FUndo.Delete(FUndo.Count - 1); + SetPos(FPos.X, FPos.Y); + UpdateSyntax; + DoChange; +end; + +function TfsSyntaxMemo.GetPlainTextPos(Pos: TPoint): Integer; +var + i: Integer; +begin + Result := 0; + for i := 0 to Pos.Y - 2 do + Result := Result + Length(FText[i]) + Length(LineBreak); + Result := Result + Pos.X; +end; + +function TfsSyntaxMemo.GetPosPlainText(Pos: Integer): TPoint; +var + i: Integer; + s: String; +begin + Result := Point(0, 1); + s := FText.Text; + i := 1; + while i <= Pos do + if s[i] = Char(LineBreak[1]) then + begin + Inc(i, Length(LineBreak)); + if i <= Pos then + begin + Inc(Result.Y); + Result.X := 0; + end + else + Inc(Result.X); + end + else + begin + Inc(i); + Inc(Result.X); + end; +end; + +function TfsSyntaxMemo.GetLineBegin(Index: Integer): Integer; +var + s: String; +begin + s := FText[Index]; + Result := 1; + if Trim(s) <> '' then + for Result := 1 to Length(s) do + if s[Result] <> ' ' then + break; +end; + +procedure TfsSyntaxMemo.TabIndent; +begin + SelText := Pad(2); +end; + +procedure TfsSyntaxMemo.EnterIndent; +var + res: Integer; +begin + if Trim(FText[FPos.Y - 1]) = '' then + res := FPos.X else + res := GetLineBegin(FPos.Y - 1); + + CorrectBookmark(FPos.Y, 1); + + FPos := Point(1, FPos.Y + 1); + SelText := Pad(res - 1); +end; + +procedure TfsSyntaxMemo.UnIndent; +var + i, res: Integer; +begin + i := FPos.Y - 2; + res := FPos.X - 1; + CorrectBookmark(FPos.Y, -1); + while i >= 0 do + begin + res := GetLineBegin(i); + if (res < FPos.X) and (Trim(FText[i]) <> '') then + break else + Dec(i); + end; + FSelStart := FPos; + FSelEnd := FPos; + Dec(FSelEnd.X, FPos.X - res); + SelText := ''; +end; + +procedure TfsSyntaxMemo.ShiftSelected(ShiftRight: Boolean); +var + i, ib, ie: Integer; + s: String; + Shift: Integer; +begin + if FReadOnly then exit; + AddUndo; + if FSelStart.X + FSelStart.Y * FMaxLength < FSelEnd.X + FSelEnd.Y * FMaxLength then + begin + ib := FSelStart.Y - 1; + ie := FSelEnd.Y - 1; + end + else + begin + ib := FSelEnd.Y - 1; + ie := FSelStart.Y - 1; + end; + if FSelEnd.X = 1 then + Dec(ie); + + Shift := 2; + if not ShiftRight then + for i := ib to ie do + begin + s := FText[i]; + if (Trim(s) <> '') and (GetLineBegin(i) - 1 < Shift) then + Shift := GetLineBegin(i) - 1; + end; + + for i := ib to ie do + begin + s := FText[i]; + if ShiftRight then + s := Pad(Shift) + s + else if Trim(s) <> '' then + Delete(s, 1, Shift); + FText[i] := s; + end; + UpdateSyntax; + DoChange; +end; + +function TfsSyntaxMemo.GetSelText: String; +var + p1, p2: TPoint; + i: Integer; +begin + if FSelStart.X + FSelStart.Y * FMaxLength < FSelEnd.X + FSelEnd.Y * FMaxLength then + begin + p1 := FSelStart; + p2 := FSelEnd; + Dec(p2.X); + end + else + begin + p1 := FSelEnd; + p2 := FSelStart; + Dec(p2.X); + end; + + if LineLength(p1.Y - 1) < p1.X then + begin + Inc(p1.Y); + p1.X := 1; + end; + if LineLength(p2.Y - 1) < p2.X then + p2.X := LineLength(p2.Y - 1); + + i := GetPlainTextPos(p1); + Result := Copy(FText.Text, i, GetPlainTextPos(p2) - i + 1); +end; + +procedure TfsSyntaxMemo.SetSelText(Value: String); +var + p1, p2, p3: TPoint; + i: Integer; + s: String; +begin + if FReadOnly then exit; + AddUndo; + if FSelStart.X = 0 then + begin + p1 := FPos; + p2 := p1; + Dec(p2.X); + end + else if FSelStart.X + FSelStart.Y * FMaxLength < FSelEnd.X + FSelEnd.Y * FMaxLength then + begin + p1 := FSelStart; + p2 := FSelEnd; + Dec(p2.X); + end + else + begin + p1 := FSelEnd; + p2 := FSelStart; + Dec(p2.X); + end; + + if LineLength(p1.Y - 1) < p1.X then + FText[p1.Y - 1] := FText[p1.Y - 1] + Pad(p1.X - LineLength(p1.Y - 1) + 1); + if LineLength(p2.Y - 1) < p2.X then + p2.X := LineLength(p2.Y - 1); + + i := GetPlainTextPos(p1); + s := FText.Text; + Delete(s, i, GetPlainTextPos(p2) - i + 1); + Insert(Value, s, i); + FText.Text := s; + p3 := GetPosPlainText(i + Length(Value)); + + CorrectBookmark(FPos.Y, p3.y-FPos.Y); + + SetPos(p3.X, p3.Y); + FSelStart.X := 0; + DoChange; + UpdateSyntax; +end; + +procedure TfsSyntaxMemo.ClearSel; +begin + if FSelStart.X <> 0 then + begin + FSelStart := Point(0, 0); + Repaint; + end; +end; + +procedure TfsSyntaxMemo.AddSel; +begin + if FSelStart.X = 0 then + FSelStart := FTempPos; + FSelEnd := FPos; + Repaint; +end; + +procedure TfsSyntaxMemo.SetPos(x, y: Integer); +begin + if FMessage <> '' then + begin + FMessage := ''; + Repaint; + end; + + if x > FMaxLength then x := FMaxLength; + if x < 1 then x := 1; + if y > FText.Count then y := FText.Count; + if y < 1 then y := 1; + + FPos := Point(x, y); + if (FWindowSize.X = 0) or (FWindowSize.Y = 0) then exit; + + if FOffset.Y >= FText.Count then + FOffset.Y := FText.Count - 1; + + if FPos.X > FOffset.X + FWindowSize.X then + begin + FOffset.X := FOffset.X + FPos.X - (FOffset.X + FWindowSize.X); + Repaint; + end + else if FPos.X <= FOffset.X then + begin + FOffset.X := FOffset.X - (FOffset.X - FPos.X + 1); + Repaint; + end + else if FPos.Y > FOffset.Y + FWindowSize.Y then + begin + FOffset.Y := FOffset.Y + FPos.Y - (FOffset.Y + FWindowSize.Y); + Repaint; + end + else if FPos.Y <= FOffset.Y then + begin + FOffset.Y := FOffset.Y - (FOffset.Y - FPos.Y + 1); + Repaint; + end; + + ShowCaretPos; + UpdateScrollBar; + +end; + +procedure TfsSyntaxMemo.ScrollClick(Sender: TObject); +begin + if FUpdating then exit; + FOffset.Y := Round(FVScroll.Value); + if FOffset.Y > FText.Count then + FOffset.Y := FText.Count; + ShowCaretPos; + Repaint; +end; + +procedure TfsSyntaxMemo.ScrollEnter(Sender: TObject); +begin + SetFocus; +end; + +procedure TfsSyntaxMemo.DblClick; +var + s: String; +begin + FDoubleClicked := True; + DoCtrlL; + FSelStart := FPos; + s := LineAt(FPos.Y - 1); + if s <> '' then + while CharInSet(s[FPos.X],WordChars) + or IsUnicodeChar(s[FPos.X]) do + Inc(FPos.X); + FSelEnd := FPos; + Repaint; +end; + +function GetComponentForm(Comp: TFmxObject): TCommonCustomForm; +begin + Result := nil; + while (Comp.Parent <> nil) do + begin + if (Comp.Parent is TCommonCustomForm) then + begin + Result := Comp.Parent as TCommonCustomForm; + Exit; + end; + Comp := Comp.Parent; + end; +end; + +procedure TfsSyntaxMemo.MouseDown(Button: TMouseButton; Shift: TShiftState; X, Y: Single); +var + pt: TPointF; + f: TCommonCustomForm; + r: TRectF; + LStr, s: String; + i, cIndex: Integer; + +begin + if FDoubleClicked then + begin + FDoubleClicked := False; + Exit; + end; + if Button = TMouseButton.mbRight then + begin + if PopupMenu = nil then + begin + f := GetComponentForm(Self); + if f <> nil then + begin + pt := f.ClientToScreen(PointF(AbsoluteRect.Left + X, AbsoluteRect.Top + Y)); + FPopUpMenu.Popup(pt.X, pt.Y); + end; + end; + end + else + begin + FMoved := True; + if not IsFocused then + SetFocus; + FDown := True; + if FIsMonoType then + SetPos(Round((X - FGutterWidth) / FCharWidth) + 1 + FOffset.X, + Trunc(Y / FCharHeight) + 1 + FOffset.Y) + else + begin + cIndex := 0; + LStr := LineAt(FPos.Y - 1); + LStr := Copy(LineAt(FPos.Y - 1), FOffset.X + 1, Length(LStr) - (FOffset.X + 1)); + for i := 1 to Length(LStr) do + begin + s := Copy(LStr, 1, i); + r := RectF(0, 0, 100000, 100000); + FTmpCanvas.Canvas.MeasureText(r, s, False, [], TTextAlign.taLeading); + if r.Width >= X - FGutterWidth then + begin + cIndex := i; + break; + end; + end; + SetPos(cIndex + 1 + FOffset.X, + Trunc(Y / FCharHeight) + 1 + FOffset.Y) + end; + ClearSel; + end; +end; + +procedure TfsSyntaxMemo.MouseMove(Shift: TShiftState; X, Y: Single); +begin + if FDown then + begin + FTempPos := FPos; + FPos.X := Round((X - FGutterWidth) / FCharWidth) + 1 + FOffset.X; + FPos.Y := Round(Y / FCharHeight) + 1 + FOffset.Y; + if (FPos.X <> FTempPos.X) or (FPos.Y <> FTempPos.Y) then + begin + SetPos(FPos.X, FPos.Y); + AddSel; + end; + end; +end; + +procedure TfsSyntaxMemo.MouseUp(Button: TMouseButton; Shift: TShiftState; + X, Y: Single); +begin + FDown := False; +end; + +procedure TfsSyntaxMemo.MouseWheel(Shift: TShiftState; WheelDelta: Integer; + var Handled: Boolean); +begin + inherited; + FVScroll.Value := FVScroll.Value + (WheelDelta div ABS(WheelDelta)) * KWheel; +end; + +procedure TfsSyntaxMemo.DialogKey(var Key: Word; Shift: TShiftState); +begin + inherited; + if Key = 9 then + begin + if Shift = [] then + begin + if FSelStart.X <> 0 then + DoCtrlI + else + TabIndent; + end + else if Shift = [ssShift] then + DoCtrlU; + FMoved := True; + end; +end; + +procedure TfsSyntaxMemo.KeyDown(var Key: Word; var KeyChar: WideChar; Shift: TShiftState); +var + MyKey: Boolean; +begin + inherited; + FAllowLinesChange := False; + + FTempPos := FPos; + MyKey := True; + case Key of + vkLeft: + if ssCtrl in Shift then + DoCtrlL else + DoLeft; + + vkRight: + if ssCtrl in Shift then + DoCtrlR else + DoRight; + + vkUp: + DoUp; + + vkDown: + DoDown; + + vkHome: + DoHome(ssCtrl in Shift); + + vkEnd: + DoEnd(ssCtrl in Shift); + + vkPrior: + DoPgUp; + + vkNext: + DoPgDn; + + vkReturn: + if Shift = [] then + DoReturn; + + vkDelete: + if ssShift in Shift then + CutToClipboard else + DoDel; + + vkBack: + DoBackspace; + + vkInsert: + if ssCtrl in Shift then + CopyToClipboard + else if ssShift in Shift then + PasteFromClipboard; + + vkF3: + Find(LastSearch); // F3 Repeat search + + else + MyKey := False; + end; + + if (Shift = [ssCtrl]) or (Shift = [ssCommand]) then + begin + MyKey := True; + if (Key = Ord('c')) or (Key = Ord('C')) then // Ctrl+C Copy + CopyToClipboard + else if (Key = Ord('v')) or (Key = Ord('V')) then // Ctrl+V Paste + PasteFromClipboard + else if (Key = Ord('x')) or (Key = Ord('X')) then // Ctrl+X Cut + CutToClipboard + else if (Key = Ord('z')) or (Key = Ord('Z')) then // Ctrl+Z Undo + Undo + else if (Key = Ord('a')) or (Key = Ord('A')) then // Ctrl+A Select all + begin + SetPos(0, 0); + FSelStart := FPos; + SetPos(LineLength(FText.Count - 1) + 1, FText.Count); + FSelEnd := FPos; + Repaint; + end + else if (Key = Ord('f')) or (Key = Ord('F')) then // Ctrl+F Search + begin + SynMemoSearch := TfsSynMemoSearch.Create(nil); + if SynMemoSearch.ShowModal = mrOk then + Find(SynMemoSearch.Edit1.Text); + LastSearch := SynMemoSearch.Edit1.Text; + SynMemoSearch.Free; + end + else if (Key = Ord('y')) or (Key = Ord('Y')) then // Ctrl+Y Delete line + begin + if FText.Count > FPos.Y then + begin + FMoved := True; + AddUndo; + FText.Delete(FPos.Y - 1); + CorrectBookmark(FPos.Y, -1); + UpdateSyntax; + end + else + if FText.Count = FPos.Y then + begin + FMoved := True; + AddUndo; + FText[FPos.Y - 1] := ''; + FPos.X := 1; + SetPos(FPos.X, FPos.Y); + UpdateSyntax; + end + end + else if Key in [48..57] then + GotoBookmark(Key-48) + else + MyKey := False; + end; + + if Shift = [ssCtrl, ssShift] then + if Key in [48..57] then + if IsBookmark(FPos.Y - 1) < 0 then + AddBookmark(FPos.Y - 1, Key-48) + else + if IsBookmark(FPos.Y - 1) = (Key-48) then + DeleteBookmark(Key-48); + + + if Key in [vkLeft, vkRight, vkUp, vkDown, vkHome, vkEnd, vkPrior, vkNext] then + begin + FMoved := True; + if ssShift in Shift then + AddSel else + ClearSel; + end + else if Key in [vkReturn, vkDelete, vkBack, vkInsert] then + FMoved := True; + + case WideChar(KeyChar) of + #0032..#$FFFF: + if (Shift = []) or (Shift = [ssShift]) then + begin + DoChar(WideChar(KeyChar)); + FMoved := True; + end; + else + MyKey := False; + end; + if MyKey then + Key := 0; +end; + +procedure TfsSyntaxMemo.DoLeft; +begin + Dec(FPos.X); + if FPos.X < 1 then + FPos.X := 1; + SetPos(FPos.X, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoRight; +begin + Inc(FPos.X); + if FPos.X > FMaxLength then + FPos.X := FMaxLength; + SetPos(FPos.X, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoUp; +begin + Dec(FPos.Y); + if FPos.Y < 1 then + FPos.Y := 1; + SetPos(FPos.X, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoDown; +begin + Inc(FPos.Y); + if FPos.Y > FText.Count then + FPos.Y := FText.Count; + SetPos(FPos.X, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoHome(Ctrl: Boolean); +begin + if Ctrl then + SetPos(1, 1) else + SetPos(1, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoEnd(Ctrl: Boolean); +begin + if Ctrl then + SetPos(LineLength(FText.Count - 1) + 1, FText.Count) else + SetPos(LineLength(FPos.Y - 1) + 1, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoExit; +begin +{$IFDEF Delphi17} + inherited; +{$IFNDEF DELPHI18} + CaretVisible := False; +{$ELSE} + HideCaret; +{$ENDIF} +{$ELSE} + Platform.HideVirtualKeyboard; + inherited; + HideCaret; +{$ENDIF} +end; + +procedure TfsSyntaxMemo.DoPgUp; +begin + if FOffset.Y > FWindowSize.Y then + begin + FOffset.Y := FOffset.Y - (FWindowSize.Y - 1); + FPos.Y := FPos.Y - (FWindowSize.Y - 1); + end + else + begin + if FOffset.Y > 0 then + begin + FPos.Y := FPos.Y - FOffset.Y; + FOffset.Y := 0; + end + else + FPos.Y := 1; + end; + SetPos(FPos.X, FPos.Y); + Repaint; +end; + +procedure TfsSyntaxMemo.DoPgDn; +begin + if FOffset.Y + FWindowSize.Y < FText.Count then + begin + FOffset.Y := FOffset.Y + (FWindowSize.Y - 1); + FPos.Y := FPos.Y + (FWindowSize.Y - 1); + end + else + begin + FOffset.Y := FText.Count; + FPos.Y := FText.Count; + end; + SetPos(FPos.X, FPos.Y); + Repaint; +end; + +procedure TfsSyntaxMemo.DoReturn; +var + s: String; +begin + if FReadOnly then exit; + s := LineAt(FPos.Y - 1); + FText[FPos.Y - 1] := Copy(s, 1, FPos.X - 1); + FText.Insert(FPos.Y, Copy(s, FPos.X, FMaxLength)); + EnterIndent; +end; + +procedure TfsSyntaxMemo.DoDel; +var + s: String; +begin + if FReadOnly then exit; + FMessage := ''; + if FSelStart.X <> 0 then + SelText := '' + else + begin + s := FText[FPos.Y - 1]; + AddUndo; + if FPos.X <= LineLength(FPos.Y - 1) then + begin + Delete(s, FPos.X, 1); + FText[FPos.Y - 1] := s; + end + else if FPos.Y < FText.Count then + begin + s := s + Pad(FPos.X - Length(s) - 1) + LineAt(FPos.Y); + FText[FPos.Y - 1] := s; + FText.Delete(FPos.Y); + CorrectBookmark(FSelStart.Y, -1); + end; + UpdateScrollBar; + UpdateSyntax; + DoChange; + end; +end; + +procedure TfsSyntaxMemo.DoBackspace; +var + s: String; +begin + if FReadOnly then exit; + FMessage := ''; + if FSelStart.X <> 0 then + SelText := '' + else + begin + s := FText[FPos.Y - 1]; + if FPos.X > 1 then + begin + if (GetLineBegin(FPos.Y - 1) = FPos.X) or (Trim(s) = '') then + UnIndent + else + begin + AddUndo; + if Trim(s) <> '' then + begin + Delete(s, FPos.X - 1, 1); + FText[FPos.Y - 1] := s; + DoLeft; + end + else + DoHome(False); + UpdateSyntax; + DoChange; + end; + end + else if FPos.Y > 1 then + begin + AddUndo; + CorrectBookmark(FPos.Y, -1); + s := LineAt(FPos.Y - 2); + FText[FPos.Y - 2] := s + FText[FPos.Y - 1]; + FText.Delete(FPos.Y - 1); + SetPos(Length(s) + 1, FPos.Y - 1); + UpdateSyntax; + DoChange; + end; + end; +end; + +procedure TfsSyntaxMemo.DoCtrlI; +begin + if FSelStart.X <> 0 then + ShiftSelected(True); +end; + +procedure TfsSyntaxMemo.DoCtrlU; +begin + if FSelStart.X <> 0 then + ShiftSelected(False); +end; + +procedure TfsSyntaxMemo.DoCtrlL; +var + i: Integer; + s: String; +begin + s := FText.Text; + i := Length(LineAt(FPos.Y - 1)); + if FPos.X > i then + FPos.X := i; + + i := GetPlainTextPos(FPos); + + Dec(i); + while (i > 0) and not (CharInSet(s[i], WordChars) or IsUnicodeChar(s[i])) do + if s[i] = Char(LineBreak[1]) then + break else + Dec(i); + while (i > 0) and (CharInSet(s[i], WordChars) or IsUnicodeChar(s[i])) do + Dec(i); + Inc(i); + + FPos := GetPosPlainText(i); + SetPos(FPos.X, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoCtrlR; +var + i: Integer; + s: String; +begin + s := FText.Text; + i := Length(LineAt(FPos.Y - 1)); + if FPos.X > i then + begin + DoDown; + DoHome(False); + FPos.X := 0; + end; + + i := GetPlainTextPos(FPos); + while (i < Length(s)) and ((CharInSet(s[i], WordChars)) or IsUnicodeChar(s[i])) do + Inc(i); + while (i < Length(s)) and not ((CharInSet(s[i], WordChars)) or IsUnicodeChar(s[i])) do + if s[i] = Char(LineBreak[1]) then + break else + Inc(i); + FPos := GetPosPlainText(i); + SetPos(FPos.X, FPos.Y); +end; + +procedure TfsSyntaxMemo.DoChar(Ch: Char); +begin + SelText := Ch; +end; + +function TfsSyntaxMemo.GetCharAttr(Pos: TPoint): TCharAttributes; + + function IsBlock: Boolean; + var + p1, p2, p3: Integer; + begin + Result := False; + if FSelStart.X = 0 then exit; + + p1 := FSelStart.X + FSelStart.Y * FMaxLength; + p2 := FSelEnd.X + FSelEnd.Y * FMaxLength; + if p1 > p2 then + begin + p3 := p1; + p1 := p2; + p2 := p3; + end; + p3 := Pos.X + Pos.Y * FMaxLength; + Result := (p3 >= p1) and (p3 < p2); + end; + + function CharAttr: TCharAttr; + var + s: String; + begin + if Pos.Y - 1 < FSynStrings.Count then + begin + s := FSynStrings[Pos.Y - 1]; + if Pos.X <= Length(s) then + Result := TCharAttr(Ord(s[Pos.X])) else + Result := caText; + end + else + Result := caText; + end; + +begin + Result := [CharAttr]; + if IsBlock then + Result := Result + [caBlock]; +end; + +function TfsSyntaxMemo.GetCharWidth(Str: String): Single; +var + r: TRectF; + dx: Single; + j, j1: Integer; + a, a1: TCharAttributes; + + function CalcSize(LStr: String): Single; + begin + if FIsMonoType then + begin + Result := FCharWidth * Length(LStr); + Exit; + end; + if LStr = '' then + begin + Result := 0; + Exit; + end; + + r := RectF(0, 0, 100000, 100000); + { MeasureText trunc all spaces at the end, so we are using this hack to calcl size with spaces } + FTmpCanvas.Canvas.MeasureText(r, LStr + 'W', False, [], TTextAlign.taLeading); + dx := r.Width; + FTmpCanvas.Canvas.MeasureText(r, 'W', False, [], TTextAlign.taLeading); + Result := dx - r.Width; + end; +begin + + j1 := 1; + a := GetCharAttr(Point(1, FPos.Y)); + a1 := a; + Result := 0; + + for j := 1 to Length(Str) do + begin + a1 := GetCharAttr(Point(j, FPos.Y)); + if a1 <> a then + begin + SetAttr(FTmpCanvas.Canvas, a); + Result := Result + CalcSize(Copy(Str, j1, (j - j1))); + a := a1; + j1 := j; + end; + end; + SetAttr(FTmpCanvas.Canvas, a); + Result := Result + CalcSize(Copy(Str, j1, Length(Str) - (j1 - 1))); +end; + +procedure TfsSyntaxMemo.Paint; +var + i, j, j1: Integer; + a, a1: TCharAttributes; + s: String; + x, y: Single; + aClientR: TRectF; + aSelColor, aSelFontColor: TAlphaColor; + + procedure SetAttrL(a: TCharAttributes); + begin + SetAttr(Canvas, a); + aSelColor := FFill.Color; + aSelFontColor := Canvas.Fill.Color; + if caBlock in a then + begin + aSelColor := FBlockColor; + aSelFontColor := FBlockFontColor; + end; + + // make non-selected text looking good + if aSelColor = FFill.Color then + aSelColor := 0; + end; + + function MyTextOut(x, y: Single; const s: String): Single; + var + i: Integer; + dx, dy: Single; + r: TRectF; + begin + with Canvas do + begin + r := RectF(0, 0, 100000, 100000); + { MeasureText trunc all spaces at the end, so we are using this hack to calcl size with spaces } + Canvas.MeasureText(r, s + 'W',False, [], TTextAlign.taLeading); + dx := r.Width + x; + Canvas.MeasureText(r, 'W', False, [], TTextAlign.taLeading); + dx := dx - r.Width; + if dx > (aClientR.Right - aClientR.Left) then + dx := aClientR.Right - aClientR.Left; + dy := y + FCharHeight; + if FIsMonoType then + dx := x + FCharWidth * Length(s); + Fill.Color := aSelColor; + FillRect(RectF(x + 1, y, dx + 1, dy + 1), 0, 0, AllCorners, 1); + Fill.Color := aSelFontColor; + if FIsMonoType then + FillText(RectF(x, y, dx + 1, 10000), + s, False, 1, [], TTextAlign.taLeading, TTextAlign.taLeading) + else + begin + for i := 1 to Length(s) do + FillText(RectF(x + (i - 1) * FCharWidth, y, + (x + (i - 1) * FCharWidth) + FCharWidth, y + FCharHeight), + s[i], False, 1, FillTextFlags, TTextAlign.taLeading, TTextAlign.taLeading); + end; + end; + Result := dx; + end; + +begin + aClientR := GetClientRect; + with Canvas do + begin + Fill.Assign(FBorder.Fill); + FillRect(RectF(0, 0, Self.Width , Self.Height), 0, 0, AllCorners, 1, TCornerType.ctBevel); + Fill.Assign(FFill); + FillRect(aClientR, 0, 0, AllCorners, 1, TCornerType.ctBevel); + Fill.Assign(FGutterFill); + FillRect(RectF(FGutterWidth - aClientR.Left, + Self.Height - FFooterHeight - aClientR.Top, + aClientR.Left, aClientR.Top), 0, 0, AllCorners, 1, TCornerType.ctBevel); + FillRect(RectF(aClientR.Left, Self.Height - FFooterHeight - aClientR.Top, + Self.Width - aClientR.Left, Self.Height - aClientR.Top), 1, 1, + AllCorners, 1, TCornerType.ctBevel); + + Stroke.Assign(FBorder.Fill); +{$IFDEF DELPHI25} + Stroke.Cap := TStrokeCap.scRound; + Stroke.Thickness := FBorder.Width; +{$ELSE} + StrokeCap := TStrokeCap.scRound; + StrokeThickness := FBorder.Width; +{$ENDIF} + x := FGutterWidth - FBorder.Width; + DrawLine(PointF(x, aClientR.Top + 1), PointF(x, aClientR.Bottom - FFooterHeight ), 1); + if FFooterHeight > 0 then + DrawLine(PointF(x, aClientR.Bottom - FFooterHeight), + PointF(aClientR.Right - 1, aClientR.Bottom - FFooterHeight), 1); + if FUpdatingSyntax then Exit; + + for i := FOffset.Y to FOffset.Y + FWindowSize.Y - 1 do + begin + if i >= FText.Count then break; + + s := FText[i]; + j1 := FOffset.X + 1; + a := GetCharAttr(Point(j1, i + 1)); + a1 := a; + x := FGutterWidth + FBorder.Width; + y := aClientR.Top + (i - FOffset.Y) * FCharHeight; + for j := j1 to FOffset.X + FWindowSize.X do + begin + if j > Length(s) then break; + + a1 := GetCharAttr(Point(j, i + 1)); + if a1 <> a then + begin + SetAttrL(a); + x := MyTextOut(x, y, Copy(FText[i], j1, j - j1)); + a := a1; + j1 := j; + end; + end; + + SetAttrL(a); + + MyTextOut(x, y, Copy(s, j1, FMaxLength)); + + BookmarkDraw(y, i); + ActiveLineDraw(y, i); + end; + + if FMessage <> '' then + begin + Font.Family := 'Tahoma'; + Font.Style := [TFontStyle.fsBold]; + Font.Size := 8; + Fill.Color := TAlphaColorRec.Maroon; + FillRect(RectF(aClientR.Left, aClientR.Bottom - TextHeight('|') - 6, aClientR.Right , aClientR.Bottom), 0, 0, + AllCorners, 1, TCornerType.ctBevel); + Fill.Color := TAlphaColorRec.White; + FillText(RectF(aClientR.Left + 6, aClientR.Bottom - TextHeight('|') - 5, + 6 + TextWidth('W') * Length(FMessage), aClientR.Bottom), FMessage, + False, 1, [], TTextAlign.taLeading) + end + else + ShowPos; + end; +end; + +procedure TfsSyntaxMemo.CreateSynArray; +var + i, n, Pos: Integer; + ch: Char; + FSyn: String; + + procedure SkipSpaces; + begin + while (Pos <= Length(FSyn)) and + ((CharInSet(FSyn[Pos], [#1..#32])) or + not (CharInSet(FSyn[Pos],['_', 'A'..'Z', 'a'..'z', '''', '"', '/', '{', '(', '-']))) do + Inc(Pos); + end; + + function IsKeyWord(const s: String): Boolean; + begin + Result := False; + if FKeywords = '' then exit; + + if FKeywords[1] <> ',' then + FKeywords := ',' + FKeywords; + if FKeywords[Length(FKeywords)] <> ',' then + FKeywords := FKeywords + ','; + + Result := System.Pos(',' + AnsiLowerCase(s) + ',', FKeywords) <> 0; + end; + + function GetIdent: TCharAttr; + var + i: Integer; + cm1, cm2, cm3, cm4, st1: Char; + begin + i := Pos; + Result := caText; + + if FSyntaxType = stPascal then + begin + cm1 := '/'; + cm2 := '{'; + cm3 := '('; + cm4 := ')'; + st1 := ''''; + end + else if FSyntaxType in [stCpp,stJs,stVb] then + begin + cm1 := '/'; + cm2 := ' '; + cm3 := '/'; + cm4 := '/'; + st1 := '"'; + end + else if FSyntaxType = stSQL then + begin + cm1 := '-'; + cm2 := ' '; + cm3 := '/'; + cm4 := '/'; + st1 := '"'; + end + else + begin + cm1 := ' '; + cm2 := ' '; + cm3 := ' '; + cm4 := ' '; + st1 := ' '; + end; + + if CharInSet(FSyn[Pos], ['_', 'A'..'Z', 'a'..'z']) then + begin + while CharInSet(FSyn[Pos], ['_', 'A'..'Z', 'a'..'z', '0'..'9']) do + Inc(Pos); + if IsKeyWord(Copy(FSyn, i, Pos - i)) then + Result := caKeyword; + Dec(Pos); + end + else if (FSyn[Pos] = cm1) and (FSyn[Pos + 1] = cm1) then + begin + while (Pos <= Length(FSyn)) and not (CharInSet(FSyn[Pos], [#10, #13])) do + Inc(Pos); + Result := caComment; + end + else if FSyn[Pos] = cm2 then + begin + while (Pos <= Length(FSyn)) and (FSyn[Pos] <> '}') do + Inc(Pos); + Result := caComment; + end + else if (FSyn[Pos] = cm3) and (FSyn[Pos + 1] = '*') then + begin + while (Pos < Length(FSyn)) and not ((FSyn[Pos] = '*') and (FSyn[Pos + 1] = cm4)) do + Inc(Pos); + Inc(Pos, 2); + Result := caComment; + end + else if FSyn[Pos] = st1 then + begin + Inc(Pos); + while (Pos < Length(FSyn)) and (FSyn[Pos] <> st1) and not (CharInSet(FSyn[Pos], [#10, #13])) do + Inc(Pos); + Result := caString; + end; + Inc(Pos); + end; + +begin + FSyn := FText.Text + #0#0#0#0#0#0#0#0#0#0#0; + FAllowLinesChange := False; + Pos := 1; + + while Pos < Length(FSyn) do + begin + n := Pos; + SkipSpaces; + for i := n to Pos - 1 do + if FSyn[i] > #31 then + FSyn[i] := Chr(Ord(caText)); + + n := Pos; + ch := Chr(Ord(GetIdent)); + for i := n to Pos - 1 do + if i <= Length(FSyn) then + if FSyn[i] > #31 then + FSyn[i] := ch; + end; + + FUpdatingSyntax := True; + FSynStrings.Text := FSyn; + FSynStrings.Add(' '); + FUpdatingSyntax := False; +end; + +procedure TfsSyntaxMemo.UpdateView; +begin + UpdateSyntax; + Repaint; +end; + +procedure TfsSyntaxMemo.UpdateWindowSize; +begin + if FCharWidth = 0 then exit; + FWindowSize := Point(Trunc((Width - FGutterWidth - FBorder.Width * 2) / FCharWidth), + Trunc((Height - FFooterHeight - FBorder.Width * 2) / FCharHeight)); +end; + +procedure TfsSyntaxMemo.CopyPopup(Sender: TObject); +begin + CopyToClipboard; +end; + +procedure TfsSyntaxMemo.PastePopup(Sender: TObject); +begin + PasteFromClipboard; +end; + +procedure TfsSyntaxMemo.Resize; +begin + inherited; + UpdateWindowSize; + FVScroll.Position.Y := FBorder.Width; + FVScroll.Height := Height - FFooterHeight - FBorder.Width; + FVScroll.Width := 16; + FVScroll.Position.X := Width - FVScroll.Width - FBorder.Width; + UpdateScrollBar; +end; + +procedure TfsSyntaxMemo.CutPopup(Sender: TObject); +begin + CutToClipboard; +end; + +procedure TfsSyntaxMemo.SetShowGutter(Value: boolean); +begin + FShowGutter := Value; + if Value then + FGutterWidth := 20 + else + FGutterWidth := 0; + Repaint; +end; + +procedure TfsSyntaxMemo.SetShowFooter(Value: boolean); +begin + FShowFooter := Value; + if Value then + FFooterHeight := 20 + else + FFooterHeight := 0; + Repaint; +end; + +function TfsSyntaxMemo.FMemoFind(Text: String; var Position : TPoint): boolean; +var + i, j : integer; +begin + j := 0; + result := False; + if FText.Count > 1 then + begin + Text := UpperCase(Text); + for i := Position.Y to FText.Count - 1 do + begin + j := Pos( Text, UpperCase(FText[i])); + if j > 0 then + begin + Result := True; + break; + end + end; + Position.X := j; + Position.Y := i + 1; + end; +end; + +procedure TfsSyntaxMemo.FontChanged(Sender: TObject); +begin + FCommentAttr.Font.Size := FFontSettings.Font.Size; + FCommentAttr.Font.Family := FFontSettings.Font.Family; + FKeywordAttr.Font.Size := FFontSettings.Font.Size; + FKeywordAttr.Font.Family := FFontSettings.Font.Family; + FStringAttr.Font.Size := FFontSettings.Font.Size; + FStringAttr.Font.Family := FFontSettings.Font.Family; + FTextAttr.Font.Size := FFontSettings.Font.Size; + FTextAttr.Font.Family := FFontSettings.Font.Family; + CalcCharSize; + { need to uptade size, maybe font size was changed } + UpdateWindowSize; +end; + +function TfsSyntaxMemo.Find(Text: String): boolean; +var + Position: TPoint; +begin + Position := FPos; + if FMemoFind(Text, Position) then + begin + SetPos(Position.X, Position.Y); + result := true; + end + else + begin + ShowMessage('Text "'+Text+'" not found.'); + result := false; + end; +end; + +procedure TfsSyntaxMemo.ActiveLineDraw(Y : Single; ALine : integer); +begin + if ShowGutter then + with Canvas do + if ALine = FActiveLine then + begin + Fill.Color := TAlphaColorRec.Red; + //Pen.Color := clBlack; + FillEllipse(RectF(4, Y + 4, 11, Y + 15), 1); + end; +end; + +procedure TfsSyntaxMemo.BookmarkDraw(Y : Single; ALine : integer); +var + bm : integer; +begin + if ShowGutter then + with Canvas do + begin + bm := IsBookmark(ALine); + if bm >= 0 then + begin + Fill.Color := TAlphaColorRec.Black; + FillRect(RectF(3 + Border.Width, Y + 1, 13 + Border.Width, Y + 12), 0, 0, + AllCorners, 1, TCornerType.ctBevel); + Fill.Color := TAlphaColorRec.Green; + FillRect(RectF(2 + Border.Width, Y + 2, 12 + Border.Width, Y + 13), 0, 0, + AllCorners, 1, TCornerType.ctBevel); + Font.Family := 'Tahoma'; + Fill.Color := TAlphaColorRec.White; + Font.Style := [TFontStyle.fsBold]; + Font.Size := 7; + y := y + 2.0; + FillText(RectF(4 + Border.Width, Y, 4 + TextWidth('7') + Border.Width, + Y + TextHeight('7')), IntToStr(bm), False, 1, [], TTextAlign.taLeading) + end; + end; +end; + +function TfsSyntaxMemo.IsBookmark(Line : integer): integer; +var + Pos : integer; +begin + Result := -1; + for Pos := 0 to Length(Bookmarks) - 1 do + if Bookmarks[Pos] = Line then + begin + Result := Pos; + break; + end; +end; + +procedure TfsSyntaxMemo.AddBookmark(Line, Number : integer); +begin + if Number < Length(Bookmarks) then + begin + Bookmarks[Number] := Line; + Repaint; + end; +end; + +procedure TfsSyntaxMemo.DeleteBookmark(Number : integer); +begin + if Number < Length(Bookmarks) then + begin + Bookmarks[Number] := -1; + Repaint; + end; +end; + +procedure TfsSyntaxMemo.CorrectBookmark(Line : integer; delta : integer); +var + i : integer; +begin + for i := 0 to Length(Bookmarks) - 1 do + if Bookmarks[i] >= Line then + Inc(Bookmarks[i], Delta); +end; + +procedure TfsSyntaxMemo.GotoBookmark(Number : integer); +begin + if Number < Length(Bookmarks) then + if Bookmarks[Number] >= 0 then + SetPos(0, Bookmarks[Number] + 1); +end; + +procedure TfsSyntaxMemo.DOver(Sender: TObject; const Data: TDragObject; const Point: TPointF; {$IFNDEF DELPHI20}var Accept: Boolean{$ELSE} var Operation: TDragOperation{$ENDIF}); +begin +{$IFNDEF DELPHI20} + Accept := Data.Source is TTreeView; +{$ELSE} + if Data.Source is TTreeView then + Operation := TDragOperation.Copy; +{$ENDIF} +end; + +procedure TfsSyntaxMemo.DDrop(Sender: TObject; const Data: TDragObject; const Point: TPointF); +begin + if Data.Source is TTreeView then + begin + SetPos(Round((Point.X - FGutterWidth) / FCharWidth) + 1 + FOffset.X, + Round(Point.Y / FCharHeight) + 1 + FOffset.Y); + SetSelText(TTreeView(Data.Source).Selected.Text); + end; +end; + +procedure TfsSyntaxMemo.SetKeywordAttr(Value: TfsFontSettings); +begin + FKeywordAttr.Assign(Value); + UpdateSyntax; +end; + +procedure TfsSyntaxMemo.SetStringAttr(Value: TfsFontSettings); +begin + FStringAttr.Assign(Value); + UpdateSyntax; +end; + +procedure TfsSyntaxMemo.SetTextAttr(Value: TfsFontSettings); +begin + FTextAttr.Assign(Value); + UpdateSyntax; +end; + +procedure TfsSyntaxMemo.SetCommentAttr(Value: TfsFontSettings); +begin + FCommentAttr.Assign(Value); + UpdateSyntax; +end; + +procedure TfsSyntaxMemo.SetFill(const Value: TBrush); +begin + FFill.Assign(Value); +end; + +procedure TfsSyntaxMemo.SetFontSettings(const Value: TfsFontSettings); +begin + FFontSettings.Assign(Value); +end; + +procedure TfsSyntaxMemo.SetGutterFill(const Value: TBrush); +begin + FGutterFill.Assign(Value); +end; + +procedure TfsSyntaxMemo.SetActiveLine(Line : Integer); +begin + FActiveLine := Line; + Repaint; +end; + +procedure TfsSyntaxMemo.SetAttr(aCanvas: TCanvas; a: TCharAttributes); +begin + with aCanvas do + begin + Font.Assign(FFontSettings.Font); + Canvas.Fill.Assign(FFontSettings.Fill); + + if caText in a then + begin + Font.Assign(FTextAttr.Font); + Canvas.Fill.Assign(FTextAttr.Fill); + end; + + if caComment in a then + begin + Font.Assign(FCommentAttr.Font); + Canvas.Fill.Assign(FCommentAttr.Fill); + end; + + if caKeyword in a then + begin + Font.Assign(FKeywordAttr.Font); + Canvas.Fill.Assign(FKeywordAttr.Fill); + end; + + if caString in a then + begin + Font.Assign(FStringAttr.Font); + Canvas.Fill.Assign(FStringAttr.Fill); + end; + end; +end; + + + +procedure TfsSyntaxMemo.SetBorder(const Value: TfsBorderSettings); +begin + FBorder.Fill.Assign(Value.Fill); + FBorder.Width := Value.Width; +end; + +function TfsSyntaxMemo.GetActiveLine: Integer; +begin + Result := FActiveLine; +end; + +procedure TfsSynMemoSearch.FormKeyPress(Sender: TObject; var Key: Char); +begin + if Key = #13 then + ModalResult := mrOk; +end; + +{ TfsBorderSettings } + +constructor TfsBorderSettings.Create; +begin + FFill := TBrush.Create(TBrushKind.bkSolid, TAlphaColorRec.Silver); + FWidth := 1; +end; + +destructor TfsBorderSettings.Destroy; +begin + FFill.Free; + inherited; +end; + +procedure TfsBorderSettings.SetFill(const Value: TBrush); +begin + FFill.Assign(Value); +end; + +procedure TfsBorderSettings.SetWidth(const Value: Integer); +begin + if Value > 3 then + FWidth := 3 + else if Value < 0 then + FWidth := 0 + else + FWidth := Value; +end; + +{ TfsFontSettings } + +procedure TfsFontSettings.Assign(Source: TPersistent); +begin + inherited; + if Source is TfsFontSettings then + begin + Fill.Assign(TfsFontSettings(Source).Fill); + Font.Assign(TfsFontSettings(Source).Font); + end; +end; + +constructor TfsFontSettings.Create(); +begin + FFill := TBrush.Create(TBrushKind.bkSolid, TAlphaColorRec.Black); + FFont := TFont.Create; + FFont.Family := 'Courier New'; + FFont.Size := 13; +end; + +destructor TfsFontSettings.Destroy; +begin + FFill.Free; + FFont.Free; + inherited; +end; + +procedure TfsFontSettings.SetFill(const Value: TBrush); +begin + FFill.Assign(Value); +end; + +procedure TfsFontSettings.SetFont(const Value: TFont); +begin + FFont.Assign(Value); +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsSyntaxMemo, TFmxObject); + GroupDescendentsWith(TfsBorderSettings, TFmxObject); + GroupDescendentsWith(TfsFontSettings, TFmxObject); + + RegisterFmxClasses([TfsBorderSettings, TfsFontSettings]); + +end. diff --git a/FastScript/FMX/FMX.fs_tree.pas b/FastScript/FMX/FMX.fs_tree.pas new file mode 100644 index 0000000..be82786 --- /dev/null +++ b/FastScript/FMX/FMX.fs_tree.pas @@ -0,0 +1,659 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Function/Classes tree FMX visual control } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_tree; + +interface + +{$I fs.inc} + +uses + FMX.Types, + System.SysUtils, System.Classes, FMX.Controls, FMX.Forms, FMX.Dialogs, + FMX.ExtCtrls, FMX.fs_synmemo, FMX.Objects, + FMX.fs_XML, FMX.fs_iinterpreter, FMX.TreeView, FMX.Memo, System.UITypes, System.Types +{$IFDEF DELPHI18} + ,FMX.StdCtrls +{$ENDIF} +{$IFDEF DELPHI19} + , FMX.Graphics +{$ENDIF} +{$IFDEF DELPHI29} + , FMX.BaseTypeAliases, FMX.FormTypeAliases +{$ENDIF}; + +type + TfsTreeViewItem = class(TTreeViewItem) + private + FButton: TCustomButton; + FCloseImageIndex: Integer; + FOpenImageIndex: Integer; + FImgPos: Single; + function GetBitmap():TBitmap; + protected + procedure ApplyStyle; override; + public + constructor Create(AOwner: TComponent); override; + procedure Paint; override; + property CloseImageIndex: Integer read FCloseImageIndex write FCloseImageIndex; + property OpenImageIndex: Integer read FOpenImageIndex write FOpenImageIndex; + end; + +{$i frxPlatformsAttribute.inc} + + TfsTreeView = class(TTreeView) + private + FPicBitmap: TBitmap; + FIconWidth: Integer; + FIconHeight: Integer; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure LoadResouces(Stream: TStream; IconWidth, IconHeight: Integer); + property PicPitmap: TBitmap read FPicBitmap write FPicBitmap; + property IconWidth: Integer read FIconWidth write FIconWidth; + property IconHeight: Integer read FIconHeight write FIconHeight; + function GetBitmapRect(Index: Integer): TRectF; + procedure DragOver(const Data: TDragObject; const Point: TPointF; {$IFNDEF DELPHI20}var Accept: Boolean{$ELSE} var Operation: TDragOperation{$ENDIF}); override; + procedure DragDrop(const Data: TDragObject; const Point: TPointF); override; + published + property StyleLookup; + property CanFocus default True; + property DisableFocusEffect; + property TabOrder; + property AllowDrag default False; + property AlternatingRowBackground default False; + property ItemHeight; +// property HideSelectionUnfocused default False; + property MultiSelect default False; + property ShowCheckboxes default False; + property Sorted default False; + property OnChange; + property OnChangeCheck; + property OnCompare; + property OnDragChange; + end; + +{$i frxPlatformsAttribute.inc} + TfsTree = class(TPanel) + private + Tree: TfsTreeView; + FXML: TfsXMLDocument; + FScript: TfsScript; + FImages: TList; + FShowFunctions: boolean; + FShowClasses: boolean; + FShowTypes: Boolean; + FShowVariables: Boolean; + FExpanded: boolean; + FExpandLevel : integer; + FMemo: TfsSyntaxMemo; + FUpdating: Boolean; + procedure FillTree; + + procedure SetMemo(Value: TfsSyntaxMemo); + + procedure SetScript(const Value: TfsScript); + protected + {$IFDEF DELPHI19} + procedure CreateImageFromRes(Image: TImage; Bmp: FMX.Graphics.TBitmap; + Width, Height: Integer; Index: Integer); + {$ELSE} + procedure CreateImageFromRes(Image: TImage; Bmp: FMX.Types.TBitmap; + Width, Height: Integer; Index: Integer); +{$ENDIF} + + procedure TreeChange(Sender: TObject; Node: TTreeViewItem); + procedure TreeDblClick(Sender: TObject); + procedure Notification(AComponent: TComponent; + Operation: TOperation); override; + protected + procedure Loaded; override; + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure SetColor(Color: TAlphaColor); + procedure UpdateItems; + function GetFieldName: String; + published + property Align; + property Anchors; + property DragMode; + property Enabled; + property PopupMenu; + property Script: TfsScript read FScript write SetScript; + property ShowHint; + property TabOrder; + property Visible; + + property SyntaxMemo: TfsSyntaxMemo read FMemo write SetMemo; + property ShowClasses: boolean read FShowClasses write FShowClasses; + property ShowFunctions: boolean read FShowFunctions write FShowFunctions; + property ShowTypes: boolean read FShowTypes write FShowTypes; + property ShowVariables: boolean read FShowVariables write FShowVariables; + property Expanded: boolean read FExpanded write FExpanded; + property ExpandLevel: integer read FExpandLevel write FExpandLevel; + + property OnClick; + property OnDblClick; + property OnDragDrop; + property OnDragOver; + property OnEnter; + property OnExit; + property OnKeyDown; + property OnMouseDown; + property OnMouseMove; + property OnMouseUp; + property Left; + property Top; + property Width; + property Height; + end; + +implementation + +{$IFNDEF FPC} + {$R fs_tree.res} +{$ENDIF} + +uses FMX.fs_iTools; + +constructor TfsTree.Create(AOwner: TComponent); +var + S: TResourceStream; +begin + inherited; + DragMode := TDragMode.dmManual; + Tree := TfsTreeView.Create(Self); + Tree.Stored := False; + with Tree do + begin + Parent := Self; + DragMode := TDragMode.dmAutomatic; + Align := TAlignLayout.alClient; + TabOrder := 0; + end; + FImages := TList.Create(); + S := TResourceStream.Create(HInstance, 'FSTREEFMX', RT_RCDATA);//RT_RCDATA + S.Position := 0; + Tree.LoadResouces(S, 16, 16); + S.Free; + Tree.OnDblClick := TreeDblClick; + FXML := TfsXMLDocument.Create; + Expanded := True; + ExpandLevel := 0; + ShowClasses := True; + ShowFunctions := True; + ShowTypes := True; + ShowVariables := True; + UpdateItems; + Top := 0; + Left := 0; + Height := 250; + Width := 200; +end; + + + {$IFDEF DELPHI19} +procedure TfsTree.CreateImageFromRes(Image: TImage; Bmp: FMX.Graphics.TBitmap; + Width, Height, Index: Integer); + {$ELSE} +procedure TfsTree.CreateImageFromRes(Image: TImage; Bmp: FMX.Types.TBitmap; + Width, Height, Index: Integer); +{$ENDIF} +begin + Image.Width := Width; + Image.Height := Height; + Image.Bitmap.SetSize(Width, Height); + Image.Bitmap.Canvas.BeginScene; + Image.Bitmap.Canvas.DrawBitmap(Bmp, RectF(Width * Index , 0, Width * Index + Width , Height), RectF(0, 0, Width, Height), 1 ); + Image.Bitmap.Canvas.EndScene; + //Image.Bitmap.BitmapChanged; +end; + +destructor TfsTree.Destroy; +begin + FImages.Free; + Tree.Free; + FUpdating := True; + FXML.Free; + inherited; +end; + +procedure TfsTree.FillTree; + + function GetCategoryByName(s: String): String; + begin + if s = 'ctConv' then result := 'Conversion' + else if s = 'ctFormat' then result := 'Formatting' + else if s = 'ctDate' then result := 'Date/Time' + else if s = 'ctString' then result := 'String routines' + else if s = 'ctMath' then result := 'Mathematical' + else if s = 'ctOther' then result := 'Other' + else result := s; + end; + + procedure AddClasses(xi: TfsXMLItem; Root: TfsTreeViewItem); + var + i: Integer; + Node: TfsTreeViewItem; + s: String; + begin + s := xi.Prop['text']; + Node := TfsTreeViewItem.Create(Tree); + Node.Text := s; + if Root <> nil then + Node.Parent := Root + else + Node.Parent := Tree; + Node.Parent.AddObject(Node); + if Root = nil then + Node.Text := xi.Name; + if xi.Count = 0 then + begin + Node.OpenImageIndex := 1; + Node.CloseImageIndex := 1; + end + else + begin + Node.OpenImageIndex := 3; + Node.CloseImageIndex := 2; + end; + for i := 0 to xi.Count - 1 do + AddClasses(xi[i], Node); + end; + + procedure AddFunctions(xi: TfsXMLItem; Root: TfsTreeViewItem); + var + i: Integer; + Node: TfsTreeViewItem; + s: String; + begin + s := xi.Prop['text']; + if xi.Count = 0 then + s := Copy(s, Pos(' ', s) + 1, 255) else { function } + s := GetCategoryByName(s); { category } + Node := TfsTreeViewItem.Create(Tree); + Node.DragMode := TDragMode.dmAutomatic; + Node.Text := s; + if Root <> nil then + Node.Parent := Root + else + Node.Parent := Tree; + Node.Parent.AddObject(Node); + if Root = nil then + Node.Text := xi.Name; + if xi.Count = 0 then + begin + Node.OpenImageIndex := 0; + Node.CloseImageIndex := 0; + end + else + begin + Node.OpenImageIndex := 3; + Node.CloseImageIndex := 2; + end; + for i := 0 to xi.Count - 1 do + AddFunctions(xi[i], Node); + end; + + procedure AddTypes(xi: TfsXMLItem; Root: TfsTreeViewItem); + var + i: Integer; + Node: TfsTreeViewItem; + s: String; + begin + s := Copy(xi.Prop['text'], 1, 255); + Node := TfsTreeViewItem.Create(Tree); + Node.Text := s; + if Root <> nil then + Node.Parent := Root + else + Node.Parent := Tree; + Node.Parent.AddObject(Node); + if Root = nil then + Node.Text := xi.Name; + if xi.Count = 0 then + begin + Node.OpenImageIndex := 0; + Node.CloseImageIndex := 0; + end + else + begin + Node.OpenImageIndex := 3; + Node.CloseImageIndex := 2; + end; + for i := 0 to xi.Count - 1 do + AddTypes(xi[i], Node); + end; + + procedure AddVariables(xi: TfsXMLItem; Root: TfsTreeViewItem); + var + i: Integer; + Node: TfsTreeViewItem; + s: String; + begin + s := xi.Prop['text']; + Node := TfsTreeViewItem.Create(Tree); + Node.Text := s; + if Root <> nil then + Node.Parent := Root + else + Node.Parent := Tree; + Node.Parent.AddObject(Node); + if Root = nil then + Node.Text := xi.Name; + if xi.Count = 0 then + begin + Node.OpenImageIndex := 0; + Node.CloseImageIndex := 0; + end + else + begin + Node.OpenImageIndex := 3; + Node.CloseImageIndex := 2; + end; + for i := 0 to xi.Count - 1 do + AddVariables(xi[i], Node); + end; + + procedure ExpandNodes(level: integer); + var + j : integer; + + procedure ExpandNode(Node: TTreeViewItem; level: integer); + var + j : integer; + begin + if Node.Level < level then + for j := 0 to Node.Count - 1 do + begin + if Node.Items[j].Level < Level then + Node.Items[j].IsExpanded := True; + ExpandNode(Node.Items[j], Level); + end; + end; + begin + if level > 0 then + for j := 0 to Tree.Count - 1 do + begin + if Tree.Items[j].Level <= Level then + Tree.Items[j].IsExpanded := True; + ExpandNode(Tree.Items[j], Level); + end; + end; + +begin + FUpdating := True; + FXML.Root.Clear; + + GenerateXMLContents(fsGlobalUnit, FXML.Root); + if FScript <> nil then + GenerateXMLContents(FScript, FXML.Root); + + Tree.BeginUpdate; + Tree.Clear; + + if ShowClasses then + AddClasses(FXML.Root.FindItem('Classes'), nil); + + if ShowFunctions then + AddFunctions(FXML.Root.FindItem('Functions'), nil); + + if ShowTypes then + AddTypes(FXML.Root.FindItem('Types'), nil); + + if ShowVariables then + AddVariables(FXML.Root.FindItem('Variables'), nil); + + if Expanded then + ExpandNodes(ExpandLevel); + Tree.EndUpdate; + FUpdating := False; +end; + +procedure TfsTree.UpdateItems; +begin + FillTree; +end; + +procedure TfsTree.TreeChange(Sender: TObject; + Node: TTreeViewItem); +begin + if FUpdating then Exit; +end; + +procedure TfsTree.TreeDblClick(Sender: TObject); +begin + //if Assigned(SyntaxMemo) then + //if Tree.Selected.Count = 0 then + // SyntaxMemo.SelText := Tree.Selected.Text; + if Assigned(OnDblClick) then OnDblClick(Self); +end; + +function TfsTree.GetFieldName: String; +var + i, n: Integer; + s: String; +begin + Result := ''; + if (Tree.Selected <> nil) and (Tree.Selected.Count = 0) then + begin + s := Tree.Selected.Text; + if Pos('(', s) <> 0 then + n := 1 else + n := 0; + for i := 1 to Length(s) do +{$IFDEF Delphi12} + if (s[i] = ',') or (s[i] = ';') then +{$ELSE} + if s[i] in [',', ';'] then +{$ENDIF} + Inc(n); + + if n = 0 then + s := Copy(s, 1, Pos(':', s) - 1) + else + begin + s := Copy(s, 1, Pos('(', s)); + for i := 1 to n - 1 do + s := s + ','; + s := s + ')'; + end; + Result := s; + end; +end; + +procedure TfsTree.Loaded; +begin + Inherited; + +end; + +procedure TfsTree.SetColor(Color: TAlphaColor); +begin + //Tree.Canvas.Stroke.Color := TAlphaColorRec.Azure; + // Tree.Color := Color; +end; + +procedure TfsTree.SetMemo(Value: TfsSyntaxMemo); +begin + FMemo := Value; +end; + +procedure TfsTree.SetScript(const Value: TfsScript); +begin + FScript := Value; + UpdateItems; +end; + +procedure TfsTree.Notification(AComponent: TComponent; Operation: TOperation); +begin + inherited Notification(AComponent, Operation); + if Operation = opRemove then + if AComponent = FScript then + FScript := nil + else if AComponent = FMemo then + FMemo := nil +end; + +{ TfsTreeViewItem } + +procedure TfsTreeViewItem.ApplyStyle; +var + B: TFmxObject; + Offset: Single; +begin + inherited; + B := FindStyleResource('button'); + if (B <> nil) and (B is TCustomButton) then + begin + FButton := TCustomButton(B); + B := FindStyleResource('text'); + Offset := 0; + if Self.TreeView is TfsTreeView then + Offset := TfsTreeView(Self.TreeView).IconWidth; + + if (B <> nil) and (B is TText) then + begin +{$IFDEF DELPHI17} + TText(B).Margins.Left := Offset; +{$ELSE} + TText(B).Padding.Left := Offset; +{$ENDIF} + end; + FImgPos := FButton.Position.X + FButton.Width - 2; + end; +end; + + +constructor TfsTreeViewItem.Create(AOwner: TComponent); +begin + inherited; + FImgPos := 0; + FCloseImageIndex := -1; + FOpenImageIndex := -1; +end; + +function TfsTreeViewItem.GetBitmap: TBitmap; +begin + Result := nil; + if TreeView is TfsTreeView then + begin + Result := TfsTreeView(TreeView).FPicBitmap; + end; +end; + +procedure TfsTreeViewItem.Paint; +var + Bmp: TBitmap; + IconRect: TRectF; + Index: Integer; +begin + inherited Paint; + if IsExpanded then + Index := FOpenImageIndex + else + Index := FCloseImageIndex; + + if Index = -1 then Exit; + + Bmp := GetBitmap; + if TreeView is TfsTreeView then + begin + IconRect := TfsTreeView(TreeView).GetBitmapRect(Index); + end; + if (Bmp <> nil) and (FImgPos > 0)then + Canvas.DrawBitmap(Bmp, IconRect, RectF(16, 0, 34, 16), 1 ); +end; + +{ TfsTreeView } + +constructor TfsTreeView.Create(AOwner: TComponent); +begin + inherited; + FPicBitmap := nil; + FIconWidth := 0; + FIconHeight := 0; +end; + +destructor TfsTreeView.Destroy; +begin + if FPicBitmap <> nil then + FPicBitmap.Free; + + inherited; +end; + +procedure TfsTreeView.DragDrop(const Data: TDragObject; const Point: TPointF); +begin + //inherited; + // don't use TTreeView handlers +end; + +procedure TfsTreeView.DragOver(const Data: TDragObject; const Point: TPointF; + {$IFNDEF DELPHI20}var Accept: Boolean{$ELSE} var Operation: TDragOperation{$ENDIF}); +begin + //inherited; + //don't use TTreeView handlers +end; + +function TfsTreeView.GetBitmapRect(Index: Integer): TRectF; +var + maxX, maxY, i: Integer; + PosX, PosY: Integer; +begin + Result := RectF(0, 0, 0, 0); + if FPicBitmap = nil then Exit; + PosX := 0; + PosY := 0; + maxX := FPicBitmap.Width div FIconWidth; + maxY := FPicBitmap.Height div FIconHeight; + + for i := 0 to maxY - 1 do + begin + if Index < maxX then + begin + PosX := FIconWidth * Index; + break; + end; + Index := Index div maxY; + Inc(PosY); + if PosY > maxY then + begin + PosX := 0; + PosY := 0; + break; + end; + end; + Result := RectF(PosX, PosY, PosX + FIconWidth, PosY + FIconHeight); +end; + +procedure TfsTreeView.LoadResouces(Stream: TStream; IconWidth, + IconHeight: Integer); +begin + FIconWidth := IconWidth; + FIconHeight := IconHeight; + if FPicBitmap = nil then + FPicBitmap := TBitmap.CreateFromStream(Stream) + else + FPicBitmap.LoadFromStream(Stream); +end; + +initialization + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsTreeViewItem, TFmxObject); + GroupDescendentsWith(TfsTreeView, TFmxObject); + GroupDescendentsWith(TfsTree, TFmxObject); + RegisterFmxClasses([TfsTreeViewItem, TfsTreeView]); + +end. diff --git a/FastScript/FMX/FMX.fs_xml.pas b/FastScript/FMX/FMX.fs_xml.pas new file mode 100644 index 0000000..11723e4 --- /dev/null +++ b/FastScript/FMX/FMX.fs_xml.pas @@ -0,0 +1,15 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ XML document } +{ } +{ (c) 2003-2011 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMX.fs_xml; + +{$i FMX.inc} +{$i fs_xml.pas} \ No newline at end of file diff --git a/FastScript/FMX/FMXfs16.dpk b/FastScript/FMX/FMXfs16.dpk new file mode 100644 index 0000000..60d40ad --- /dev/null +++ b/FastScript/FMX/FMXfs16.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE2 + +package FMXfs16; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs16.res b/FastScript/FMX/FMXfs16.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfs16.res differ diff --git a/FastScript/FMX/FMXfs17.dpk b/FastScript/FMX/FMXfs17.dpk new file mode 100644 index 0000000..2f51eaa --- /dev/null +++ b/FastScript/FMX/FMXfs17.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE3 + +package FMXfs17; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs17.res b/FastScript/FMX/FMXfs17.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfs17.res differ diff --git a/FastScript/FMX/FMXfs18.dpk b/FastScript/FMX/FMXfs18.dpk new file mode 100644 index 0000000..2e8cc3b --- /dev/null +++ b/FastScript/FMX/FMXfs18.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE4 + +package FMXfs18; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs18.otares b/FastScript/FMX/FMXfs18.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfs18.otares differ diff --git a/FastScript/FMX/FMXfs18.res b/FastScript/FMX/FMXfs18.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfs18.res differ diff --git a/FastScript/FMX/FMXfs19.dpk b/FastScript/FMX/FMXfs19.dpk new file mode 100644 index 0000000..484cfae --- /dev/null +++ b/FastScript/FMX/FMXfs19.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE5 + +package FMXfs19; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs19.otares b/FastScript/FMX/FMXfs19.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfs19.otares differ diff --git a/FastScript/FMX/FMXfs19.res b/FastScript/FMX/FMXfs19.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfs19.res differ diff --git a/FastScript/FMX/FMXfs20.dpk b/FastScript/FMX/FMXfs20.dpk new file mode 100644 index 0000000..9e0de3e --- /dev/null +++ b/FastScript/FMX/FMXfs20.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE6 + +package FMXfs20; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs20.otares b/FastScript/FMX/FMXfs20.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfs20.otares differ diff --git a/FastScript/FMX/FMXfs20.res b/FastScript/FMX/FMXfs20.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfs20.res differ diff --git a/FastScript/FMX/FMXfs21.dpk b/FastScript/FMX/FMXfs21.dpk new file mode 100644 index 0000000..820052a --- /dev/null +++ b/FastScript/FMX/FMXfs21.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE7 + +package FMXfs21; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs21.otares b/FastScript/FMX/FMXfs21.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfs21.otares differ diff --git a/FastScript/FMX/FMXfs21.res b/FastScript/FMX/FMXfs21.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfs21.res differ diff --git a/FastScript/FMX/FMXfs22.dpk b/FastScript/FMX/FMXfs22.dpk new file mode 100644 index 0000000..6820909 --- /dev/null +++ b/FastScript/FMX/FMXfs22.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE8 + +package FMXfs22; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs22.otares b/FastScript/FMX/FMXfs22.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfs22.otares differ diff --git a/FastScript/FMX/FMXfs22.res b/FastScript/FMX/FMXfs22.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfs22.res differ diff --git a/FastScript/FMX/FMXfs23.dpk b/FastScript/FMX/FMXfs23.dpk new file mode 100644 index 0000000..8c587b3 --- /dev/null +++ b/FastScript/FMX/FMXfs23.dpk @@ -0,0 +1,59 @@ +// Package file for Delphi 10 Seattle + +package FMXfs23; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs23.otares b/FastScript/FMX/FMXfs23.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfs23.otares differ diff --git a/FastScript/FMX/FMXfs23.res b/FastScript/FMX/FMXfs23.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfs23.res differ diff --git a/FastScript/FMX/FMXfs24.dpk b/FastScript/FMX/FMXfs24.dpk new file mode 100644 index 0000000..19818d3 --- /dev/null +++ b/FastScript/FMX/FMXfs24.dpk @@ -0,0 +1,59 @@ +// Package file for Delphi 10 Seattle + +package FMXfs24; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs24.otares b/FastScript/FMX/FMXfs24.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfs24.otares differ diff --git a/FastScript/FMX/FMXfs24.res b/FastScript/FMX/FMXfs24.res new file mode 100644 index 0000000..3bb7875 Binary files /dev/null and b/FastScript/FMX/FMXfs24.res differ diff --git a/FastScript/FMX/FMXfs25.dpk b/FastScript/FMX/FMXfs25.dpk new file mode 100644 index 0000000..2f96717 --- /dev/null +++ b/FastScript/FMX/FMXfs25.dpk @@ -0,0 +1,59 @@ +// Package file for Delphi 10 Seattle + +package FMXfs25; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs25.otares b/FastScript/FMX/FMXfs25.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfs25.otares differ diff --git a/FastScript/FMX/FMXfs25.res b/FastScript/FMX/FMXfs25.res new file mode 100644 index 0000000..3bb7875 Binary files /dev/null and b/FastScript/FMX/FMXfs25.res differ diff --git a/FastScript/FMX/FMXfs26.dpk b/FastScript/FMX/FMXfs26.dpk new file mode 100644 index 0000000..9738876 --- /dev/null +++ b/FastScript/FMX/FMXfs26.dpk @@ -0,0 +1,59 @@ +// Package file for Delphi 10 Seattle + +package FMXfs26; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs27.dpk b/FastScript/FMX/FMXfs27.dpk new file mode 100644 index 0000000..f5773b1 --- /dev/null +++ b/FastScript/FMX/FMXfs27.dpk @@ -0,0 +1,59 @@ +// Package file for Delphi 10 Seattle + +package FMXfs27; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs28.dpk b/FastScript/FMX/FMXfs28.dpk new file mode 100644 index 0000000..6bdefa5 --- /dev/null +++ b/FastScript/FMX/FMXfs28.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 11 Seattle + +package FMXfs29; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.BaseTypeAliases in 'FMX.BaseTypeAliases.pas', + FMX.FormTypeAliases in 'FMX.FormTypeAliases.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfs29.dpk b/FastScript/FMX/FMXfs29.dpk new file mode 100644 index 0000000..95ece44 --- /dev/null +++ b/FastScript/FMX/FMXfs29.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 12 + +package FMXfs29; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.BaseTypeAliases in 'FMX.BaseTypeAliases.pas', + FMX.FormTypeAliases in 'FMX.FormTypeAliases.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO16.dpk b/FastScript/FMX/FMXfsADO16.dpk new file mode 100644 index 0000000..10a404d --- /dev/null +++ b/FastScript/FMX/FMXfsADO16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package FMXfsADO16; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs16, + FMXfsDB16; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO16.res b/FastScript/FMX/FMXfsADO16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsADO16.res differ diff --git a/FastScript/FMX/FMXfsADO17.dpk b/FastScript/FMX/FMXfsADO17.dpk new file mode 100644 index 0000000..52b903a --- /dev/null +++ b/FastScript/FMX/FMXfsADO17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package FMXfsADO17; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs17, + FMXfsDB17; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO17.res b/FastScript/FMX/FMXfsADO17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsADO17.res differ diff --git a/FastScript/FMX/FMXfsADO18.dpk b/FastScript/FMX/FMXfsADO18.dpk new file mode 100644 index 0000000..f441ad3 --- /dev/null +++ b/FastScript/FMX/FMXfsADO18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package FMXfsADO18; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs18, + FMXfsDB18; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO18.res b/FastScript/FMX/FMXfsADO18.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsADO18.res differ diff --git a/FastScript/FMX/FMXfsADO19.dpk b/FastScript/FMX/FMXfsADO19.dpk new file mode 100644 index 0000000..424714e --- /dev/null +++ b/FastScript/FMX/FMXfsADO19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package FMXfsADO19; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs19, + FMXfsDB19; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO19.res b/FastScript/FMX/FMXfsADO19.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsADO19.res differ diff --git a/FastScript/FMX/FMXfsADO20.dpk b/FastScript/FMX/FMXfsADO20.dpk new file mode 100644 index 0000000..d19c363 --- /dev/null +++ b/FastScript/FMX/FMXfsADO20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package FMXfsADO20; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs20, + FMXfsDB20; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO20.res b/FastScript/FMX/FMXfsADO20.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsADO20.res differ diff --git a/FastScript/FMX/FMXfsADO21.dpk b/FastScript/FMX/FMXfsADO21.dpk new file mode 100644 index 0000000..83c3ad3 --- /dev/null +++ b/FastScript/FMX/FMXfsADO21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package FMXfsADO21; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs21, + FMXfsDB21; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO21.res b/FastScript/FMX/FMXfsADO21.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsADO21.res differ diff --git a/FastScript/FMX/FMXfsADO22.dpk b/FastScript/FMX/FMXfsADO22.dpk new file mode 100644 index 0000000..ca5d373 --- /dev/null +++ b/FastScript/FMX/FMXfsADO22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package FMXfsADO22; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs22, + FMXfsDB22; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO22.res b/FastScript/FMX/FMXfsADO22.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsADO22.res differ diff --git a/FastScript/FMX/FMXfsADO23.dpk b/FastScript/FMX/FMXfsADO23.dpk new file mode 100644 index 0000000..0bc722e --- /dev/null +++ b/FastScript/FMX/FMXfsADO23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsADO23; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs23, + FMXfsDB23; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO23.res b/FastScript/FMX/FMXfsADO23.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsADO23.res differ diff --git a/FastScript/FMX/FMXfsADO24.dpk b/FastScript/FMX/FMXfsADO24.dpk new file mode 100644 index 0000000..beb9b84 --- /dev/null +++ b/FastScript/FMX/FMXfsADO24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsADO24; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs24, + FMXfsDB24; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO24.res b/FastScript/FMX/FMXfsADO24.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsADO24.res differ diff --git a/FastScript/FMX/FMXfsADO25.dpk b/FastScript/FMX/FMXfsADO25.dpk new file mode 100644 index 0000000..93c4991 --- /dev/null +++ b/FastScript/FMX/FMXfsADO25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsADO25; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs25, + FMXfsDB25; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO25.res b/FastScript/FMX/FMXfsADO25.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsADO25.res differ diff --git a/FastScript/FMX/FMXfsADO26.dpk b/FastScript/FMX/FMXfsADO26.dpk new file mode 100644 index 0000000..0ed9a68 --- /dev/null +++ b/FastScript/FMX/FMXfsADO26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsADO26; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs26, + FMXfsDB26; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO27.dpk b/FastScript/FMX/FMXfsADO27.dpk new file mode 100644 index 0000000..f2a00b7 --- /dev/null +++ b/FastScript/FMX/FMXfsADO27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsADO27; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs27, + FMXfsDB27; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO28.dpk b/FastScript/FMX/FMXfsADO28.dpk new file mode 100644 index 0000000..1b0ab49 --- /dev/null +++ b/FastScript/FMX/FMXfsADO28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package FMXfsADO29; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs29, + FMXfsDB29; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsADO29.dpk b/FastScript/FMX/FMXfsADO29.dpk new file mode 100644 index 0000000..c14c3be --- /dev/null +++ b/FastScript/FMX/FMXfsADO29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package FMXfsADO29; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs29, + FMXfsDB29; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB16.dpk b/FastScript/FMX/FMXfsDB16.dpk new file mode 100644 index 0000000..f6fa97e --- /dev/null +++ b/FastScript/FMX/FMXfsDB16.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE2 + +package FMXfsDB16; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs16, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB16.res b/FastScript/FMX/FMXfsDB16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsDB16.res differ diff --git a/FastScript/FMX/FMXfsDB17.dpk b/FastScript/FMX/FMXfsDB17.dpk new file mode 100644 index 0000000..6df8aa2 --- /dev/null +++ b/FastScript/FMX/FMXfsDB17.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE3 + +package FMXfsDB17; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs17, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB17.res b/FastScript/FMX/FMXfsDB17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsDB17.res differ diff --git a/FastScript/FMX/FMXfsDB18.dpk b/FastScript/FMX/FMXfsDB18.dpk new file mode 100644 index 0000000..86897c0 --- /dev/null +++ b/FastScript/FMX/FMXfsDB18.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE4 + +package FMXfsDB18; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs18, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB18.otares b/FastScript/FMX/FMXfsDB18.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfsDB18.otares differ diff --git a/FastScript/FMX/FMXfsDB18.res b/FastScript/FMX/FMXfsDB18.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsDB18.res differ diff --git a/FastScript/FMX/FMXfsDB19.dpk b/FastScript/FMX/FMXfsDB19.dpk new file mode 100644 index 0000000..2109b95 --- /dev/null +++ b/FastScript/FMX/FMXfsDB19.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE5 + +package FMXfsDB19; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs19, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB19.otares b/FastScript/FMX/FMXfsDB19.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfsDB19.otares differ diff --git a/FastScript/FMX/FMXfsDB19.res b/FastScript/FMX/FMXfsDB19.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsDB19.res differ diff --git a/FastScript/FMX/FMXfsDB20.dpk b/FastScript/FMX/FMXfsDB20.dpk new file mode 100644 index 0000000..01116cd --- /dev/null +++ b/FastScript/FMX/FMXfsDB20.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE6 + +package FMXfsDB20; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs20, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB20.otares b/FastScript/FMX/FMXfsDB20.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfsDB20.otares differ diff --git a/FastScript/FMX/FMXfsDB20.res b/FastScript/FMX/FMXfsDB20.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsDB20.res differ diff --git a/FastScript/FMX/FMXfsDB21.dpk b/FastScript/FMX/FMXfsDB21.dpk new file mode 100644 index 0000000..8848232 --- /dev/null +++ b/FastScript/FMX/FMXfsDB21.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE7 + +package FMXfsDB21; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs21, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB21.otares b/FastScript/FMX/FMXfsDB21.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfsDB21.otares differ diff --git a/FastScript/FMX/FMXfsDB21.res b/FastScript/FMX/FMXfsDB21.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsDB21.res differ diff --git a/FastScript/FMX/FMXfsDB22.dpk b/FastScript/FMX/FMXfsDB22.dpk new file mode 100644 index 0000000..08bd29f --- /dev/null +++ b/FastScript/FMX/FMXfsDB22.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE8 + +package FMXfsDB22; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs22, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB22.otares b/FastScript/FMX/FMXfsDB22.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfsDB22.otares differ diff --git a/FastScript/FMX/FMXfsDB22.res b/FastScript/FMX/FMXfsDB22.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsDB22.res differ diff --git a/FastScript/FMX/FMXfsDB23.dpk b/FastScript/FMX/FMXfsDB23.dpk new file mode 100644 index 0000000..fc47610 --- /dev/null +++ b/FastScript/FMX/FMXfsDB23.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 10 Seattle + +package FMXfsDB23; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs23, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB23.otares b/FastScript/FMX/FMXfsDB23.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfsDB23.otares differ diff --git a/FastScript/FMX/FMXfsDB23.res b/FastScript/FMX/FMXfsDB23.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsDB23.res differ diff --git a/FastScript/FMX/FMXfsDB24.dpk b/FastScript/FMX/FMXfsDB24.dpk new file mode 100644 index 0000000..6d3f1a9 --- /dev/null +++ b/FastScript/FMX/FMXfsDB24.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 10 Seattle + +package FMXfsDB24; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs24, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB24.otares b/FastScript/FMX/FMXfsDB24.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfsDB24.otares differ diff --git a/FastScript/FMX/FMXfsDB24.res b/FastScript/FMX/FMXfsDB24.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsDB24.res differ diff --git a/FastScript/FMX/FMXfsDB25.dpk b/FastScript/FMX/FMXfsDB25.dpk new file mode 100644 index 0000000..d873f3a --- /dev/null +++ b/FastScript/FMX/FMXfsDB25.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 10 Seattle + +package FMXfsDB25; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs25, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB25.otares b/FastScript/FMX/FMXfsDB25.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/FMXfsDB25.otares differ diff --git a/FastScript/FMX/FMXfsDB25.res b/FastScript/FMX/FMXfsDB25.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsDB25.res differ diff --git a/FastScript/FMX/FMXfsDB26.dpk b/FastScript/FMX/FMXfsDB26.dpk new file mode 100644 index 0000000..359e620 --- /dev/null +++ b/FastScript/FMX/FMXfsDB26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsDB26; + +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs26, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB27.dpk b/FastScript/FMX/FMXfsDB27.dpk new file mode 100644 index 0000000..e18c2a2 --- /dev/null +++ b/FastScript/FMX/FMXfsDB27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsDB27; + +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs27, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB28.dpk b/FastScript/FMX/FMXfsDB28.dpk new file mode 100644 index 0000000..d7fb8f0 --- /dev/null +++ b/FastScript/FMX/FMXfsDB28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package FMXfsDB29; + +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs29, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsDB29.dpk b/FastScript/FMX/FMXfsDB29.dpk new file mode 100644 index 0000000..d7fb8f0 --- /dev/null +++ b/FastScript/FMX/FMXfsDB29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package FMXfsDB29; + +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs29, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX16.dpk b/FastScript/FMX/FMXfsIBX16.dpk new file mode 100644 index 0000000..a64c4d2 --- /dev/null +++ b/FastScript/FMX/FMXfsIBX16.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE2 + +package FMXfsIBX16; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs16, + FMXfsDB16; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX16.res b/FastScript/FMX/FMXfsIBX16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsIBX16.res differ diff --git a/FastScript/FMX/FMXfsIBX17.dpk b/FastScript/FMX/FMXfsIBX17.dpk new file mode 100644 index 0000000..cf3fb7e --- /dev/null +++ b/FastScript/FMX/FMXfsIBX17.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE3 + +package FMXfsIBX17; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs17, + FMXfsDB17; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX17.res b/FastScript/FMX/FMXfsIBX17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsIBX17.res differ diff --git a/FastScript/FMX/FMXfsIBX18.dpk b/FastScript/FMX/FMXfsIBX18.dpk new file mode 100644 index 0000000..7288365 --- /dev/null +++ b/FastScript/FMX/FMXfsIBX18.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE4 + +package FMXfsIBX18; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs18, + FMXfsDB18; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX18.res b/FastScript/FMX/FMXfsIBX18.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsIBX18.res differ diff --git a/FastScript/FMX/FMXfsIBX19.dpk b/FastScript/FMX/FMXfsIBX19.dpk new file mode 100644 index 0000000..cf86260 --- /dev/null +++ b/FastScript/FMX/FMXfsIBX19.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE5 + +package FMXfsIBX19; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs19, + FMXfsDB19; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX19.res b/FastScript/FMX/FMXfsIBX19.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsIBX19.res differ diff --git a/FastScript/FMX/FMXfsIBX20.dpk b/FastScript/FMX/FMXfsIBX20.dpk new file mode 100644 index 0000000..2e741b2 --- /dev/null +++ b/FastScript/FMX/FMXfsIBX20.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE6 + +package FMXfsIBX20; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs20, + FMXfsDB20; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX20.res b/FastScript/FMX/FMXfsIBX20.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsIBX20.res differ diff --git a/FastScript/FMX/FMXfsIBX21.dpk b/FastScript/FMX/FMXfsIBX21.dpk new file mode 100644 index 0000000..d6cd6d2 --- /dev/null +++ b/FastScript/FMX/FMXfsIBX21.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE7 + +package FMXfsIBX21; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs21, + FMXfsDB21; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX21.res b/FastScript/FMX/FMXfsIBX21.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsIBX21.res differ diff --git a/FastScript/FMX/FMXfsIBX22.dpk b/FastScript/FMX/FMXfsIBX22.dpk new file mode 100644 index 0000000..e870670 --- /dev/null +++ b/FastScript/FMX/FMXfsIBX22.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE8 + +package FMXfsIBX22; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs22, + FMXfsDB22; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX22.res b/FastScript/FMX/FMXfsIBX22.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsIBX22.res differ diff --git a/FastScript/FMX/FMXfsIBX23.dpk b/FastScript/FMX/FMXfsIBX23.dpk new file mode 100644 index 0000000..ef8b9fd --- /dev/null +++ b/FastScript/FMX/FMXfsIBX23.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 10 Seattle + +package FMXfsIBX23; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs23, + FMXfsDB23; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX23.res b/FastScript/FMX/FMXfsIBX23.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsIBX23.res differ diff --git a/FastScript/FMX/FMXfsIBX24.dpk b/FastScript/FMX/FMXfsIBX24.dpk new file mode 100644 index 0000000..d2c75a8 --- /dev/null +++ b/FastScript/FMX/FMXfsIBX24.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 10 Seattle + +package FMXfsIBX24; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs24, + FMXfsDB24; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX24.res b/FastScript/FMX/FMXfsIBX24.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsIBX24.res differ diff --git a/FastScript/FMX/FMXfsIBX25.dpk b/FastScript/FMX/FMXfsIBX25.dpk new file mode 100644 index 0000000..5a734d2 --- /dev/null +++ b/FastScript/FMX/FMXfsIBX25.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 10 Seattle + +package FMXfsIBX25; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs25, + FMXfsDB25; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX25.res b/FastScript/FMX/FMXfsIBX25.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/FMXfsIBX25.res differ diff --git a/FastScript/FMX/FMXfsIBX26.dpk b/FastScript/FMX/FMXfsIBX26.dpk new file mode 100644 index 0000000..3acb9cc --- /dev/null +++ b/FastScript/FMX/FMXfsIBX26.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 10 Seattle + +package FMXfsIBX26; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs26, + FMXfsDB26; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX27.dpk b/FastScript/FMX/FMXfsIBX27.dpk new file mode 100644 index 0000000..de6a34e --- /dev/null +++ b/FastScript/FMX/FMXfsIBX27.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 10 Seattle + +package FMXfsIBX27; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs27, + FMXfsDB27; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX28.dpk b/FastScript/FMX/FMXfsIBX28.dpk new file mode 100644 index 0000000..0cba709 --- /dev/null +++ b/FastScript/FMX/FMXfsIBX28.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 11 Seattle + +package FMXfsIBX29; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs29, + FMXfsDB29; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsIBX29.dpk b/FastScript/FMX/FMXfsIBX29.dpk new file mode 100644 index 0000000..b5fa135 --- /dev/null +++ b/FastScript/FMX/FMXfsIBX29.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 12 + +package FMXfsIBX29; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs29, + FMXfsDB29; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee16.dpk b/FastScript/FMX/FMXfsTee16.dpk new file mode 100644 index 0000000..69bd560 --- /dev/null +++ b/FastScript/FMX/FMXfsTee16.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE2 + +package FMXfsTee16; + +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro916, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee916, FMXTEEUI916, {$ENDIF} + FMXfs16; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee16.res b/FastScript/FMX/FMXfsTee16.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsTee16.res differ diff --git a/FastScript/FMX/FMXfsTee17.dpk b/FastScript/FMX/FMXfsTee17.dpk new file mode 100644 index 0000000..f51d5e6 --- /dev/null +++ b/FastScript/FMX/FMXfsTee17.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE3 + +package FMXfsTee17; + +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro917, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee917, FMXTEEUI917, {$ENDIF} + FMXfs17; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee17.res b/FastScript/FMX/FMXfsTee17.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsTee17.res differ diff --git a/FastScript/FMX/FMXfsTee18.dpk b/FastScript/FMX/FMXfsTee18.dpk new file mode 100644 index 0000000..e963a8b --- /dev/null +++ b/FastScript/FMX/FMXfsTee18.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE4 + +package FMXfsTee18; + +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro918, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee918, FMXTEEUI918, {$ENDIF} + FMXfs18; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee18.res b/FastScript/FMX/FMXfsTee18.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsTee18.res differ diff --git a/FastScript/FMX/FMXfsTee19.dpk b/FastScript/FMX/FMXfsTee19.dpk new file mode 100644 index 0000000..1370860 --- /dev/null +++ b/FastScript/FMX/FMXfsTee19.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE5 + +package FMXfsTee19; +{$I tee.inc} +{$I fmx.inc} + +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs19 +{$IFDEF TeeChartStd} ,FMXTEE{$ENDIF} +{$IFDEF TeeChart9},FMXTeePro919 {$ENDIF} +{$IFDEF TeeChartStd9},FMXTee919{$ENDIF}; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. + diff --git a/FastScript/FMX/FMXfsTee19.res b/FastScript/FMX/FMXfsTee19.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsTee19.res differ diff --git a/FastScript/FMX/FMXfsTee20.dpk b/FastScript/FMX/FMXfsTee20.dpk new file mode 100644 index 0000000..bf358bd --- /dev/null +++ b/FastScript/FMX/FMXfsTee20.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE6 + +package FMXfsTee20; + +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro920, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee920, TEEUI920, {$ENDIF} + FMXfs20; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee20.res b/FastScript/FMX/FMXfsTee20.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsTee20.res differ diff --git a/FastScript/FMX/FMXfsTee21.dpk b/FastScript/FMX/FMXfsTee21.dpk new file mode 100644 index 0000000..3481fb5 --- /dev/null +++ b/FastScript/FMX/FMXfsTee21.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE7 + +package FMXfsTee21; + +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro921, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee921, TEEUI921, {$ENDIF} + FMXfs21; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee21.res b/FastScript/FMX/FMXfsTee21.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsTee21.res differ diff --git a/FastScript/FMX/FMXfsTee22.dpk b/FastScript/FMX/FMXfsTee22.dpk new file mode 100644 index 0000000..25e0fa0 --- /dev/null +++ b/FastScript/FMX/FMXfsTee22.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE8 + +package FMXfsTee22; + +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro922, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee922, TEEUI922, {$ENDIF} + FMXfs22; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee22.res b/FastScript/FMX/FMXfsTee22.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsTee22.res differ diff --git a/FastScript/FMX/FMXfsTee23.dpk b/FastScript/FMX/FMXfsTee23.dpk new file mode 100644 index 0000000..7a09181 --- /dev/null +++ b/FastScript/FMX/FMXfsTee23.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 10 Seattle + +package FMXfsTee23; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro923, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee923, TEEUI923, {$ENDIF} + FMXfs23; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee23.res b/FastScript/FMX/FMXfsTee23.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsTee23.res differ diff --git a/FastScript/FMX/FMXfsTee24.dpk b/FastScript/FMX/FMXfsTee24.dpk new file mode 100644 index 0000000..4a295f0 --- /dev/null +++ b/FastScript/FMX/FMXfsTee24.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 10 Seattle + +package FMXfsTee24; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro924, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee924, TEEUI924, {$ENDIF} + FMXfs24; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee24.res b/FastScript/FMX/FMXfsTee24.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsTee24.res differ diff --git a/FastScript/FMX/FMXfsTee25.dpk b/FastScript/FMX/FMXfsTee25.dpk new file mode 100644 index 0000000..6befc20 --- /dev/null +++ b/FastScript/FMX/FMXfsTee25.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 10 Seattle + +package FMXfsTee25; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro925, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee925, TEEUI925, {$ENDIF} + FMXfs25; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee25.res b/FastScript/FMX/FMXfsTee25.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/FMXfsTee25.res differ diff --git a/FastScript/FMX/FMXfsTee26.dpk b/FastScript/FMX/FMXfsTee26.dpk new file mode 100644 index 0000000..ba7bb49 --- /dev/null +++ b/FastScript/FMX/FMXfsTee26.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 10 Seattle + +package FMXfsTee26; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro926, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee926, TEEUI926, {$ENDIF} + FMXfs26; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee27.dpk b/FastScript/FMX/FMXfsTee27.dpk new file mode 100644 index 0000000..69374c7 --- /dev/null +++ b/FastScript/FMX/FMXfsTee27.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 10 Seattle + +package FMXfsTee27; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro927, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee927, TEEUI927, {$ENDIF} + FMXfs27; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee28.dpk b/FastScript/FMX/FMXfsTee28.dpk new file mode 100644 index 0000000..b741ede --- /dev/null +++ b/FastScript/FMX/FMXfsTee28.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 11 Seattle + +package FMXfsTee29; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro929, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee929, TEEUI929, {$ENDIF} + FMXfs29; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfsTee29.dpk b/FastScript/FMX/FMXfsTee29.dpk new file mode 100644 index 0000000..29aa466 --- /dev/null +++ b/FastScript/FMX/FMXfsTee29.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 12 + +package FMXfsTee29; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro929, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee929, TEEUI929, {$ENDIF} + FMXfs29; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMX/FMXfs_iadoreg.pas b/FastScript/FMX/FMXfs_iadoreg.pas new file mode 100644 index 0000000..8decc54 --- /dev/null +++ b/FastScript/FMX/FMXfs_iadoreg.pas @@ -0,0 +1,37 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMXfs_iadoreg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + System.Classes +, DesignIntf +, FMX.Types +, FMX.fs_iadortti; + +{-----------------------------------------------------------------------} + +procedure Register; +begin + //GroupDescendentsWith(TfsADORTTI, TFmxObject); + RegisterComponents('FastScript FMX', [TfsADORTTI]); +end; + +end. diff --git a/FastScript/FMX/FMXfs_idbreg.pas b/FastScript/FMX/FMXfs_idbreg.pas new file mode 100644 index 0000000..b514773 --- /dev/null +++ b/FastScript/FMX/FMXfs_idbreg.pas @@ -0,0 +1,37 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMXfs_idbreg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + System.Classes +, DesignIntf +, FMX.Types +, FMX.fs_idbrtti; + +{-----------------------------------------------------------------------} + +procedure Register; +begin + // GroupDescendentsWith(TfsDBRTTI, TFmxObject); + RegisterComponents('FastScript FMX', [TfsDBRTTI]); +end; + +end. diff --git a/FastScript/FMX/FMXfs_iibxreg.pas b/FastScript/FMX/FMXfs_iibxreg.pas new file mode 100644 index 0000000..9a946a4 --- /dev/null +++ b/FastScript/FMX/FMXfs_iibxreg.pas @@ -0,0 +1,37 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMXfs_iibxreg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + System.Classes +, FMX.Types +, DesignIntf +, FMX.fs_iibxrtti; + +{-----------------------------------------------------------------------} + +procedure Register; +begin + //GroupDescendentsWith(TfsIBXRTTI, TFmxObject); + RegisterComponents('FastScript FMX', [TfsIBXRTTI]); +end; + +end. diff --git a/FastScript/FMX/FMXfs_ireg.pas b/FastScript/FMX/FMXfs_ireg.pas new file mode 100644 index 0000000..496346b --- /dev/null +++ b/FastScript/FMX/FMXfs_ireg.pas @@ -0,0 +1,85 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMXfs_ireg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation +uses + System.Classes +{$IFNDEF FPC} + {$IFNDEF Delphi6} + , DsgnIntf + {$ELSE} + , DesignIntf + {$ENDIF} +{$ELSE} + ,PropEdits + ,LazarusPackageIntf + ,LResources +{$ENDIF} +{$IFDEF DELPHI16} + , FMX.Controls, FMX.Types +{$ENDIF} +, FMX.fs_iinterpreter, FMX.fs_iclassesrtti, FMX.fs_igraphicsrtti, FMX.fs_iformsrtti, + FMX.fs_iextctrlsrtti, FMX.fs_idialogsrtti, FMX.fs_iinirtti, FMX.fs_imenusrtti, + FMX.fs_ipascal, FMX.fs_icpp, FMX.fs_ijs, FMX.fs_ibasic, FMX.fs_tree +{$IFNDEF CLX} +, FMX.fs_synmemo +{$ENDIF} +; + +{-----------------------------------------------------------------------} + +{$ifdef FPC} +procedure RegisterUnitfs_ireg; +{$else} +procedure Register; +{$endif} +begin + {GroupDescendentsWith(TfsExtCtrlsRTTI, TFmxObject); + GroupDescendentsWith(TfsDialogsRTTI, TFmxObject); + GroupDescendentsWith(TfsGraphicsRTTI, TFmxObject); + GroupDescendentsWith(TfsMenusRTTI, TFmxObject); + GroupDescendentsWith(TfsScript, TFmxObject); + GroupDescendentsWith(TfsIniRTTI, TFmxObject); + GroupDescendentsWith(TfsFormsRTTI, TFmxObject); + GroupDescendentsWith(TfsClassesRTTI, TFmxObject); + GroupDescendentsWith(TfsPascal, TFmxObject); + GroupDescendentsWith(TfsCPP, TFmxObject); + GroupDescendentsWith(TfsJScript, TFmxObject); + GroupDescendentsWith(TfsBasic, TFmxObject);} + RegisterComponents('FastScript FMX', + [TfsScript, TfsPascal, TfsCPP, TfsJScript, TfsBasic, + TfsClassesRTTI, TfsGraphicsRTTI, TfsFormsRTTI, TfsExtCtrlsRTTI, + TfsDialogsRTTI, TfsMenusRTTI, TfsIniRTTI, + TfsTree, TfsSyntaxMemo]); + +end; + +{$ifdef FPC} +procedure Register; +begin + RegisterUnit('fs_ireg', @RegisterUnitfs_ireg); +end; +{$endif} + +initialization +{$IFDEF FPC} + {$INCLUDE fs_ireg.lrs} +{$ENDIF} +end. diff --git a/FastScript/FMX/FMXfs_iteereg.pas b/FastScript/FMX/FMXfs_iteereg.pas new file mode 100644 index 0000000..f47dea6 --- /dev/null +++ b/FastScript/FMX/FMXfs_iteereg.pas @@ -0,0 +1,38 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMXfs_iteereg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + System.Classes +, FMX.Types +, DesignIntf +, FMX.fs_ichartrtti; + +{-----------------------------------------------------------------------} + +procedure Register; +begin + //GroupDescendentsWith(TfsChartRTTI, TFmxObject); + RegisterComponents('FastScript FMX', + [TfsChartRTTI]); +end; + +end. diff --git a/FastScript/FMX/dclFMXfs16.dpk b/FastScript/FMX/dclFMXfs16.dpk new file mode 100644 index 0000000..58b4aa8 --- /dev/null +++ b/FastScript/FMX/dclFMXfs16.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE2 + +package dclFMXfs16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs16; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfs16.res b/FastScript/FMX/dclFMXfs16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfs16.res differ diff --git a/FastScript/FMX/dclFMXfs17.dpk b/FastScript/FMX/dclFMXfs17.dpk new file mode 100644 index 0000000..233a78e --- /dev/null +++ b/FastScript/FMX/dclFMXfs17.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE3 + +package dclFMXfs17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs17; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfs17.res b/FastScript/FMX/dclFMXfs17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfs17.res differ diff --git a/FastScript/FMX/dclFMXfs18.dpk b/FastScript/FMX/dclFMXfs18.dpk new file mode 100644 index 0000000..77885c7 --- /dev/null +++ b/FastScript/FMX/dclFMXfs18.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE4 + +package dclFMXfs18; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs18; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfs18.otares b/FastScript/FMX/dclFMXfs18.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfs18.otares differ diff --git a/FastScript/FMX/dclFMXfs18.res b/FastScript/FMX/dclFMXfs18.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfs18.res differ diff --git a/FastScript/FMX/dclFMXfs19.dpk b/FastScript/FMX/dclFMXfs19.dpk new file mode 100644 index 0000000..312058b --- /dev/null +++ b/FastScript/FMX/dclFMXfs19.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE5 + +package dclFMXfs19; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs19; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfs19.otares b/FastScript/FMX/dclFMXfs19.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfs19.otares differ diff --git a/FastScript/FMX/dclFMXfs19.res b/FastScript/FMX/dclFMXfs19.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfs19.res differ diff --git a/FastScript/FMX/dclFMXfs20.dpk b/FastScript/FMX/dclFMXfs20.dpk new file mode 100644 index 0000000..4f35242 --- /dev/null +++ b/FastScript/FMX/dclFMXfs20.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE6 + +package dclFMXfs20; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs20; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfs20.otares b/FastScript/FMX/dclFMXfs20.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfs20.otares differ diff --git a/FastScript/FMX/dclFMXfs20.res b/FastScript/FMX/dclFMXfs20.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfs20.res differ diff --git a/FastScript/FMX/dclFMXfs21.dpk b/FastScript/FMX/dclFMXfs21.dpk new file mode 100644 index 0000000..cf1c58d --- /dev/null +++ b/FastScript/FMX/dclFMXfs21.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE7 + +package dclFMXfs21; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs21; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfs21.otares b/FastScript/FMX/dclFMXfs21.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfs21.otares differ diff --git a/FastScript/FMX/dclFMXfs21.res b/FastScript/FMX/dclFMXfs21.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfs21.res differ diff --git a/FastScript/FMX/dclFMXfs22.dpk b/FastScript/FMX/dclFMXfs22.dpk new file mode 100644 index 0000000..e6ac3ff --- /dev/null +++ b/FastScript/FMX/dclFMXfs22.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE8 + +package dclFMXfs22; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs22; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfs22.otares b/FastScript/FMX/dclFMXfs22.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfs22.otares differ diff --git a/FastScript/FMX/dclFMXfs22.res b/FastScript/FMX/dclFMXfs22.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfs22.res differ diff --git a/FastScript/FMX/dclFMXfs23.dpk b/FastScript/FMX/dclFMXfs23.dpk new file mode 100644 index 0000000..c1bd62e --- /dev/null +++ b/FastScript/FMX/dclFMXfs23.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfs23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs23; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfs23.otares b/FastScript/FMX/dclFMXfs23.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfs23.otares differ diff --git a/FastScript/FMX/dclFMXfs23.res b/FastScript/FMX/dclFMXfs23.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfs23.res differ diff --git a/FastScript/FMX/dclFMXfs24.dpk b/FastScript/FMX/dclFMXfs24.dpk new file mode 100644 index 0000000..e793d8b --- /dev/null +++ b/FastScript/FMX/dclFMXfs24.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfs24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs24; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfs24.otares b/FastScript/FMX/dclFMXfs24.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfs24.otares differ diff --git a/FastScript/FMX/dclFMXfs24.res b/FastScript/FMX/dclFMXfs24.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfs24.res differ diff --git a/FastScript/FMX/dclFMXfs25.dpk b/FastScript/FMX/dclFMXfs25.dpk new file mode 100644 index 0000000..9128c4d --- /dev/null +++ b/FastScript/FMX/dclFMXfs25.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfs25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs25; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfs25.otares b/FastScript/FMX/dclFMXfs25.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfs25.otares differ diff --git a/FastScript/FMX/dclFMXfs25.res b/FastScript/FMX/dclFMXfs25.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfs25.res differ diff --git a/FastScript/FMX/dclFMXfs26.dpk b/FastScript/FMX/dclFMXfs26.dpk new file mode 100644 index 0000000..48cdb6d --- /dev/null +++ b/FastScript/FMX/dclFMXfs26.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfs26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs26; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfs27.dpk b/FastScript/FMX/dclFMXfs27.dpk new file mode 100644 index 0000000..674e7b6 --- /dev/null +++ b/FastScript/FMX/dclFMXfs27.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfs27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs27; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfs28.dpk b/FastScript/FMX/dclFMXfs28.dpk new file mode 100644 index 0000000..fc71708 --- /dev/null +++ b/FastScript/FMX/dclFMXfs28.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 11 Seattle + +package dclFMXfs29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs29; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO16.dpk b/FastScript/FMX/dclFMXfsADO16.dpk new file mode 100644 index 0000000..51dfee4 --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclFMXfsADO16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs16, + FMXfsADO16; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO16.res b/FastScript/FMX/dclFMXfsADO16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsADO16.res differ diff --git a/FastScript/FMX/dclFMXfsADO17.dpk b/FastScript/FMX/dclFMXfsADO17.dpk new file mode 100644 index 0000000..645ec65 --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclFMXfsADO17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs17, + FMXfsADO17; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO17.res b/FastScript/FMX/dclFMXfsADO17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsADO17.res differ diff --git a/FastScript/FMX/dclFMXfsADO18.dpk b/FastScript/FMX/dclFMXfsADO18.dpk new file mode 100644 index 0000000..0262696 --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package dclFMXfsADO18; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs18, + FMXfsADO18; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO18.res b/FastScript/FMX/dclFMXfsADO18.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsADO18.res differ diff --git a/FastScript/FMX/dclFMXfsADO19.dpk b/FastScript/FMX/dclFMXfsADO19.dpk new file mode 100644 index 0000000..ad55963 --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package dclFMXfsADO19; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs19, + FMXfsADO19; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO19.res b/FastScript/FMX/dclFMXfsADO19.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsADO19.res differ diff --git a/FastScript/FMX/dclFMXfsADO20.dpk b/FastScript/FMX/dclFMXfsADO20.dpk new file mode 100644 index 0000000..8009901 --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package dclFMXfsADO20; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs20, + FMXfsADO20; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO20.res b/FastScript/FMX/dclFMXfsADO20.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsADO20.res differ diff --git a/FastScript/FMX/dclFMXfsADO21.dpk b/FastScript/FMX/dclFMXfsADO21.dpk new file mode 100644 index 0000000..40948f9 --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package dclFMXfsADO21; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs21, + FMXfsADO21; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO21.res b/FastScript/FMX/dclFMXfsADO21.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsADO21.res differ diff --git a/FastScript/FMX/dclFMXfsADO22.dpk b/FastScript/FMX/dclFMXfsADO22.dpk new file mode 100644 index 0000000..a5755db --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package dclFMXfsADO22; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs22, + FMXfsADO22; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO22.res b/FastScript/FMX/dclFMXfsADO22.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsADO22.res differ diff --git a/FastScript/FMX/dclFMXfsADO23.dpk b/FastScript/FMX/dclFMXfsADO23.dpk new file mode 100644 index 0000000..404c4c0 --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsADO23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs23, + FMXfsADO23; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO23.res b/FastScript/FMX/dclFMXfsADO23.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsADO23.res differ diff --git a/FastScript/FMX/dclFMXfsADO24.dpk b/FastScript/FMX/dclFMXfsADO24.dpk new file mode 100644 index 0000000..64bc04f --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsADO24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs24, + FMXfsADO24; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO24.res b/FastScript/FMX/dclFMXfsADO24.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsADO24.res differ diff --git a/FastScript/FMX/dclFMXfsADO25.dpk b/FastScript/FMX/dclFMXfsADO25.dpk new file mode 100644 index 0000000..982c24f --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsADO25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs25, + FMXfsADO25; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO25.res b/FastScript/FMX/dclFMXfsADO25.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsADO25.res differ diff --git a/FastScript/FMX/dclFMXfsADO26.dpk b/FastScript/FMX/dclFMXfsADO26.dpk new file mode 100644 index 0000000..2fc6d43 --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsADO26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs26, + FMXfsADO26; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO27.dpk b/FastScript/FMX/dclFMXfsADO27.dpk new file mode 100644 index 0000000..fddfc91 --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsADO27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs27, + FMXfsADO27; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO28.dpk b/FastScript/FMX/dclFMXfsADO28.dpk new file mode 100644 index 0000000..7421454 --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package dclFMXfsADO29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs29, + FMXfsADO29; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsADO29.dpk b/FastScript/FMX/dclFMXfsADO29.dpk new file mode 100644 index 0000000..edc9fa5 --- /dev/null +++ b/FastScript/FMX/dclFMXfsADO29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package dclFMXfsADO29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs29, + FMXfsADO29; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB16.dpk b/FastScript/FMX/dclFMXfsDB16.dpk new file mode 100644 index 0000000..ae49c7f --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclFMXfsDB16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs16, + FMXfsDB16; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB16.res b/FastScript/FMX/dclFMXfsDB16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB16.res differ diff --git a/FastScript/FMX/dclFMXfsDB17.dpk b/FastScript/FMX/dclFMXfsDB17.dpk new file mode 100644 index 0000000..65073fc --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclFMXfsDB17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs17, + FMXfsDB17; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB17.res b/FastScript/FMX/dclFMXfsDB17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB17.res differ diff --git a/FastScript/FMX/dclFMXfsDB18.dpk b/FastScript/FMX/dclFMXfsDB18.dpk new file mode 100644 index 0000000..f944213 --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB18.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi XE4 + +package dclFMXfsDB18; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs18, + FMXfsDB18; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB18.otares b/FastScript/FMX/dclFMXfsDB18.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB18.otares differ diff --git a/FastScript/FMX/dclFMXfsDB18.res b/FastScript/FMX/dclFMXfsDB18.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB18.res differ diff --git a/FastScript/FMX/dclFMXfsDB19.dpk b/FastScript/FMX/dclFMXfsDB19.dpk new file mode 100644 index 0000000..6cd2ae6 --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB19.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi XE5 + +package dclFMXfsDB19; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs19, + FMXfsDB19; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB19.otares b/FastScript/FMX/dclFMXfsDB19.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB19.otares differ diff --git a/FastScript/FMX/dclFMXfsDB19.res b/FastScript/FMX/dclFMXfsDB19.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB19.res differ diff --git a/FastScript/FMX/dclFMXfsDB20.dpk b/FastScript/FMX/dclFMXfsDB20.dpk new file mode 100644 index 0000000..9c12348 --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB20.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi XE6 + +package dclFMXfsDB20; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs20, + FMXfsDB20; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB20.otares b/FastScript/FMX/dclFMXfsDB20.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB20.otares differ diff --git a/FastScript/FMX/dclFMXfsDB20.res b/FastScript/FMX/dclFMXfsDB20.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB20.res differ diff --git a/FastScript/FMX/dclFMXfsDB21.dpk b/FastScript/FMX/dclFMXfsDB21.dpk new file mode 100644 index 0000000..5f18d25 --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB21.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi XE7 + +package dclFMXfsDB21; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs21, + FMXfsDB21; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB21.otares b/FastScript/FMX/dclFMXfsDB21.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB21.otares differ diff --git a/FastScript/FMX/dclFMXfsDB21.res b/FastScript/FMX/dclFMXfsDB21.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB21.res differ diff --git a/FastScript/FMX/dclFMXfsDB22.dpk b/FastScript/FMX/dclFMXfsDB22.dpk new file mode 100644 index 0000000..d70808f --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB22.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi XE8 + +package dclFMXfsDB22; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs22, + FMXfsDB22; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB22.otares b/FastScript/FMX/dclFMXfsDB22.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB22.otares differ diff --git a/FastScript/FMX/dclFMXfsDB22.res b/FastScript/FMX/dclFMXfsDB22.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB22.res differ diff --git a/FastScript/FMX/dclFMXfsDB23.dpk b/FastScript/FMX/dclFMXfsDB23.dpk new file mode 100644 index 0000000..bd11a08 --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB23.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsDB23; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs23, + FMXfsDB23; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB23.otares b/FastScript/FMX/dclFMXfsDB23.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB23.otares differ diff --git a/FastScript/FMX/dclFMXfsDB23.res b/FastScript/FMX/dclFMXfsDB23.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB23.res differ diff --git a/FastScript/FMX/dclFMXfsDB24.dpk b/FastScript/FMX/dclFMXfsDB24.dpk new file mode 100644 index 0000000..21680c2 --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB24.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsDB24; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs24, + FMXfsDB24; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB24.otares b/FastScript/FMX/dclFMXfsDB24.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB24.otares differ diff --git a/FastScript/FMX/dclFMXfsDB24.res b/FastScript/FMX/dclFMXfsDB24.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB24.res differ diff --git a/FastScript/FMX/dclFMXfsDB25.dpk b/FastScript/FMX/dclFMXfsDB25.dpk new file mode 100644 index 0000000..3f6b02e --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB25.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsDB25; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs25, + FMXfsDB25; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB25.otares b/FastScript/FMX/dclFMXfsDB25.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB25.otares differ diff --git a/FastScript/FMX/dclFMXfsDB25.res b/FastScript/FMX/dclFMXfsDB25.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMX/dclFMXfsDB25.res differ diff --git a/FastScript/FMX/dclFMXfsDB26.dpk b/FastScript/FMX/dclFMXfsDB26.dpk new file mode 100644 index 0000000..5d4661f --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB26.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsDB26; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs26, + FMXfsDB26; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB27.dpk b/FastScript/FMX/dclFMXfsDB27.dpk new file mode 100644 index 0000000..c8983d1 --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB27.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsDB27; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs27, + FMXfsDB27; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB28.dpk b/FastScript/FMX/dclFMXfsDB28.dpk new file mode 100644 index 0000000..7c302c3 --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB28.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 11 Seattle + +package dclFMXfsDB29; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs29, + FMXfsDB29; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsDB29.dpk b/FastScript/FMX/dclFMXfsDB29.dpk new file mode 100644 index 0000000..57a4391 --- /dev/null +++ b/FastScript/FMX/dclFMXfsDB29.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 12 + +package dclFMXfsDB29; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs29, + FMXfsDB29; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX16.dpk b/FastScript/FMX/dclFMXfsIBX16.dpk new file mode 100644 index 0000000..024903b --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclFMXfsIBX16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs16, + FMXfsIBX16; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX16.res b/FastScript/FMX/dclFMXfsIBX16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsIBX16.res differ diff --git a/FastScript/FMX/dclFMXfsIBX17.dpk b/FastScript/FMX/dclFMXfsIBX17.dpk new file mode 100644 index 0000000..595bf4e --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclFMXfsIBX17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs17, + FMXfsIBX17; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX17.res b/FastScript/FMX/dclFMXfsIBX17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsIBX17.res differ diff --git a/FastScript/FMX/dclFMXfsIBX18.dpk b/FastScript/FMX/dclFMXfsIBX18.dpk new file mode 100644 index 0000000..7c1cb8d --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package dclFMXfsIBX18; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs18, + FMXfsIBX18; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX18.res b/FastScript/FMX/dclFMXfsIBX18.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsIBX18.res differ diff --git a/FastScript/FMX/dclFMXfsIBX19.dpk b/FastScript/FMX/dclFMXfsIBX19.dpk new file mode 100644 index 0000000..c77c2f4 --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package dclFMXfsIBX19; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs19, + FMXfsIBX19; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX19.res b/FastScript/FMX/dclFMXfsIBX19.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsIBX19.res differ diff --git a/FastScript/FMX/dclFMXfsIBX20.dpk b/FastScript/FMX/dclFMXfsIBX20.dpk new file mode 100644 index 0000000..ca64df5 --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package dclFMXfsIBX20; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs20, + FMXfsIBX20; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX20.res b/FastScript/FMX/dclFMXfsIBX20.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsIBX20.res differ diff --git a/FastScript/FMX/dclFMXfsIBX21.dpk b/FastScript/FMX/dclFMXfsIBX21.dpk new file mode 100644 index 0000000..26d360a --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package dclFMXfsIBX21; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs21, + FMXfsIBX21; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX21.res b/FastScript/FMX/dclFMXfsIBX21.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsIBX21.res differ diff --git a/FastScript/FMX/dclFMXfsIBX22.dpk b/FastScript/FMX/dclFMXfsIBX22.dpk new file mode 100644 index 0000000..854fc1a --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package dclFMXfsIBX22; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs22, + FMXfsIBX22; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX22.res b/FastScript/FMX/dclFMXfsIBX22.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsIBX22.res differ diff --git a/FastScript/FMX/dclFMXfsIBX23.dpk b/FastScript/FMX/dclFMXfsIBX23.dpk new file mode 100644 index 0000000..e4690f5 --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsIBX23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs23, + FMXfsIBX23; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX23.res b/FastScript/FMX/dclFMXfsIBX23.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsIBX23.res differ diff --git a/FastScript/FMX/dclFMXfsIBX24.dpk b/FastScript/FMX/dclFMXfsIBX24.dpk new file mode 100644 index 0000000..7f67057 --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsIBX24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs24, + FMXfsIBX24; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX24.res b/FastScript/FMX/dclFMXfsIBX24.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsIBX24.res differ diff --git a/FastScript/FMX/dclFMXfsIBX25.dpk b/FastScript/FMX/dclFMXfsIBX25.dpk new file mode 100644 index 0000000..760b971 --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsIBX25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs25, + FMXfsIBX25; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX25.res b/FastScript/FMX/dclFMXfsIBX25.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsIBX25.res differ diff --git a/FastScript/FMX/dclFMXfsIBX26.dpk b/FastScript/FMX/dclFMXfsIBX26.dpk new file mode 100644 index 0000000..5787898 --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsIBX26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs26, + FMXfsIBX26; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX27.dpk b/FastScript/FMX/dclFMXfsIBX27.dpk new file mode 100644 index 0000000..dbfac84 --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsIBX27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs27, + FMXfsIBX27; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX28.dpk b/FastScript/FMX/dclFMXfsIBX28.dpk new file mode 100644 index 0000000..fc50c43 --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package dclFMXfsIBX29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs29, + FMXfsIBX29; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsIBX29.dpk b/FastScript/FMX/dclFMXfsIBX29.dpk new file mode 100644 index 0000000..874e96e --- /dev/null +++ b/FastScript/FMX/dclFMXfsIBX29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package dclFMXfsIBX29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs29, + FMXfsIBX29; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee16.dpk b/FastScript/FMX/dclFMXfsTee16.dpk new file mode 100644 index 0000000..3ff825f --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclFMXfsTee16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs16, + FMXfsTee16; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee16.res b/FastScript/FMX/dclFMXfsTee16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsTee16.res differ diff --git a/FastScript/FMX/dclFMXfsTee17.dpk b/FastScript/FMX/dclFMXfsTee17.dpk new file mode 100644 index 0000000..6725bc8 --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclFMXfsTee17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs17, + FMXfsTee17; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee17.res b/FastScript/FMX/dclFMXfsTee17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsTee17.res differ diff --git a/FastScript/FMX/dclFMXfsTee18.dpk b/FastScript/FMX/dclFMXfsTee18.dpk new file mode 100644 index 0000000..86bd659 --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package dclFMXfsTee18; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs18, + FMXfsTee18; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee18.res b/FastScript/FMX/dclFMXfsTee18.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsTee18.res differ diff --git a/FastScript/FMX/dclFMXfsTee19.dpk b/FastScript/FMX/dclFMXfsTee19.dpk new file mode 100644 index 0000000..2c49235 --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package dclFMXfsTee19; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs19, + FMXfsTee19; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee19.res b/FastScript/FMX/dclFMXfsTee19.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsTee19.res differ diff --git a/FastScript/FMX/dclFMXfsTee20.dpk b/FastScript/FMX/dclFMXfsTee20.dpk new file mode 100644 index 0000000..5a8268b --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package dclFMXfsTee20; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs20, + FMXfsTee20; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee20.res b/FastScript/FMX/dclFMXfsTee20.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsTee20.res differ diff --git a/FastScript/FMX/dclFMXfsTee21.dpk b/FastScript/FMX/dclFMXfsTee21.dpk new file mode 100644 index 0000000..b4f72e7 --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package dclFMXfsTee21; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs21, + FMXfsTee21; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee21.res b/FastScript/FMX/dclFMXfsTee21.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsTee21.res differ diff --git a/FastScript/FMX/dclFMXfsTee22.dpk b/FastScript/FMX/dclFMXfsTee22.dpk new file mode 100644 index 0000000..33b50de --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package dclFMXfsTee22; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs22, + FMXfsTee22; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee22.res b/FastScript/FMX/dclFMXfsTee22.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsTee22.res differ diff --git a/FastScript/FMX/dclFMXfsTee23.dpk b/FastScript/FMX/dclFMXfsTee23.dpk new file mode 100644 index 0000000..81cb335 --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsTee23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs23, + FMXfsTee23; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee23.res b/FastScript/FMX/dclFMXfsTee23.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsTee23.res differ diff --git a/FastScript/FMX/dclFMXfsTee24.dpk b/FastScript/FMX/dclFMXfsTee24.dpk new file mode 100644 index 0000000..965474b --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsTee24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs24, + FMXfsTee24; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee24.res b/FastScript/FMX/dclFMXfsTee24.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsTee24.res differ diff --git a/FastScript/FMX/dclFMXfsTee25.dpk b/FastScript/FMX/dclFMXfsTee25.dpk new file mode 100644 index 0000000..561f9ff --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsTee25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs25, + FMXfsTee25; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee25.res b/FastScript/FMX/dclFMXfsTee25.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMX/dclFMXfsTee25.res differ diff --git a/FastScript/FMX/dclFMXfsTee26.dpk b/FastScript/FMX/dclFMXfsTee26.dpk new file mode 100644 index 0000000..a372cd8 --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsTee26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs26, + FMXfsTee26; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee27.dpk b/FastScript/FMX/dclFMXfsTee27.dpk new file mode 100644 index 0000000..943b74e --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsTee27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs27, + FMXfsTee27; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee28.dpk b/FastScript/FMX/dclFMXfsTee28.dpk new file mode 100644 index 0000000..fcded75 --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package dclFMXfsTee29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs29, + FMXfsTee29; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/dclFMXfsTee29.dpk b/FastScript/FMX/dclFMXfsTee29.dpk new file mode 100644 index 0000000..ac47668 --- /dev/null +++ b/FastScript/FMX/dclFMXfsTee29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package dclFMXfsTee29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs29, + FMXfsTee29; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/FMX/fmx.inc b/FastScript/FMX/fmx.inc new file mode 100644 index 0000000..e502196 --- /dev/null +++ b/FastScript/FMX/fmx.inc @@ -0,0 +1,12 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Include file } +{ } +{ (c) 2003, 2004 by Alexander Tzyganenko, } +{ Fast Reports, Inc } +{ } +{******************************************} + +{$DEFINE FMX} diff --git a/FastScript/FMXfs16.dpk b/FastScript/FMXfs16.dpk new file mode 100644 index 0000000..60d40ad --- /dev/null +++ b/FastScript/FMXfs16.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE2 + +package FMXfs16; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs16.res b/FastScript/FMXfs16.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfs16.res differ diff --git a/FastScript/FMXfs17.dpk b/FastScript/FMXfs17.dpk new file mode 100644 index 0000000..2f51eaa --- /dev/null +++ b/FastScript/FMXfs17.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE3 + +package FMXfs17; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs17.res b/FastScript/FMXfs17.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfs17.res differ diff --git a/FastScript/FMXfs18.dpk b/FastScript/FMXfs18.dpk new file mode 100644 index 0000000..2e8cc3b --- /dev/null +++ b/FastScript/FMXfs18.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE4 + +package FMXfs18; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs18.otares b/FastScript/FMXfs18.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfs18.otares differ diff --git a/FastScript/FMXfs18.res b/FastScript/FMXfs18.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfs18.res differ diff --git a/FastScript/FMXfs19.dpk b/FastScript/FMXfs19.dpk new file mode 100644 index 0000000..484cfae --- /dev/null +++ b/FastScript/FMXfs19.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE5 + +package FMXfs19; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs19.otares b/FastScript/FMXfs19.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfs19.otares differ diff --git a/FastScript/FMXfs19.res b/FastScript/FMXfs19.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfs19.res differ diff --git a/FastScript/FMXfs20.dpk b/FastScript/FMXfs20.dpk new file mode 100644 index 0000000..9e0de3e --- /dev/null +++ b/FastScript/FMXfs20.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE6 + +package FMXfs20; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs20.otares b/FastScript/FMXfs20.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfs20.otares differ diff --git a/FastScript/FMXfs20.res b/FastScript/FMXfs20.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfs20.res differ diff --git a/FastScript/FMXfs21.dpk b/FastScript/FMXfs21.dpk new file mode 100644 index 0000000..820052a --- /dev/null +++ b/FastScript/FMXfs21.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE7 + +package FMXfs21; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs21.otares b/FastScript/FMXfs21.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfs21.otares differ diff --git a/FastScript/FMXfs21.res b/FastScript/FMXfs21.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfs21.res differ diff --git a/FastScript/FMXfs22.dpk b/FastScript/FMXfs22.dpk new file mode 100644 index 0000000..6820909 --- /dev/null +++ b/FastScript/FMXfs22.dpk @@ -0,0 +1,60 @@ +// Package file for Delphi XE8 + +package FMXfs22; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs22.otares b/FastScript/FMXfs22.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfs22.otares differ diff --git a/FastScript/FMXfs22.res b/FastScript/FMXfs22.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfs22.res differ diff --git a/FastScript/FMXfs23.dpk b/FastScript/FMXfs23.dpk new file mode 100644 index 0000000..8c587b3 --- /dev/null +++ b/FastScript/FMXfs23.dpk @@ -0,0 +1,59 @@ +// Package file for Delphi 10 Seattle + +package FMXfs23; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs23.otares b/FastScript/FMXfs23.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfs23.otares differ diff --git a/FastScript/FMXfs23.res b/FastScript/FMXfs23.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfs23.res differ diff --git a/FastScript/FMXfs24.dpk b/FastScript/FMXfs24.dpk new file mode 100644 index 0000000..19818d3 --- /dev/null +++ b/FastScript/FMXfs24.dpk @@ -0,0 +1,59 @@ +// Package file for Delphi 10 Seattle + +package FMXfs24; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs24.otares b/FastScript/FMXfs24.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfs24.otares differ diff --git a/FastScript/FMXfs24.res b/FastScript/FMXfs24.res new file mode 100644 index 0000000..3bb7875 Binary files /dev/null and b/FastScript/FMXfs24.res differ diff --git a/FastScript/FMXfs25.dpk b/FastScript/FMXfs25.dpk new file mode 100644 index 0000000..2f96717 --- /dev/null +++ b/FastScript/FMXfs25.dpk @@ -0,0 +1,59 @@ +// Package file for Delphi 10 Seattle + +package FMXfs25; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs25.otares b/FastScript/FMXfs25.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfs25.otares differ diff --git a/FastScript/FMXfs25.res b/FastScript/FMXfs25.res new file mode 100644 index 0000000..3bb7875 Binary files /dev/null and b/FastScript/FMXfs25.res differ diff --git a/FastScript/FMXfs26.dpk b/FastScript/FMXfs26.dpk new file mode 100644 index 0000000..9738876 --- /dev/null +++ b/FastScript/FMXfs26.dpk @@ -0,0 +1,59 @@ +// Package file for Delphi 10 Seattle + +package FMXfs26; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs27.dpk b/FastScript/FMXfs27.dpk new file mode 100644 index 0000000..f5773b1 --- /dev/null +++ b/FastScript/FMXfs27.dpk @@ -0,0 +1,59 @@ +// Package file for Delphi 10 Seattle + +package FMXfs27; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs28.dpk b/FastScript/FMXfs28.dpk new file mode 100644 index 0000000..108da25 --- /dev/null +++ b/FastScript/FMXfs28.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 11 Seattle + +package FMXfs28; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.BaseTypeAliases in 'FMX.BaseTypeAliases.pas', + FMX.FormTypeAliases in 'FMX.FormTypeAliases.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfs29.dpk b/FastScript/FMXfs29.dpk new file mode 100644 index 0000000..95ece44 --- /dev/null +++ b/FastScript/FMXfs29.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 12 + +package FMXfs29; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO OFF} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + fmx; + +contains + FMX.fs_ipascal in 'FMX.fs_ipascal.pas', + FMX.fs_icpp in 'FMX.fs_icpp.pas', + FMX.fs_ijs in 'FMX.fs_ijs.pas', + FMX.fs_ibasic in 'FMX.fs_ibasic.pas', + FMX.BaseTypeAliases in 'FMX.BaseTypeAliases.pas', + FMX.FormTypeAliases in 'FMX.FormTypeAliases.pas', + FMX.fs_iclassesrtti in 'FMX.fs_iclassesrtti.pas', + FMX.fs_iconst in 'FMX.fs_iconst.pas', + FMX.fs_idialogsrtti in 'FMX.fs_idialogsrtti.pas', + FMX.fs_ievents in 'FMX.fs_ievents.pas', + FMX.fs_iexpression in 'FMX.fs_iexpression.pas', + FMX.fs_iextctrlsrtti in 'FMX.fs_iextctrlsrtti.pas', + FMX.fs_iformsrtti in 'FMX.fs_iformsrtti.pas', + FMX.fs_igraphicsrtti in 'FMX.fs_igraphicsrtti.pas', + FMX.fs_iilparser in 'FMX.fs_iilparser.pas', + FMX.fs_iinirtti in 'FMX.fs_iinirtti.pas', + FMX.fs_iinterpreter in 'FMX.fs_iinterpreter.pas', + FMX.fs_iparser in 'FMX.fs_iparser.pas', + FMX.fs_isysrtti in 'FMX.fs_isysrtti.pas', + FMX.fs_imenusrtti in 'FMX.fs_imenusrtti.pas', + FMX.fs_itools in 'FMX.fs_itools.pas', + FMX.fs_xml in 'FMX.fs_xml.pas', + FMX.fs_synmemo in 'FMX.fs_synmemo.pas', + FMX.fs_tree in 'FMX.fs_tree.pas'; + +end. diff --git a/FastScript/FMXfsADO16.dpk b/FastScript/FMXfsADO16.dpk new file mode 100644 index 0000000..10a404d --- /dev/null +++ b/FastScript/FMXfsADO16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package FMXfsADO16; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs16, + FMXfsDB16; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO16.res b/FastScript/FMXfsADO16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsADO16.res differ diff --git a/FastScript/FMXfsADO17.dpk b/FastScript/FMXfsADO17.dpk new file mode 100644 index 0000000..52b903a --- /dev/null +++ b/FastScript/FMXfsADO17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package FMXfsADO17; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs17, + FMXfsDB17; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO17.res b/FastScript/FMXfsADO17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsADO17.res differ diff --git a/FastScript/FMXfsADO18.dpk b/FastScript/FMXfsADO18.dpk new file mode 100644 index 0000000..f441ad3 --- /dev/null +++ b/FastScript/FMXfsADO18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package FMXfsADO18; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs18, + FMXfsDB18; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO18.res b/FastScript/FMXfsADO18.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsADO18.res differ diff --git a/FastScript/FMXfsADO19.dpk b/FastScript/FMXfsADO19.dpk new file mode 100644 index 0000000..424714e --- /dev/null +++ b/FastScript/FMXfsADO19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package FMXfsADO19; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs19, + FMXfsDB19; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO19.res b/FastScript/FMXfsADO19.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsADO19.res differ diff --git a/FastScript/FMXfsADO20.dpk b/FastScript/FMXfsADO20.dpk new file mode 100644 index 0000000..d19c363 --- /dev/null +++ b/FastScript/FMXfsADO20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package FMXfsADO20; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs20, + FMXfsDB20; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO20.res b/FastScript/FMXfsADO20.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsADO20.res differ diff --git a/FastScript/FMXfsADO21.dpk b/FastScript/FMXfsADO21.dpk new file mode 100644 index 0000000..83c3ad3 --- /dev/null +++ b/FastScript/FMXfsADO21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package FMXfsADO21; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs21, + FMXfsDB21; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO21.res b/FastScript/FMXfsADO21.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsADO21.res differ diff --git a/FastScript/FMXfsADO22.dpk b/FastScript/FMXfsADO22.dpk new file mode 100644 index 0000000..ca5d373 --- /dev/null +++ b/FastScript/FMXfsADO22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package FMXfsADO22; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs22, + FMXfsDB22; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO22.res b/FastScript/FMXfsADO22.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsADO22.res differ diff --git a/FastScript/FMXfsADO23.dpk b/FastScript/FMXfsADO23.dpk new file mode 100644 index 0000000..0bc722e --- /dev/null +++ b/FastScript/FMXfsADO23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsADO23; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs23, + FMXfsDB23; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO23.res b/FastScript/FMXfsADO23.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsADO23.res differ diff --git a/FastScript/FMXfsADO24.dpk b/FastScript/FMXfsADO24.dpk new file mode 100644 index 0000000..beb9b84 --- /dev/null +++ b/FastScript/FMXfsADO24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsADO24; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs24, + FMXfsDB24; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO24.res b/FastScript/FMXfsADO24.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsADO24.res differ diff --git a/FastScript/FMXfsADO25.dpk b/FastScript/FMXfsADO25.dpk new file mode 100644 index 0000000..93c4991 --- /dev/null +++ b/FastScript/FMXfsADO25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsADO25; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs25, + FMXfsDB25; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO25.res b/FastScript/FMXfsADO25.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsADO25.res differ diff --git a/FastScript/FMXfsADO26.dpk b/FastScript/FMXfsADO26.dpk new file mode 100644 index 0000000..0ed9a68 --- /dev/null +++ b/FastScript/FMXfsADO26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsADO26; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs26, + FMXfsDB26; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO27.dpk b/FastScript/FMXfsADO27.dpk new file mode 100644 index 0000000..f2a00b7 --- /dev/null +++ b/FastScript/FMXfsADO27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsADO27; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs27, + FMXfsDB27; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO28.dpk b/FastScript/FMXfsADO28.dpk new file mode 100644 index 0000000..d175800 --- /dev/null +++ b/FastScript/FMXfsADO28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package FMXfsADO28; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs28, + FMXfsDB28; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsADO29.dpk b/FastScript/FMXfsADO29.dpk new file mode 100644 index 0000000..c14c3be --- /dev/null +++ b/FastScript/FMXfsADO29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package FMXfsADO29; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + dbrtl, + ADORTL, + FMXfs29, + FMXfsDB29; + +contains + FMX.fs_iadortti in 'FMX.fs_iadortti.pas'; + +end. diff --git a/FastScript/FMXfsDB16.dpk b/FastScript/FMXfsDB16.dpk new file mode 100644 index 0000000..f6fa97e --- /dev/null +++ b/FastScript/FMXfsDB16.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE2 + +package FMXfsDB16; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs16, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB16.res b/FastScript/FMXfsDB16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsDB16.res differ diff --git a/FastScript/FMXfsDB17.dpk b/FastScript/FMXfsDB17.dpk new file mode 100644 index 0000000..6df8aa2 --- /dev/null +++ b/FastScript/FMXfsDB17.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE3 + +package FMXfsDB17; + +{$R *.res} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs17, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB17.res b/FastScript/FMXfsDB17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsDB17.res differ diff --git a/FastScript/FMXfsDB18.dpk b/FastScript/FMXfsDB18.dpk new file mode 100644 index 0000000..86897c0 --- /dev/null +++ b/FastScript/FMXfsDB18.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE4 + +package FMXfsDB18; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs18, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB18.otares b/FastScript/FMXfsDB18.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfsDB18.otares differ diff --git a/FastScript/FMXfsDB18.res b/FastScript/FMXfsDB18.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsDB18.res differ diff --git a/FastScript/FMXfsDB19.dpk b/FastScript/FMXfsDB19.dpk new file mode 100644 index 0000000..2109b95 --- /dev/null +++ b/FastScript/FMXfsDB19.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE5 + +package FMXfsDB19; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs19, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB19.otares b/FastScript/FMXfsDB19.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfsDB19.otares differ diff --git a/FastScript/FMXfsDB19.res b/FastScript/FMXfsDB19.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsDB19.res differ diff --git a/FastScript/FMXfsDB20.dpk b/FastScript/FMXfsDB20.dpk new file mode 100644 index 0000000..01116cd --- /dev/null +++ b/FastScript/FMXfsDB20.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE6 + +package FMXfsDB20; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs20, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB20.otares b/FastScript/FMXfsDB20.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfsDB20.otares differ diff --git a/FastScript/FMXfsDB20.res b/FastScript/FMXfsDB20.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsDB20.res differ diff --git a/FastScript/FMXfsDB21.dpk b/FastScript/FMXfsDB21.dpk new file mode 100644 index 0000000..8848232 --- /dev/null +++ b/FastScript/FMXfsDB21.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE7 + +package FMXfsDB21; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs21, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB21.otares b/FastScript/FMXfsDB21.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfsDB21.otares differ diff --git a/FastScript/FMXfsDB21.res b/FastScript/FMXfsDB21.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsDB21.res differ diff --git a/FastScript/FMXfsDB22.dpk b/FastScript/FMXfsDB22.dpk new file mode 100644 index 0000000..08bd29f --- /dev/null +++ b/FastScript/FMXfsDB22.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE8 + +package FMXfsDB22; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs22, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB22.otares b/FastScript/FMXfsDB22.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfsDB22.otares differ diff --git a/FastScript/FMXfsDB22.res b/FastScript/FMXfsDB22.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsDB22.res differ diff --git a/FastScript/FMXfsDB23.dpk b/FastScript/FMXfsDB23.dpk new file mode 100644 index 0000000..fc47610 --- /dev/null +++ b/FastScript/FMXfsDB23.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 10 Seattle + +package FMXfsDB23; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs23, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB23.otares b/FastScript/FMXfsDB23.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfsDB23.otares differ diff --git a/FastScript/FMXfsDB23.res b/FastScript/FMXfsDB23.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsDB23.res differ diff --git a/FastScript/FMXfsDB24.dpk b/FastScript/FMXfsDB24.dpk new file mode 100644 index 0000000..6d3f1a9 --- /dev/null +++ b/FastScript/FMXfsDB24.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 10 Seattle + +package FMXfsDB24; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs24, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB24.otares b/FastScript/FMXfsDB24.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfsDB24.otares differ diff --git a/FastScript/FMXfsDB24.res b/FastScript/FMXfsDB24.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsDB24.res differ diff --git a/FastScript/FMXfsDB25.dpk b/FastScript/FMXfsDB25.dpk new file mode 100644 index 0000000..d873f3a --- /dev/null +++ b/FastScript/FMXfsDB25.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 10 Seattle + +package FMXfsDB25; + +{$R *.res} +{$R *.otares} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs25, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB25.otares b/FastScript/FMXfsDB25.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/FMXfsDB25.otares differ diff --git a/FastScript/FMXfsDB25.res b/FastScript/FMXfsDB25.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsDB25.res differ diff --git a/FastScript/FMXfsDB26.dpk b/FastScript/FMXfsDB26.dpk new file mode 100644 index 0000000..359e620 --- /dev/null +++ b/FastScript/FMXfsDB26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsDB26; + +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs26, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB27.dpk b/FastScript/FMXfsDB27.dpk new file mode 100644 index 0000000..e18c2a2 --- /dev/null +++ b/FastScript/FMXfsDB27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package FMXfsDB27; + +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs27, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB28.dpk b/FastScript/FMXfsDB28.dpk new file mode 100644 index 0000000..8cac226 --- /dev/null +++ b/FastScript/FMXfsDB28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package FMXfsDB28; + +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs28, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsDB29.dpk b/FastScript/FMXfsDB29.dpk new file mode 100644 index 0000000..d7fb8f0 --- /dev/null +++ b/FastScript/FMXfsDB29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package FMXfsDB29; + +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST OFF} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs29, + dbrtl; + +contains + FMX.fs_idbrtti in 'FMX.fs_idbrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX16.dpk b/FastScript/FMXfsIBX16.dpk new file mode 100644 index 0000000..a64c4d2 --- /dev/null +++ b/FastScript/FMXfsIBX16.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE2 + +package FMXfsIBX16; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs16, + FMXfsDB16; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX16.res b/FastScript/FMXfsIBX16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsIBX16.res differ diff --git a/FastScript/FMXfsIBX17.dpk b/FastScript/FMXfsIBX17.dpk new file mode 100644 index 0000000..cf3fb7e --- /dev/null +++ b/FastScript/FMXfsIBX17.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE3 + +package FMXfsIBX17; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs17, + FMXfsDB17; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX17.res b/FastScript/FMXfsIBX17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsIBX17.res differ diff --git a/FastScript/FMXfsIBX18.dpk b/FastScript/FMXfsIBX18.dpk new file mode 100644 index 0000000..7288365 --- /dev/null +++ b/FastScript/FMXfsIBX18.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE4 + +package FMXfsIBX18; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs18, + FMXfsDB18; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX18.res b/FastScript/FMXfsIBX18.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsIBX18.res differ diff --git a/FastScript/FMXfsIBX19.dpk b/FastScript/FMXfsIBX19.dpk new file mode 100644 index 0000000..cf86260 --- /dev/null +++ b/FastScript/FMXfsIBX19.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE5 + +package FMXfsIBX19; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs19, + FMXfsDB19; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX19.res b/FastScript/FMXfsIBX19.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsIBX19.res differ diff --git a/FastScript/FMXfsIBX20.dpk b/FastScript/FMXfsIBX20.dpk new file mode 100644 index 0000000..2e741b2 --- /dev/null +++ b/FastScript/FMXfsIBX20.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE6 + +package FMXfsIBX20; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs20, + FMXfsDB20; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX20.res b/FastScript/FMXfsIBX20.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsIBX20.res differ diff --git a/FastScript/FMXfsIBX21.dpk b/FastScript/FMXfsIBX21.dpk new file mode 100644 index 0000000..d6cd6d2 --- /dev/null +++ b/FastScript/FMXfsIBX21.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE7 + +package FMXfsIBX21; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs21, + FMXfsDB21; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX21.res b/FastScript/FMXfsIBX21.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsIBX21.res differ diff --git a/FastScript/FMXfsIBX22.dpk b/FastScript/FMXfsIBX22.dpk new file mode 100644 index 0000000..e870670 --- /dev/null +++ b/FastScript/FMXfsIBX22.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi XE8 + +package FMXfsIBX22; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs22, + FMXfsDB22; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX22.res b/FastScript/FMXfsIBX22.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsIBX22.res differ diff --git a/FastScript/FMXfsIBX23.dpk b/FastScript/FMXfsIBX23.dpk new file mode 100644 index 0000000..ef8b9fd --- /dev/null +++ b/FastScript/FMXfsIBX23.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 10 Seattle + +package FMXfsIBX23; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs23, + FMXfsDB23; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX23.res b/FastScript/FMXfsIBX23.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsIBX23.res differ diff --git a/FastScript/FMXfsIBX24.dpk b/FastScript/FMXfsIBX24.dpk new file mode 100644 index 0000000..d2c75a8 --- /dev/null +++ b/FastScript/FMXfsIBX24.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 10 Seattle + +package FMXfsIBX24; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs24, + FMXfsDB24; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX24.res b/FastScript/FMXfsIBX24.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsIBX24.res differ diff --git a/FastScript/FMXfsIBX25.dpk b/FastScript/FMXfsIBX25.dpk new file mode 100644 index 0000000..5a734d2 --- /dev/null +++ b/FastScript/FMXfsIBX25.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 10 Seattle + +package FMXfsIBX25; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs25, + FMXfsDB25; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX25.res b/FastScript/FMXfsIBX25.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/FMXfsIBX25.res differ diff --git a/FastScript/FMXfsIBX26.dpk b/FastScript/FMXfsIBX26.dpk new file mode 100644 index 0000000..3acb9cc --- /dev/null +++ b/FastScript/FMXfsIBX26.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 10 Seattle + +package FMXfsIBX26; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs26, + FMXfsDB26; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX27.dpk b/FastScript/FMXfsIBX27.dpk new file mode 100644 index 0000000..de6a34e --- /dev/null +++ b/FastScript/FMXfsIBX27.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 10 Seattle + +package FMXfsIBX27; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs27, + FMXfsDB27; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX28.dpk b/FastScript/FMXfsIBX28.dpk new file mode 100644 index 0000000..ea81b98 --- /dev/null +++ b/FastScript/FMXfsIBX28.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 11 Seattle + +package FMXfsIBX28; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs28, + FMXfsDB28; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsIBX29.dpk b/FastScript/FMXfsIBX29.dpk new file mode 100644 index 0000000..b5fa135 --- /dev/null +++ b/FastScript/FMXfsIBX29.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 12 + +package FMXfsIBX29; + +{$I fmx.inc} +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DBrtl, + IBXPRESS, + FMXfs29, + FMXfsDB29; + +contains + FMX.fs_iibxrtti in 'FMX.fs_iibxrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee16.dpk b/FastScript/FMXfsTee16.dpk new file mode 100644 index 0000000..69bd560 --- /dev/null +++ b/FastScript/FMXfsTee16.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE2 + +package FMXfsTee16; + +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro916, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee916, FMXTEEUI916, {$ENDIF} + FMXfs16; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee16.res b/FastScript/FMXfsTee16.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsTee16.res differ diff --git a/FastScript/FMXfsTee17.dpk b/FastScript/FMXfsTee17.dpk new file mode 100644 index 0000000..f51d5e6 --- /dev/null +++ b/FastScript/FMXfsTee17.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE3 + +package FMXfsTee17; + +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro917, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee917, FMXTEEUI917, {$ENDIF} + FMXfs17; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee17.res b/FastScript/FMXfsTee17.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsTee17.res differ diff --git a/FastScript/FMXfsTee18.dpk b/FastScript/FMXfsTee18.dpk new file mode 100644 index 0000000..e963a8b --- /dev/null +++ b/FastScript/FMXfsTee18.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE4 + +package FMXfsTee18; + +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro918, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee918, FMXTEEUI918, {$ENDIF} + FMXfs18; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee18.res b/FastScript/FMXfsTee18.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsTee18.res differ diff --git a/FastScript/FMXfsTee19.dpk b/FastScript/FMXfsTee19.dpk new file mode 100644 index 0000000..1370860 --- /dev/null +++ b/FastScript/FMXfsTee19.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE5 + +package FMXfsTee19; +{$I tee.inc} +{$I fmx.inc} + +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + FMXfs19 +{$IFDEF TeeChartStd} ,FMXTEE{$ENDIF} +{$IFDEF TeeChart9},FMXTeePro919 {$ENDIF} +{$IFDEF TeeChartStd9},FMXTee919{$ENDIF}; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. + diff --git a/FastScript/FMXfsTee19.res b/FastScript/FMXfsTee19.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsTee19.res differ diff --git a/FastScript/FMXfsTee20.dpk b/FastScript/FMXfsTee20.dpk new file mode 100644 index 0000000..bf358bd --- /dev/null +++ b/FastScript/FMXfsTee20.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE6 + +package FMXfsTee20; + +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro920, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee920, TEEUI920, {$ENDIF} + FMXfs20; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee20.res b/FastScript/FMXfsTee20.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsTee20.res differ diff --git a/FastScript/FMXfsTee21.dpk b/FastScript/FMXfsTee21.dpk new file mode 100644 index 0000000..3481fb5 --- /dev/null +++ b/FastScript/FMXfsTee21.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE7 + +package FMXfsTee21; + +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro921, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee921, TEEUI921, {$ENDIF} + FMXfs21; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee21.res b/FastScript/FMXfsTee21.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsTee21.res differ diff --git a/FastScript/FMXfsTee22.dpk b/FastScript/FMXfsTee22.dpk new file mode 100644 index 0000000..25e0fa0 --- /dev/null +++ b/FastScript/FMXfsTee22.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE8 + +package FMXfsTee22; + +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro922, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee922, TEEUI922, {$ENDIF} + FMXfs22; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee22.res b/FastScript/FMXfsTee22.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsTee22.res differ diff --git a/FastScript/FMXfsTee23.dpk b/FastScript/FMXfsTee23.dpk new file mode 100644 index 0000000..7a09181 --- /dev/null +++ b/FastScript/FMXfsTee23.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 10 Seattle + +package FMXfsTee23; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro923, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee923, TEEUI923, {$ENDIF} + FMXfs23; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee23.res b/FastScript/FMXfsTee23.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsTee23.res differ diff --git a/FastScript/FMXfsTee24.dpk b/FastScript/FMXfsTee24.dpk new file mode 100644 index 0000000..4a295f0 --- /dev/null +++ b/FastScript/FMXfsTee24.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 10 Seattle + +package FMXfsTee24; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro924, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee924, TEEUI924, {$ENDIF} + FMXfs24; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee24.res b/FastScript/FMXfsTee24.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsTee24.res differ diff --git a/FastScript/FMXfsTee25.dpk b/FastScript/FMXfsTee25.dpk new file mode 100644 index 0000000..6befc20 --- /dev/null +++ b/FastScript/FMXfsTee25.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 10 Seattle + +package FMXfsTee25; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro925, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee925, TEEUI925, {$ENDIF} + FMXfs25; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee25.res b/FastScript/FMXfsTee25.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/FMXfsTee25.res differ diff --git a/FastScript/FMXfsTee26.dpk b/FastScript/FMXfsTee26.dpk new file mode 100644 index 0000000..ba7bb49 --- /dev/null +++ b/FastScript/FMXfsTee26.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 10 Seattle + +package FMXfsTee26; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro926, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee926, TEEUI926, {$ENDIF} + FMXfs26; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee27.dpk b/FastScript/FMXfsTee27.dpk new file mode 100644 index 0000000..69374c7 --- /dev/null +++ b/FastScript/FMXfsTee27.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 10 Seattle + +package FMXfsTee27; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro927, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee927, TEEUI927, {$ENDIF} + FMXfs27; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee28.dpk b/FastScript/FMXfsTee28.dpk new file mode 100644 index 0000000..4270e34 --- /dev/null +++ b/FastScript/FMXfsTee28.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 11 Seattle + +package FMXfsTee28; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro928, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee928, TEEUI928, {$ENDIF} + FMXfs28; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfsTee29.dpk b/FastScript/FMXfsTee29.dpk new file mode 100644 index 0000000..29aa466 --- /dev/null +++ b/FastScript/FMXfsTee29.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi 12 + +package FMXfsTee29; +{$I fs.inc} +{$I fmx.inc} +{$I tee.inc} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, +{$IFDEF TeeChartStd} FMXTEE,{$ENDIF} +{$IFDEF TeeChart9}FMXTeePro929, {$ENDIF} +{$IFDEF TeeChartStd9}FMXTee929, TEEUI929, {$ENDIF} + FMXfs29; + +contains + FMX.fs_ichartrtti in 'FMX.fs_ichartrtti.pas'; + +end. diff --git a/FastScript/FMXfs_iadoreg.pas b/FastScript/FMXfs_iadoreg.pas new file mode 100644 index 0000000..8decc54 --- /dev/null +++ b/FastScript/FMXfs_iadoreg.pas @@ -0,0 +1,37 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMXfs_iadoreg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + System.Classes +, DesignIntf +, FMX.Types +, FMX.fs_iadortti; + +{-----------------------------------------------------------------------} + +procedure Register; +begin + //GroupDescendentsWith(TfsADORTTI, TFmxObject); + RegisterComponents('FastScript FMX', [TfsADORTTI]); +end; + +end. diff --git a/FastScript/FMXfs_idbreg.pas b/FastScript/FMXfs_idbreg.pas new file mode 100644 index 0000000..b514773 --- /dev/null +++ b/FastScript/FMXfs_idbreg.pas @@ -0,0 +1,37 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMXfs_idbreg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + System.Classes +, DesignIntf +, FMX.Types +, FMX.fs_idbrtti; + +{-----------------------------------------------------------------------} + +procedure Register; +begin + // GroupDescendentsWith(TfsDBRTTI, TFmxObject); + RegisterComponents('FastScript FMX', [TfsDBRTTI]); +end; + +end. diff --git a/FastScript/FMXfs_iibxreg.pas b/FastScript/FMXfs_iibxreg.pas new file mode 100644 index 0000000..9a946a4 --- /dev/null +++ b/FastScript/FMXfs_iibxreg.pas @@ -0,0 +1,37 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMXfs_iibxreg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + System.Classes +, FMX.Types +, DesignIntf +, FMX.fs_iibxrtti; + +{-----------------------------------------------------------------------} + +procedure Register; +begin + //GroupDescendentsWith(TfsIBXRTTI, TFmxObject); + RegisterComponents('FastScript FMX', [TfsIBXRTTI]); +end; + +end. diff --git a/FastScript/FMXfs_ireg.pas b/FastScript/FMXfs_ireg.pas new file mode 100644 index 0000000..496346b --- /dev/null +++ b/FastScript/FMXfs_ireg.pas @@ -0,0 +1,85 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMXfs_ireg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation +uses + System.Classes +{$IFNDEF FPC} + {$IFNDEF Delphi6} + , DsgnIntf + {$ELSE} + , DesignIntf + {$ENDIF} +{$ELSE} + ,PropEdits + ,LazarusPackageIntf + ,LResources +{$ENDIF} +{$IFDEF DELPHI16} + , FMX.Controls, FMX.Types +{$ENDIF} +, FMX.fs_iinterpreter, FMX.fs_iclassesrtti, FMX.fs_igraphicsrtti, FMX.fs_iformsrtti, + FMX.fs_iextctrlsrtti, FMX.fs_idialogsrtti, FMX.fs_iinirtti, FMX.fs_imenusrtti, + FMX.fs_ipascal, FMX.fs_icpp, FMX.fs_ijs, FMX.fs_ibasic, FMX.fs_tree +{$IFNDEF CLX} +, FMX.fs_synmemo +{$ENDIF} +; + +{-----------------------------------------------------------------------} + +{$ifdef FPC} +procedure RegisterUnitfs_ireg; +{$else} +procedure Register; +{$endif} +begin + {GroupDescendentsWith(TfsExtCtrlsRTTI, TFmxObject); + GroupDescendentsWith(TfsDialogsRTTI, TFmxObject); + GroupDescendentsWith(TfsGraphicsRTTI, TFmxObject); + GroupDescendentsWith(TfsMenusRTTI, TFmxObject); + GroupDescendentsWith(TfsScript, TFmxObject); + GroupDescendentsWith(TfsIniRTTI, TFmxObject); + GroupDescendentsWith(TfsFormsRTTI, TFmxObject); + GroupDescendentsWith(TfsClassesRTTI, TFmxObject); + GroupDescendentsWith(TfsPascal, TFmxObject); + GroupDescendentsWith(TfsCPP, TFmxObject); + GroupDescendentsWith(TfsJScript, TFmxObject); + GroupDescendentsWith(TfsBasic, TFmxObject);} + RegisterComponents('FastScript FMX', + [TfsScript, TfsPascal, TfsCPP, TfsJScript, TfsBasic, + TfsClassesRTTI, TfsGraphicsRTTI, TfsFormsRTTI, TfsExtCtrlsRTTI, + TfsDialogsRTTI, TfsMenusRTTI, TfsIniRTTI, + TfsTree, TfsSyntaxMemo]); + +end; + +{$ifdef FPC} +procedure Register; +begin + RegisterUnit('fs_ireg', @RegisterUnitfs_ireg); +end; +{$endif} + +initialization +{$IFDEF FPC} + {$INCLUDE fs_ireg.lrs} +{$ENDIF} +end. diff --git a/FastScript/FMXfs_iteereg.pas b/FastScript/FMXfs_iteereg.pas new file mode 100644 index 0000000..f47dea6 --- /dev/null +++ b/FastScript/FMXfs_iteereg.pas @@ -0,0 +1,38 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit FMXfs_iteereg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + System.Classes +, FMX.Types +, DesignIntf +, FMX.fs_ichartrtti; + +{-----------------------------------------------------------------------} + +procedure Register; +begin + //GroupDescendentsWith(TfsChartRTTI, TFmxObject); + RegisterComponents('FastScript FMX', + [TfsChartRTTI]); +end; + +end. diff --git a/FastScript/bitmaps/TFSADORTTI.bmp b/FastScript/bitmaps/TFSADORTTI.bmp new file mode 100644 index 0000000..f966d42 Binary files /dev/null and b/FastScript/bitmaps/TFSADORTTI.bmp differ diff --git a/FastScript/bitmaps/TFSBASIC.bmp b/FastScript/bitmaps/TFSBASIC.bmp new file mode 100644 index 0000000..13d4c8d Binary files /dev/null and b/FastScript/bitmaps/TFSBASIC.bmp differ diff --git a/FastScript/bitmaps/TFSBDERTTI.bmp b/FastScript/bitmaps/TFSBDERTTI.bmp new file mode 100644 index 0000000..49a8dbc Binary files /dev/null and b/FastScript/bitmaps/TFSBDERTTI.bmp differ diff --git a/FastScript/bitmaps/TFSCHARTRTTI.bmp b/FastScript/bitmaps/TFSCHARTRTTI.bmp new file mode 100644 index 0000000..d1f6f41 Binary files /dev/null and b/FastScript/bitmaps/TFSCHARTRTTI.bmp differ diff --git a/FastScript/bitmaps/TFSCLASSESRTTI.bmp b/FastScript/bitmaps/TFSCLASSESRTTI.bmp new file mode 100644 index 0000000..cf81c5b Binary files /dev/null and b/FastScript/bitmaps/TFSCLASSESRTTI.bmp differ diff --git a/FastScript/bitmaps/TFSCPP.bmp b/FastScript/bitmaps/TFSCPP.bmp new file mode 100644 index 0000000..0ce02dc Binary files /dev/null and b/FastScript/bitmaps/TFSCPP.bmp differ diff --git a/FastScript/bitmaps/TFSDBCTRLSRTTI.bmp b/FastScript/bitmaps/TFSDBCTRLSRTTI.bmp new file mode 100644 index 0000000..059d207 Binary files /dev/null and b/FastScript/bitmaps/TFSDBCTRLSRTTI.bmp differ diff --git a/FastScript/bitmaps/TFSDBRTTI.bmp b/FastScript/bitmaps/TFSDBRTTI.bmp new file mode 100644 index 0000000..bbcbb34 Binary files /dev/null and b/FastScript/bitmaps/TFSDBRTTI.bmp differ diff --git a/FastScript/bitmaps/TFSDIALOGSRTTI.bmp b/FastScript/bitmaps/TFSDIALOGSRTTI.bmp new file mode 100644 index 0000000..0b5a565 Binary files /dev/null and b/FastScript/bitmaps/TFSDIALOGSRTTI.bmp differ diff --git a/FastScript/bitmaps/TFSEXTCTRLSRTTI.bmp b/FastScript/bitmaps/TFSEXTCTRLSRTTI.bmp new file mode 100644 index 0000000..7e6fe4d Binary files /dev/null and b/FastScript/bitmaps/TFSEXTCTRLSRTTI.bmp differ diff --git a/FastScript/bitmaps/TFSFDRTTI.bat b/FastScript/bitmaps/TFSFDRTTI.bat new file mode 100644 index 0000000..4246ccf --- /dev/null +++ b/FastScript/bitmaps/TFSFDRTTI.bat @@ -0,0 +1 @@ +brcc32 -fo"fs_ifdreg.dcr" "TFSFDRTTI.rc" \ No newline at end of file diff --git a/FastScript/bitmaps/TFSFDRTTI.bmp b/FastScript/bitmaps/TFSFDRTTI.bmp new file mode 100644 index 0000000..47fabed Binary files /dev/null and b/FastScript/bitmaps/TFSFDRTTI.bmp differ diff --git a/FastScript/bitmaps/TFSFDRTTI.rc b/FastScript/bitmaps/TFSFDRTTI.rc new file mode 100644 index 0000000..b49af30 --- /dev/null +++ b/FastScript/bitmaps/TFSFDRTTI.rc @@ -0,0 +1 @@ +TFSFDRTTI BITMAP "TFSFDRTTI.bmp" \ No newline at end of file diff --git a/FastScript/bitmaps/TFSFORMSRTTI.bmp b/FastScript/bitmaps/TFSFORMSRTTI.bmp new file mode 100644 index 0000000..1075a16 Binary files /dev/null and b/FastScript/bitmaps/TFSFORMSRTTI.bmp differ diff --git a/FastScript/bitmaps/TFSGRAPHICSRTTI.bmp b/FastScript/bitmaps/TFSGRAPHICSRTTI.bmp new file mode 100644 index 0000000..46c7042 Binary files /dev/null and b/FastScript/bitmaps/TFSGRAPHICSRTTI.bmp differ diff --git a/FastScript/bitmaps/TFSIBXRTTI.bmp b/FastScript/bitmaps/TFSIBXRTTI.bmp new file mode 100644 index 0000000..240339d Binary files /dev/null and b/FastScript/bitmaps/TFSIBXRTTI.bmp differ diff --git a/FastScript/bitmaps/TFSINIRTTI.bmp b/FastScript/bitmaps/TFSINIRTTI.bmp new file mode 100644 index 0000000..3dd1e56 Binary files /dev/null and b/FastScript/bitmaps/TFSINIRTTI.bmp differ diff --git a/FastScript/bitmaps/TFSJSCRIPT.bmp b/FastScript/bitmaps/TFSJSCRIPT.bmp new file mode 100644 index 0000000..24e7cd8 Binary files /dev/null and b/FastScript/bitmaps/TFSJSCRIPT.bmp differ diff --git a/FastScript/bitmaps/TFSMENUSRTTI.bmp b/FastScript/bitmaps/TFSMENUSRTTI.bmp new file mode 100644 index 0000000..ad308c3 Binary files /dev/null and b/FastScript/bitmaps/TFSMENUSRTTI.bmp differ diff --git a/FastScript/bitmaps/TFSPASCAL.bmp b/FastScript/bitmaps/TFSPASCAL.bmp new file mode 100644 index 0000000..aee07d9 Binary files /dev/null and b/FastScript/bitmaps/TFSPASCAL.bmp differ diff --git a/FastScript/bitmaps/TFSSCRIPT.bmp b/FastScript/bitmaps/TFSSCRIPT.bmp new file mode 100644 index 0000000..df880d1 Binary files /dev/null and b/FastScript/bitmaps/TFSSCRIPT.bmp differ diff --git a/FastScript/bitmaps/TFSSYNTAXMEMO.bmp b/FastScript/bitmaps/TFSSYNTAXMEMO.bmp new file mode 100644 index 0000000..f06f89f Binary files /dev/null and b/FastScript/bitmaps/TFSSYNTAXMEMO.bmp differ diff --git a/FastScript/bitmaps/TFSTREE.bmp b/FastScript/bitmaps/TFSTREE.bmp new file mode 100644 index 0000000..9885c37 Binary files /dev/null and b/FastScript/bitmaps/TFSTREE.bmp differ diff --git a/FastScript/bitmaps/build_fstree.bat b/FastScript/bitmaps/build_fstree.bat new file mode 100644 index 0000000..299ce53 --- /dev/null +++ b/FastScript/bitmaps/build_fstree.bat @@ -0,0 +1 @@ +lazres ..\fs_tree.lrs FSTREE.BMP diff --git a/FastScript/bitmaps/build_lrs.bat b/FastScript/bitmaps/build_lrs.bat new file mode 100644 index 0000000..aabec47 --- /dev/null +++ b/FastScript/bitmaps/build_lrs.bat @@ -0,0 +1 @@ +lazres ..\fs_ireg.lrs TFSADORTTI.bmp TFSBASIC.bmp TFSBDERTTI.bmp TFSCHARTRTTI.bmp TFSCLASSESRTTI.bmp TFSINIRTTI.bmp TFSMENUSRTTI.bmp TFSCPP.bmp TFSDBCTRLSRTTI.bmp TFSDBRTTI.bmp TFSDIALOGSRTTI.bmp TFSEXTCTRLSRTTI.bmp TFSFORMSRTTI.bmp TFSGRAPHICSRTTI.bmp TFSIBXRTTI.bmp TFSJSCRIPT.bmp TFSPASCAL.bmp TFSSCRIPT.bmp TFSSYNTAXMEMO.bmp TFSTREE.bmp diff --git a/FastScript/bitmaps/fstree.bmp b/FastScript/bitmaps/fstree.bmp new file mode 100644 index 0000000..3e3fcdf Binary files /dev/null and b/FastScript/bitmaps/fstree.bmp differ diff --git a/FastScript/dclFMXfs16.dpk b/FastScript/dclFMXfs16.dpk new file mode 100644 index 0000000..58b4aa8 --- /dev/null +++ b/FastScript/dclFMXfs16.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE2 + +package dclFMXfs16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs16; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs16.res b/FastScript/dclFMXfs16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfs16.res differ diff --git a/FastScript/dclFMXfs17.dpk b/FastScript/dclFMXfs17.dpk new file mode 100644 index 0000000..233a78e --- /dev/null +++ b/FastScript/dclFMXfs17.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE3 + +package dclFMXfs17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs17; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs17.res b/FastScript/dclFMXfs17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfs17.res differ diff --git a/FastScript/dclFMXfs18.dpk b/FastScript/dclFMXfs18.dpk new file mode 100644 index 0000000..77885c7 --- /dev/null +++ b/FastScript/dclFMXfs18.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE4 + +package dclFMXfs18; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs18; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs18.otares b/FastScript/dclFMXfs18.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfs18.otares differ diff --git a/FastScript/dclFMXfs18.res b/FastScript/dclFMXfs18.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfs18.res differ diff --git a/FastScript/dclFMXfs19.dpk b/FastScript/dclFMXfs19.dpk new file mode 100644 index 0000000..312058b --- /dev/null +++ b/FastScript/dclFMXfs19.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE5 + +package dclFMXfs19; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs19; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs19.otares b/FastScript/dclFMXfs19.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfs19.otares differ diff --git a/FastScript/dclFMXfs19.res b/FastScript/dclFMXfs19.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfs19.res differ diff --git a/FastScript/dclFMXfs20.dpk b/FastScript/dclFMXfs20.dpk new file mode 100644 index 0000000..4f35242 --- /dev/null +++ b/FastScript/dclFMXfs20.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE6 + +package dclFMXfs20; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs20; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs20.otares b/FastScript/dclFMXfs20.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfs20.otares differ diff --git a/FastScript/dclFMXfs20.res b/FastScript/dclFMXfs20.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfs20.res differ diff --git a/FastScript/dclFMXfs21.dpk b/FastScript/dclFMXfs21.dpk new file mode 100644 index 0000000..cf1c58d --- /dev/null +++ b/FastScript/dclFMXfs21.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE7 + +package dclFMXfs21; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs21; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs21.otares b/FastScript/dclFMXfs21.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfs21.otares differ diff --git a/FastScript/dclFMXfs21.res b/FastScript/dclFMXfs21.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfs21.res differ diff --git a/FastScript/dclFMXfs22.dpk b/FastScript/dclFMXfs22.dpk new file mode 100644 index 0000000..e6ac3ff --- /dev/null +++ b/FastScript/dclFMXfs22.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE8 + +package dclFMXfs22; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs22; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs22.otares b/FastScript/dclFMXfs22.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfs22.otares differ diff --git a/FastScript/dclFMXfs22.res b/FastScript/dclFMXfs22.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfs22.res differ diff --git a/FastScript/dclFMXfs23.dpk b/FastScript/dclFMXfs23.dpk new file mode 100644 index 0000000..c1bd62e --- /dev/null +++ b/FastScript/dclFMXfs23.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfs23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs23; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs23.otares b/FastScript/dclFMXfs23.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfs23.otares differ diff --git a/FastScript/dclFMXfs23.res b/FastScript/dclFMXfs23.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfs23.res differ diff --git a/FastScript/dclFMXfs24.dpk b/FastScript/dclFMXfs24.dpk new file mode 100644 index 0000000..e793d8b --- /dev/null +++ b/FastScript/dclFMXfs24.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfs24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs24; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs24.otares b/FastScript/dclFMXfs24.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfs24.otares differ diff --git a/FastScript/dclFMXfs24.res b/FastScript/dclFMXfs24.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfs24.res differ diff --git a/FastScript/dclFMXfs25.dpk b/FastScript/dclFMXfs25.dpk new file mode 100644 index 0000000..9128c4d --- /dev/null +++ b/FastScript/dclFMXfs25.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfs25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs25; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs25.otares b/FastScript/dclFMXfs25.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfs25.otares differ diff --git a/FastScript/dclFMXfs25.res b/FastScript/dclFMXfs25.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfs25.res differ diff --git a/FastScript/dclFMXfs26.dpk b/FastScript/dclFMXfs26.dpk new file mode 100644 index 0000000..48cdb6d --- /dev/null +++ b/FastScript/dclFMXfs26.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfs26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs26; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs27.dpk b/FastScript/dclFMXfs27.dpk new file mode 100644 index 0000000..674e7b6 --- /dev/null +++ b/FastScript/dclFMXfs27.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfs27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs27; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs28.dpk b/FastScript/dclFMXfs28.dpk new file mode 100644 index 0000000..d904555 --- /dev/null +++ b/FastScript/dclFMXfs28.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 11 Seattle + +package dclFMXfs28; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs28; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfs29.dpk b/FastScript/dclFMXfs29.dpk new file mode 100644 index 0000000..6c93adc --- /dev/null +++ b/FastScript/dclFMXfs29.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 12 + +package dclFMXfs29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$DESCRIPTION 'FastScript FMX 1.9 Components'} +{$DESIGNONLY} + +requires + FMX, + DESIGNIDE, + FMXfs29; + +contains + FMXfs_ireg in 'FMXfs_ireg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO16.dpk b/FastScript/dclFMXfsADO16.dpk new file mode 100644 index 0000000..51dfee4 --- /dev/null +++ b/FastScript/dclFMXfsADO16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclFMXfsADO16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs16, + FMXfsADO16; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO16.res b/FastScript/dclFMXfsADO16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsADO16.res differ diff --git a/FastScript/dclFMXfsADO17.dpk b/FastScript/dclFMXfsADO17.dpk new file mode 100644 index 0000000..645ec65 --- /dev/null +++ b/FastScript/dclFMXfsADO17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclFMXfsADO17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs17, + FMXfsADO17; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO17.res b/FastScript/dclFMXfsADO17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsADO17.res differ diff --git a/FastScript/dclFMXfsADO18.dpk b/FastScript/dclFMXfsADO18.dpk new file mode 100644 index 0000000..0262696 --- /dev/null +++ b/FastScript/dclFMXfsADO18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package dclFMXfsADO18; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs18, + FMXfsADO18; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO18.res b/FastScript/dclFMXfsADO18.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsADO18.res differ diff --git a/FastScript/dclFMXfsADO19.dpk b/FastScript/dclFMXfsADO19.dpk new file mode 100644 index 0000000..ad55963 --- /dev/null +++ b/FastScript/dclFMXfsADO19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package dclFMXfsADO19; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs19, + FMXfsADO19; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO19.res b/FastScript/dclFMXfsADO19.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsADO19.res differ diff --git a/FastScript/dclFMXfsADO20.dpk b/FastScript/dclFMXfsADO20.dpk new file mode 100644 index 0000000..8009901 --- /dev/null +++ b/FastScript/dclFMXfsADO20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package dclFMXfsADO20; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs20, + FMXfsADO20; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO20.res b/FastScript/dclFMXfsADO20.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsADO20.res differ diff --git a/FastScript/dclFMXfsADO21.dpk b/FastScript/dclFMXfsADO21.dpk new file mode 100644 index 0000000..40948f9 --- /dev/null +++ b/FastScript/dclFMXfsADO21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package dclFMXfsADO21; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs21, + FMXfsADO21; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO21.res b/FastScript/dclFMXfsADO21.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsADO21.res differ diff --git a/FastScript/dclFMXfsADO22.dpk b/FastScript/dclFMXfsADO22.dpk new file mode 100644 index 0000000..a5755db --- /dev/null +++ b/FastScript/dclFMXfsADO22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package dclFMXfsADO22; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs22, + FMXfsADO22; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO22.res b/FastScript/dclFMXfsADO22.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsADO22.res differ diff --git a/FastScript/dclFMXfsADO23.dpk b/FastScript/dclFMXfsADO23.dpk new file mode 100644 index 0000000..404c4c0 --- /dev/null +++ b/FastScript/dclFMXfsADO23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsADO23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs23, + FMXfsADO23; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO23.res b/FastScript/dclFMXfsADO23.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsADO23.res differ diff --git a/FastScript/dclFMXfsADO24.dpk b/FastScript/dclFMXfsADO24.dpk new file mode 100644 index 0000000..64bc04f --- /dev/null +++ b/FastScript/dclFMXfsADO24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsADO24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs24, + FMXfsADO24; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO24.res b/FastScript/dclFMXfsADO24.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsADO24.res differ diff --git a/FastScript/dclFMXfsADO25.dpk b/FastScript/dclFMXfsADO25.dpk new file mode 100644 index 0000000..982c24f --- /dev/null +++ b/FastScript/dclFMXfsADO25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsADO25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs25, + FMXfsADO25; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO25.res b/FastScript/dclFMXfsADO25.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsADO25.res differ diff --git a/FastScript/dclFMXfsADO26.dpk b/FastScript/dclFMXfsADO26.dpk new file mode 100644 index 0000000..2fc6d43 --- /dev/null +++ b/FastScript/dclFMXfsADO26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsADO26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs26, + FMXfsADO26; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO27.dpk b/FastScript/dclFMXfsADO27.dpk new file mode 100644 index 0000000..fddfc91 --- /dev/null +++ b/FastScript/dclFMXfsADO27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsADO27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs27, + FMXfsADO27; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO28.dpk b/FastScript/dclFMXfsADO28.dpk new file mode 100644 index 0000000..f593517 --- /dev/null +++ b/FastScript/dclFMXfsADO28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package dclFMXfsADO28; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs28, + FMXfsADO28; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsADO29.dpk b/FastScript/dclFMXfsADO29.dpk new file mode 100644 index 0000000..edc9fa5 --- /dev/null +++ b/FastScript/dclFMXfsADO29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package dclFMXfsADO29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs29, + FMXfsADO29; + +contains + FMXfs_iadoreg in 'FMXfs_iadoreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB16.dpk b/FastScript/dclFMXfsDB16.dpk new file mode 100644 index 0000000..ae49c7f --- /dev/null +++ b/FastScript/dclFMXfsDB16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclFMXfsDB16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs16, + FMXfsDB16; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB16.res b/FastScript/dclFMXfsDB16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsDB16.res differ diff --git a/FastScript/dclFMXfsDB17.dpk b/FastScript/dclFMXfsDB17.dpk new file mode 100644 index 0000000..65073fc --- /dev/null +++ b/FastScript/dclFMXfsDB17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclFMXfsDB17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs17, + FMXfsDB17; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB17.res b/FastScript/dclFMXfsDB17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsDB17.res differ diff --git a/FastScript/dclFMXfsDB18.dpk b/FastScript/dclFMXfsDB18.dpk new file mode 100644 index 0000000..f944213 --- /dev/null +++ b/FastScript/dclFMXfsDB18.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi XE4 + +package dclFMXfsDB18; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs18, + FMXfsDB18; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB18.otares b/FastScript/dclFMXfsDB18.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfsDB18.otares differ diff --git a/FastScript/dclFMXfsDB18.res b/FastScript/dclFMXfsDB18.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfsDB18.res differ diff --git a/FastScript/dclFMXfsDB19.dpk b/FastScript/dclFMXfsDB19.dpk new file mode 100644 index 0000000..6cd2ae6 --- /dev/null +++ b/FastScript/dclFMXfsDB19.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi XE5 + +package dclFMXfsDB19; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs19, + FMXfsDB19; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB19.otares b/FastScript/dclFMXfsDB19.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfsDB19.otares differ diff --git a/FastScript/dclFMXfsDB19.res b/FastScript/dclFMXfsDB19.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfsDB19.res differ diff --git a/FastScript/dclFMXfsDB20.dpk b/FastScript/dclFMXfsDB20.dpk new file mode 100644 index 0000000..9c12348 --- /dev/null +++ b/FastScript/dclFMXfsDB20.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi XE6 + +package dclFMXfsDB20; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs20, + FMXfsDB20; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB20.otares b/FastScript/dclFMXfsDB20.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfsDB20.otares differ diff --git a/FastScript/dclFMXfsDB20.res b/FastScript/dclFMXfsDB20.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfsDB20.res differ diff --git a/FastScript/dclFMXfsDB21.dpk b/FastScript/dclFMXfsDB21.dpk new file mode 100644 index 0000000..5f18d25 --- /dev/null +++ b/FastScript/dclFMXfsDB21.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi XE7 + +package dclFMXfsDB21; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs21, + FMXfsDB21; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB21.otares b/FastScript/dclFMXfsDB21.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfsDB21.otares differ diff --git a/FastScript/dclFMXfsDB21.res b/FastScript/dclFMXfsDB21.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfsDB21.res differ diff --git a/FastScript/dclFMXfsDB22.dpk b/FastScript/dclFMXfsDB22.dpk new file mode 100644 index 0000000..d70808f --- /dev/null +++ b/FastScript/dclFMXfsDB22.dpk @@ -0,0 +1,45 @@ +// Package file for Delphi XE8 + +package dclFMXfsDB22; + +{$R *.res} +{$R *.otares} +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs22, + FMXfsDB22; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB22.otares b/FastScript/dclFMXfsDB22.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfsDB22.otares differ diff --git a/FastScript/dclFMXfsDB22.res b/FastScript/dclFMXfsDB22.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfsDB22.res differ diff --git a/FastScript/dclFMXfsDB23.dpk b/FastScript/dclFMXfsDB23.dpk new file mode 100644 index 0000000..bd11a08 --- /dev/null +++ b/FastScript/dclFMXfsDB23.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsDB23; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs23, + FMXfsDB23; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB23.otares b/FastScript/dclFMXfsDB23.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfsDB23.otares differ diff --git a/FastScript/dclFMXfsDB23.res b/FastScript/dclFMXfsDB23.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfsDB23.res differ diff --git a/FastScript/dclFMXfsDB24.dpk b/FastScript/dclFMXfsDB24.dpk new file mode 100644 index 0000000..21680c2 --- /dev/null +++ b/FastScript/dclFMXfsDB24.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsDB24; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs24, + FMXfsDB24; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB24.otares b/FastScript/dclFMXfsDB24.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfsDB24.otares differ diff --git a/FastScript/dclFMXfsDB24.res b/FastScript/dclFMXfsDB24.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfsDB24.res differ diff --git a/FastScript/dclFMXfsDB25.dpk b/FastScript/dclFMXfsDB25.dpk new file mode 100644 index 0000000..3f6b02e --- /dev/null +++ b/FastScript/dclFMXfsDB25.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsDB25; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs25, + FMXfsDB25; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB25.otares b/FastScript/dclFMXfsDB25.otares new file mode 100644 index 0000000..7435995 Binary files /dev/null and b/FastScript/dclFMXfsDB25.otares differ diff --git a/FastScript/dclFMXfsDB25.res b/FastScript/dclFMXfsDB25.res new file mode 100644 index 0000000..a64cea3 Binary files /dev/null and b/FastScript/dclFMXfsDB25.res differ diff --git a/FastScript/dclFMXfsDB26.dpk b/FastScript/dclFMXfsDB26.dpk new file mode 100644 index 0000000..5d4661f --- /dev/null +++ b/FastScript/dclFMXfsDB26.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsDB26; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs26, + FMXfsDB26; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB27.dpk b/FastScript/dclFMXfsDB27.dpk new file mode 100644 index 0000000..c8983d1 --- /dev/null +++ b/FastScript/dclFMXfsDB27.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsDB27; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs27, + FMXfsDB27; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB28.dpk b/FastScript/dclFMXfsDB28.dpk new file mode 100644 index 0000000..a4a0d10 --- /dev/null +++ b/FastScript/dclFMXfsDB28.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 11 Seattle + +package dclFMXfsDB28; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs28, + FMXfsDB28; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsDB29.dpk b/FastScript/dclFMXfsDB29.dpk new file mode 100644 index 0000000..57a4391 --- /dev/null +++ b/FastScript/dclFMXfsDB29.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 12 + +package dclFMXfsDB29; + +{$R 'fs_ireg.dcr'} +{$IFDEF IMPLICITBUILDING This IFDEF should not be used by users} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION OFF} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES ON} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DEFINE DEBUG} +{$ENDIF IMPLICITBUILDING} +{$DESCRIPTION 'FastScript 1.9 FMX DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs29, + FMXfsDB29; + +contains + FMXfs_idbreg in 'FMXfs_idbreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX16.dpk b/FastScript/dclFMXfsIBX16.dpk new file mode 100644 index 0000000..024903b --- /dev/null +++ b/FastScript/dclFMXfsIBX16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclFMXfsIBX16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs16, + FMXfsIBX16; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX16.res b/FastScript/dclFMXfsIBX16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsIBX16.res differ diff --git a/FastScript/dclFMXfsIBX17.dpk b/FastScript/dclFMXfsIBX17.dpk new file mode 100644 index 0000000..595bf4e --- /dev/null +++ b/FastScript/dclFMXfsIBX17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclFMXfsIBX17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs17, + FMXfsIBX17; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX17.res b/FastScript/dclFMXfsIBX17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsIBX17.res differ diff --git a/FastScript/dclFMXfsIBX18.dpk b/FastScript/dclFMXfsIBX18.dpk new file mode 100644 index 0000000..7c1cb8d --- /dev/null +++ b/FastScript/dclFMXfsIBX18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package dclFMXfsIBX18; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs18, + FMXfsIBX18; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX18.res b/FastScript/dclFMXfsIBX18.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsIBX18.res differ diff --git a/FastScript/dclFMXfsIBX19.dpk b/FastScript/dclFMXfsIBX19.dpk new file mode 100644 index 0000000..c77c2f4 --- /dev/null +++ b/FastScript/dclFMXfsIBX19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package dclFMXfsIBX19; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs19, + FMXfsIBX19; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX19.res b/FastScript/dclFMXfsIBX19.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsIBX19.res differ diff --git a/FastScript/dclFMXfsIBX20.dpk b/FastScript/dclFMXfsIBX20.dpk new file mode 100644 index 0000000..ca64df5 --- /dev/null +++ b/FastScript/dclFMXfsIBX20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package dclFMXfsIBX20; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs20, + FMXfsIBX20; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX20.res b/FastScript/dclFMXfsIBX20.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsIBX20.res differ diff --git a/FastScript/dclFMXfsIBX21.dpk b/FastScript/dclFMXfsIBX21.dpk new file mode 100644 index 0000000..26d360a --- /dev/null +++ b/FastScript/dclFMXfsIBX21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package dclFMXfsIBX21; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs21, + FMXfsIBX21; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX21.res b/FastScript/dclFMXfsIBX21.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsIBX21.res differ diff --git a/FastScript/dclFMXfsIBX22.dpk b/FastScript/dclFMXfsIBX22.dpk new file mode 100644 index 0000000..854fc1a --- /dev/null +++ b/FastScript/dclFMXfsIBX22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package dclFMXfsIBX22; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs22, + FMXfsIBX22; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX22.res b/FastScript/dclFMXfsIBX22.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsIBX22.res differ diff --git a/FastScript/dclFMXfsIBX23.dpk b/FastScript/dclFMXfsIBX23.dpk new file mode 100644 index 0000000..e4690f5 --- /dev/null +++ b/FastScript/dclFMXfsIBX23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsIBX23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs23, + FMXfsIBX23; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX23.res b/FastScript/dclFMXfsIBX23.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsIBX23.res differ diff --git a/FastScript/dclFMXfsIBX24.dpk b/FastScript/dclFMXfsIBX24.dpk new file mode 100644 index 0000000..7f67057 --- /dev/null +++ b/FastScript/dclFMXfsIBX24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsIBX24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs24, + FMXfsIBX24; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX24.res b/FastScript/dclFMXfsIBX24.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsIBX24.res differ diff --git a/FastScript/dclFMXfsIBX25.dpk b/FastScript/dclFMXfsIBX25.dpk new file mode 100644 index 0000000..760b971 --- /dev/null +++ b/FastScript/dclFMXfsIBX25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsIBX25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs25, + FMXfsIBX25; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX25.res b/FastScript/dclFMXfsIBX25.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsIBX25.res differ diff --git a/FastScript/dclFMXfsIBX26.dpk b/FastScript/dclFMXfsIBX26.dpk new file mode 100644 index 0000000..5787898 --- /dev/null +++ b/FastScript/dclFMXfsIBX26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsIBX26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs26, + FMXfsIBX26; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX27.dpk b/FastScript/dclFMXfsIBX27.dpk new file mode 100644 index 0000000..dbfac84 --- /dev/null +++ b/FastScript/dclFMXfsIBX27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsIBX27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs27, + FMXfsIBX27; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX28.dpk b/FastScript/dclFMXfsIBX28.dpk new file mode 100644 index 0000000..cb7e8e5 --- /dev/null +++ b/FastScript/dclFMXfsIBX28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package dclFMXfsIBX28; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs28, + FMXfsIBX28; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsIBX29.dpk b/FastScript/dclFMXfsIBX29.dpk new file mode 100644 index 0000000..874e96e --- /dev/null +++ b/FastScript/dclFMXfsIBX29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package dclFMXfsIBX29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs29, + FMXfsIBX29; + +contains + FMXfs_iibxreg in 'FMXfs_iibxreg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee16.dpk b/FastScript/dclFMXfsTee16.dpk new file mode 100644 index 0000000..3ff825f --- /dev/null +++ b/FastScript/dclFMXfsTee16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclFMXfsTee16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs16, + FMXfsTee16; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee16.res b/FastScript/dclFMXfsTee16.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsTee16.res differ diff --git a/FastScript/dclFMXfsTee17.dpk b/FastScript/dclFMXfsTee17.dpk new file mode 100644 index 0000000..6725bc8 --- /dev/null +++ b/FastScript/dclFMXfsTee17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclFMXfsTee17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs17, + FMXfsTee17; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee17.res b/FastScript/dclFMXfsTee17.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsTee17.res differ diff --git a/FastScript/dclFMXfsTee18.dpk b/FastScript/dclFMXfsTee18.dpk new file mode 100644 index 0000000..86bd659 --- /dev/null +++ b/FastScript/dclFMXfsTee18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package dclFMXfsTee18; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs18, + FMXfsTee18; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee18.res b/FastScript/dclFMXfsTee18.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsTee18.res differ diff --git a/FastScript/dclFMXfsTee19.dpk b/FastScript/dclFMXfsTee19.dpk new file mode 100644 index 0000000..2c49235 --- /dev/null +++ b/FastScript/dclFMXfsTee19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package dclFMXfsTee19; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs19, + FMXfsTee19; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee19.res b/FastScript/dclFMXfsTee19.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsTee19.res differ diff --git a/FastScript/dclFMXfsTee20.dpk b/FastScript/dclFMXfsTee20.dpk new file mode 100644 index 0000000..5a8268b --- /dev/null +++ b/FastScript/dclFMXfsTee20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package dclFMXfsTee20; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs20, + FMXfsTee20; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee20.res b/FastScript/dclFMXfsTee20.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsTee20.res differ diff --git a/FastScript/dclFMXfsTee21.dpk b/FastScript/dclFMXfsTee21.dpk new file mode 100644 index 0000000..b4f72e7 --- /dev/null +++ b/FastScript/dclFMXfsTee21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package dclFMXfsTee21; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs21, + FMXfsTee21; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee21.res b/FastScript/dclFMXfsTee21.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsTee21.res differ diff --git a/FastScript/dclFMXfsTee22.dpk b/FastScript/dclFMXfsTee22.dpk new file mode 100644 index 0000000..33b50de --- /dev/null +++ b/FastScript/dclFMXfsTee22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package dclFMXfsTee22; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs22, + FMXfsTee22; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee22.res b/FastScript/dclFMXfsTee22.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsTee22.res differ diff --git a/FastScript/dclFMXfsTee23.dpk b/FastScript/dclFMXfsTee23.dpk new file mode 100644 index 0000000..81cb335 --- /dev/null +++ b/FastScript/dclFMXfsTee23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsTee23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs23, + FMXfsTee23; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee23.res b/FastScript/dclFMXfsTee23.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsTee23.res differ diff --git a/FastScript/dclFMXfsTee24.dpk b/FastScript/dclFMXfsTee24.dpk new file mode 100644 index 0000000..965474b --- /dev/null +++ b/FastScript/dclFMXfsTee24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsTee24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs24, + FMXfsTee24; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee24.res b/FastScript/dclFMXfsTee24.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsTee24.res differ diff --git a/FastScript/dclFMXfsTee25.dpk b/FastScript/dclFMXfsTee25.dpk new file mode 100644 index 0000000..561f9ff --- /dev/null +++ b/FastScript/dclFMXfsTee25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsTee25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs25, + FMXfsTee25; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee25.res b/FastScript/dclFMXfsTee25.res new file mode 100644 index 0000000..42917f5 Binary files /dev/null and b/FastScript/dclFMXfsTee25.res differ diff --git a/FastScript/dclFMXfsTee26.dpk b/FastScript/dclFMXfsTee26.dpk new file mode 100644 index 0000000..a372cd8 --- /dev/null +++ b/FastScript/dclFMXfsTee26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsTee26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs26, + FMXfsTee26; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee27.dpk b/FastScript/dclFMXfsTee27.dpk new file mode 100644 index 0000000..943b74e --- /dev/null +++ b/FastScript/dclFMXfsTee27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclFMXfsTee27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs27, + FMXfsTee27; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee28.dpk b/FastScript/dclFMXfsTee28.dpk new file mode 100644 index 0000000..9e28841 --- /dev/null +++ b/FastScript/dclFMXfsTee28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package dclFMXfsTee28; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs28, + FMXfsTee28; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclFMXfsTee29.dpk b/FastScript/dclFMXfsTee29.dpk new file mode 100644 index 0000000..ac47668 --- /dev/null +++ b/FastScript/dclFMXfsTee29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package dclFMXfsTee29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FMX Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + FMX, + DESIGNIDE, + FMXfs29, + FMXfsTee29; + +contains + FMXfs_iteereg in 'FMXfs_iteereg.pas'; + +end. diff --git a/FastScript/dclfs10.dpk b/FastScript/dclfs10.dpk new file mode 100644 index 0000000..bc13c13 --- /dev/null +++ b/FastScript/dclfs10.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 2006 + +package dclfs10; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs10; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs11.dpk b/FastScript/dclfs11.dpk new file mode 100644 index 0000000..448c2a5 --- /dev/null +++ b/FastScript/dclfs11.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 2007 + +package dclfs11; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs11; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs12.dpk b/FastScript/dclfs12.dpk new file mode 100644 index 0000000..ee9aed6 --- /dev/null +++ b/FastScript/dclfs12.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 2009 + +package dclfs12; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs12; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs14.dpk b/FastScript/dclfs14.dpk new file mode 100644 index 0000000..334e131 --- /dev/null +++ b/FastScript/dclfs14.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 2010 + +package dclfs14; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs14; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs15.dpk b/FastScript/dclfs15.dpk new file mode 100644 index 0000000..45e4796 --- /dev/null +++ b/FastScript/dclfs15.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE + +package dclfs15; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs15; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs16.dpk b/FastScript/dclfs16.dpk new file mode 100644 index 0000000..46e1c5a --- /dev/null +++ b/FastScript/dclfs16.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE2 + +package dclfs16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs16; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs17.dpk b/FastScript/dclfs17.dpk new file mode 100644 index 0000000..67283a4 --- /dev/null +++ b/FastScript/dclfs17.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE3 + +package dclfs17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs17; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs18.dpk b/FastScript/dclfs18.dpk new file mode 100644 index 0000000..3c1de49 --- /dev/null +++ b/FastScript/dclfs18.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE4 + +package dclfs18; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs18; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs19.dpk b/FastScript/dclfs19.dpk new file mode 100644 index 0000000..a249539 --- /dev/null +++ b/FastScript/dclfs19.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE5 + +package dclfs19; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs19; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs20.dpk b/FastScript/dclfs20.dpk new file mode 100644 index 0000000..9236239 --- /dev/null +++ b/FastScript/dclfs20.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE6 + +package dclfs20; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs20; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs21.dpk b/FastScript/dclfs21.dpk new file mode 100644 index 0000000..e6439f7 --- /dev/null +++ b/FastScript/dclfs21.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE7 + +package dclfs21; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs21; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs22.dpk b/FastScript/dclfs22.dpk new file mode 100644 index 0000000..f4ed026 --- /dev/null +++ b/FastScript/dclfs22.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE8 + +package dclfs22; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs22; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs23.dpk b/FastScript/dclfs23.dpk new file mode 100644 index 0000000..3a47e28 --- /dev/null +++ b/FastScript/dclfs23.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclfs23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs23; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs24.dpk b/FastScript/dclfs24.dpk new file mode 100644 index 0000000..e2e042c --- /dev/null +++ b/FastScript/dclfs24.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclfs24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs24; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs25.dpk b/FastScript/dclfs25.dpk new file mode 100644 index 0000000..bbfd2a1 --- /dev/null +++ b/FastScript/dclfs25.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclfs25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs25; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs26.dpk b/FastScript/dclfs26.dpk new file mode 100644 index 0000000..e7820a0 --- /dev/null +++ b/FastScript/dclfs26.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclfs26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs26; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs27.dpk b/FastScript/dclfs27.dpk new file mode 100644 index 0000000..a250656 --- /dev/null +++ b/FastScript/dclfs27.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package dclfs27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs27; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs28.dpk b/FastScript/dclfs28.dpk new file mode 100644 index 0000000..cefcf80 --- /dev/null +++ b/FastScript/dclfs28.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 11 Seattle + +package dclfs28; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs28; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs29.dpk b/FastScript/dclfs29.dpk new file mode 100644 index 0000000..5ddacda --- /dev/null +++ b/FastScript/dclfs29.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 12 + +package dclfs29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs29; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs4.dpk b/FastScript/dclfs4.dpk new file mode 100644 index 0000000..297a60e --- /dev/null +++ b/FastScript/dclfs4.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 4 + +package dclfs4; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL40, + fs4; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs5.dpk b/FastScript/dclfs5.dpk new file mode 100644 index 0000000..8384db9 --- /dev/null +++ b/FastScript/dclfs5.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 5 + +package dclfs5; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL50, + fs5; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs6.dpk b/FastScript/dclfs6.dpk new file mode 100644 index 0000000..a45755b --- /dev/null +++ b/FastScript/dclfs6.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 6 + +package dclfs6; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs6; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs7.dpk b/FastScript/dclfs7.dpk new file mode 100644 index 0000000..bdace06 --- /dev/null +++ b/FastScript/dclfs7.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 7 + +package dclfs7; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs7; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfs9.dpk b/FastScript/dclfs9.dpk new file mode 100644 index 0000000..50f7a31 --- /dev/null +++ b/FastScript/dclfs9.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 2005 + +package dclfs9; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs9; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfsADO10.dpk b/FastScript/dclfsADO10.dpk new file mode 100644 index 0000000..ce476af --- /dev/null +++ b/FastScript/dclfsADO10.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2006 + +package dclfsADO10; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs10, + fsADO10; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO11.dpk b/FastScript/dclfsADO11.dpk new file mode 100644 index 0000000..3e4f6fa --- /dev/null +++ b/FastScript/dclfsADO11.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2007 + +package dclfsADO11; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs11, + fsADO11; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO12.dpk b/FastScript/dclfsADO12.dpk new file mode 100644 index 0000000..003e928 --- /dev/null +++ b/FastScript/dclfsADO12.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2009 + +package dclfsADO12; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs12, + fsADO12; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO14.dpk b/FastScript/dclfsADO14.dpk new file mode 100644 index 0000000..384613f --- /dev/null +++ b/FastScript/dclfsADO14.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 2010 + +package dclfsADO14; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs14, + fsADO14; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO15.dpk b/FastScript/dclfsADO15.dpk new file mode 100644 index 0000000..67d77ce --- /dev/null +++ b/FastScript/dclfsADO15.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE + +package dclfsADO15; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs15, + fsADO15; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO16.dpk b/FastScript/dclfsADO16.dpk new file mode 100644 index 0000000..a088873 --- /dev/null +++ b/FastScript/dclfsADO16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclfsADO16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs16, + fsADO16; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO17.dpk b/FastScript/dclfsADO17.dpk new file mode 100644 index 0000000..83cf941 --- /dev/null +++ b/FastScript/dclfsADO17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclfsADO17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs17, + fsADO17; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO18.dpk b/FastScript/dclfsADO18.dpk new file mode 100644 index 0000000..db09bc0 --- /dev/null +++ b/FastScript/dclfsADO18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package dclfsADO18; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs18, + fsADO18; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO19.dpk b/FastScript/dclfsADO19.dpk new file mode 100644 index 0000000..87926c9 --- /dev/null +++ b/FastScript/dclfsADO19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package dclfsADO19; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs19, + fsADO19; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO20.dpk b/FastScript/dclfsADO20.dpk new file mode 100644 index 0000000..4b16e4d --- /dev/null +++ b/FastScript/dclfsADO20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package dclfsADO20; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs20, + fsADO20; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO21.dpk b/FastScript/dclfsADO21.dpk new file mode 100644 index 0000000..b245111 --- /dev/null +++ b/FastScript/dclfsADO21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package dclfsADO21; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs21, + fsADO21; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO22.dpk b/FastScript/dclfsADO22.dpk new file mode 100644 index 0000000..34c13f0 --- /dev/null +++ b/FastScript/dclfsADO22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package dclfsADO22; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs22, + fsADO22; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO23.dpk b/FastScript/dclfsADO23.dpk new file mode 100644 index 0000000..bde9bab --- /dev/null +++ b/FastScript/dclfsADO23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsADO23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs23, + fsADO23; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO24.dpk b/FastScript/dclfsADO24.dpk new file mode 100644 index 0000000..4646ef9 --- /dev/null +++ b/FastScript/dclfsADO24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsADO24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs24, + fsADO24; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO25.dpk b/FastScript/dclfsADO25.dpk new file mode 100644 index 0000000..a44ba5e --- /dev/null +++ b/FastScript/dclfsADO25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsADO25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs25, + fsADO25; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO26.dpk b/FastScript/dclfsADO26.dpk new file mode 100644 index 0000000..616db18 --- /dev/null +++ b/FastScript/dclfsADO26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsADO26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs26, + fsADO26; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO27.dpk b/FastScript/dclfsADO27.dpk new file mode 100644 index 0000000..c892b43 --- /dev/null +++ b/FastScript/dclfsADO27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsADO27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs27, + fsADO27; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO28.dpk b/FastScript/dclfsADO28.dpk new file mode 100644 index 0000000..597b7a5 --- /dev/null +++ b/FastScript/dclfsADO28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package dclfsADO28; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs28, + fsADO28; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO29.dpk b/FastScript/dclfsADO29.dpk new file mode 100644 index 0000000..f0e74bc --- /dev/null +++ b/FastScript/dclfsADO29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package dclfsADO29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs29, + fsADO29; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO5.dpk b/FastScript/dclfsADO5.dpk new file mode 100644 index 0000000..bf65218 --- /dev/null +++ b/FastScript/dclfsADO5.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 5 + +package dclfsADO5; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL50, + fs5, + fsADO5; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO6.dpk b/FastScript/dclfsADO6.dpk new file mode 100644 index 0000000..04c779b --- /dev/null +++ b/FastScript/dclfsADO6.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 6 + +package dclfsADO6; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs6, + fsADO6; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO7.dpk b/FastScript/dclfsADO7.dpk new file mode 100644 index 0000000..261ae1b --- /dev/null +++ b/FastScript/dclfsADO7.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 7 + +package dclfsADO7; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs7, + fsADO7; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsADO9.dpk b/FastScript/dclfsADO9.dpk new file mode 100644 index 0000000..6df9798 --- /dev/null +++ b/FastScript/dclfsADO9.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2005 + +package dclfsADO9; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 ADO Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs9, + fsADO9; + +contains + fs_iadoreg in 'fs_iadoreg.pas'; + +end. diff --git a/FastScript/dclfsBDE10.dpk b/FastScript/dclfsBDE10.dpk new file mode 100644 index 0000000..9ccd14c --- /dev/null +++ b/FastScript/dclfsBDE10.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2006 + +package dclfsBDE10; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs10, + fsBDE10; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE11.dpk b/FastScript/dclfsBDE11.dpk new file mode 100644 index 0000000..3c365fa --- /dev/null +++ b/FastScript/dclfsBDE11.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2007 + +package dclfsBDE11; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs11, + fsBDE11; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE12.dpk b/FastScript/dclfsBDE12.dpk new file mode 100644 index 0000000..076fdc7 --- /dev/null +++ b/FastScript/dclfsBDE12.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2009 + +package dclfsBDE12; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs12, + fsBDE12; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE14.dpk b/FastScript/dclfsBDE14.dpk new file mode 100644 index 0000000..28276a6 --- /dev/null +++ b/FastScript/dclfsBDE14.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 2010 + +package dclfsBDE14; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs14, + fsBDE14; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE15.dpk b/FastScript/dclfsBDE15.dpk new file mode 100644 index 0000000..7ba0b54 --- /dev/null +++ b/FastScript/dclfsBDE15.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE + +package dclfsBDE15; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs15, + fsBDE15; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE16.dpk b/FastScript/dclfsBDE16.dpk new file mode 100644 index 0000000..720cd4e --- /dev/null +++ b/FastScript/dclfsBDE16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclfsBDE16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs16, + fsBDE16; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE17.dpk b/FastScript/dclfsBDE17.dpk new file mode 100644 index 0000000..d6166fc --- /dev/null +++ b/FastScript/dclfsBDE17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclfsBDE17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs17, + fsBDE17; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE18.dpk b/FastScript/dclfsBDE18.dpk new file mode 100644 index 0000000..b505311 --- /dev/null +++ b/FastScript/dclfsBDE18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package dclfsBDE18; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs18, + fsBDE18; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE19.dpk b/FastScript/dclfsBDE19.dpk new file mode 100644 index 0000000..2948eed --- /dev/null +++ b/FastScript/dclfsBDE19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package dclfsBDE19; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs19, + fsBDE19; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE20.dpk b/FastScript/dclfsBDE20.dpk new file mode 100644 index 0000000..cfb519b --- /dev/null +++ b/FastScript/dclfsBDE20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package dclfsBDE20; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs20, + fsBDE20; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE21.dpk b/FastScript/dclfsBDE21.dpk new file mode 100644 index 0000000..935d85c --- /dev/null +++ b/FastScript/dclfsBDE21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package dclfsBDE21; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs21, + fsBDE21; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE22.dpk b/FastScript/dclfsBDE22.dpk new file mode 100644 index 0000000..c0b9085 --- /dev/null +++ b/FastScript/dclfsBDE22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package dclfsBDE22; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs22, + fsBDE22; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE23.dpk b/FastScript/dclfsBDE23.dpk new file mode 100644 index 0000000..f8058b4 --- /dev/null +++ b/FastScript/dclfsBDE23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsBDE23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs23, + fsBDE23; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE24.dpk b/FastScript/dclfsBDE24.dpk new file mode 100644 index 0000000..fcb4ff1 --- /dev/null +++ b/FastScript/dclfsBDE24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsBDE24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs24, + fsBDE24; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE25.dpk b/FastScript/dclfsBDE25.dpk new file mode 100644 index 0000000..673e27d --- /dev/null +++ b/FastScript/dclfsBDE25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsBDE25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs25, + fsBDE25; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE26.dpk b/FastScript/dclfsBDE26.dpk new file mode 100644 index 0000000..77e0d61 --- /dev/null +++ b/FastScript/dclfsBDE26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsBDE26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs26, + fsBDE26; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE27.dpk b/FastScript/dclfsBDE27.dpk new file mode 100644 index 0000000..565753b --- /dev/null +++ b/FastScript/dclfsBDE27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsBDE27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs27, + fsBDE27; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE28.dpk b/FastScript/dclfsBDE28.dpk new file mode 100644 index 0000000..33b4e47 --- /dev/null +++ b/FastScript/dclfsBDE28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package dclfsBDE28; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs28, + fsBDE28; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE29.dpk b/FastScript/dclfsBDE29.dpk new file mode 100644 index 0000000..892ac89 --- /dev/null +++ b/FastScript/dclfsBDE29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package dclfsBDE29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs29, + fsBDE29; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE4.dpk b/FastScript/dclfsBDE4.dpk new file mode 100644 index 0000000..9062111 --- /dev/null +++ b/FastScript/dclfsBDE4.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 4 + +package dclfsBDE4; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL40, + fs4, + fsBDE4; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE5.dpk b/FastScript/dclfsBDE5.dpk new file mode 100644 index 0000000..7c6c477 --- /dev/null +++ b/FastScript/dclfsBDE5.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 5 + +package dclfsBDE5; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL50, + fs5, + fsBDE5; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE6.dpk b/FastScript/dclfsBDE6.dpk new file mode 100644 index 0000000..ba99903 --- /dev/null +++ b/FastScript/dclfsBDE6.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 6 + +package dclfsBDE6; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs6, + fsBDE6; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE7.dpk b/FastScript/dclfsBDE7.dpk new file mode 100644 index 0000000..b973078 --- /dev/null +++ b/FastScript/dclfsBDE7.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 7 + +package dclfsBDE7; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs7, + fsBDE7; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsBDE9.dpk b/FastScript/dclfsBDE9.dpk new file mode 100644 index 0000000..c9ac0c2 --- /dev/null +++ b/FastScript/dclfsBDE9.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2005 + +package dclfsBDE9; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 BDE Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs9, + fsBDE9; + +contains + fs_ibdereg in 'fs_ibdereg.pas'; + +end. diff --git a/FastScript/dclfsDB10.dpk b/FastScript/dclfsDB10.dpk new file mode 100644 index 0000000..7e728f1 --- /dev/null +++ b/FastScript/dclfsDB10.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2006 + +package dclfsDB10; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs10, + fsDB10; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB11.dpk b/FastScript/dclfsDB11.dpk new file mode 100644 index 0000000..cf81001 --- /dev/null +++ b/FastScript/dclfsDB11.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2007 + +package dclfsDB11; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs11, + fsDB11; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB12.dpk b/FastScript/dclfsDB12.dpk new file mode 100644 index 0000000..a7707e1 --- /dev/null +++ b/FastScript/dclfsDB12.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2009 + +package dclfsDB12; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs12, + fsDB12; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB14.dpk b/FastScript/dclfsDB14.dpk new file mode 100644 index 0000000..7083e22 --- /dev/null +++ b/FastScript/dclfsDB14.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 2010 + +package dclfsDB14; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs14, + fsDB14; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB15.dpk b/FastScript/dclfsDB15.dpk new file mode 100644 index 0000000..b1a787a --- /dev/null +++ b/FastScript/dclfsDB15.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE + +package dclfsDB15; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs15, + fsDB15; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB16.dpk b/FastScript/dclfsDB16.dpk new file mode 100644 index 0000000..491a0f0 --- /dev/null +++ b/FastScript/dclfsDB16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclfsDB16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs16, + fsDB16; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB17.dpk b/FastScript/dclfsDB17.dpk new file mode 100644 index 0000000..db3ecfd --- /dev/null +++ b/FastScript/dclfsDB17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclfsDB17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs17, + fsDB17; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB18.dpk b/FastScript/dclfsDB18.dpk new file mode 100644 index 0000000..053ade5 --- /dev/null +++ b/FastScript/dclfsDB18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package dclfsDB18; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs18, + fsDB18; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB19.dpk b/FastScript/dclfsDB19.dpk new file mode 100644 index 0000000..a137c99 --- /dev/null +++ b/FastScript/dclfsDB19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package dclfsDB19; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs19, + fsDB19; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB20.dpk b/FastScript/dclfsDB20.dpk new file mode 100644 index 0000000..e70175d --- /dev/null +++ b/FastScript/dclfsDB20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package dclfsDB20; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs20, + fsDB20; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB21.dpk b/FastScript/dclfsDB21.dpk new file mode 100644 index 0000000..da93899 --- /dev/null +++ b/FastScript/dclfsDB21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package dclfsDB21; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs21, + fsDB21; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB22.dpk b/FastScript/dclfsDB22.dpk new file mode 100644 index 0000000..2546074 --- /dev/null +++ b/FastScript/dclfsDB22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package dclfsDB22; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs22, + fsDB22; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB23.dpk b/FastScript/dclfsDB23.dpk new file mode 100644 index 0000000..2eb7cc0 --- /dev/null +++ b/FastScript/dclfsDB23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsDB23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs23, + fsDB23; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB24.dpk b/FastScript/dclfsDB24.dpk new file mode 100644 index 0000000..cd44f2a --- /dev/null +++ b/FastScript/dclfsDB24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsDB24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs24, + fsDB24; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB25.dpk b/FastScript/dclfsDB25.dpk new file mode 100644 index 0000000..89732aa --- /dev/null +++ b/FastScript/dclfsDB25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsDB25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs25, + fsDB25; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB26.dpk b/FastScript/dclfsDB26.dpk new file mode 100644 index 0000000..8ea689a --- /dev/null +++ b/FastScript/dclfsDB26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsDB26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs26, + fsDB26; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB27.dpk b/FastScript/dclfsDB27.dpk new file mode 100644 index 0000000..48e119b --- /dev/null +++ b/FastScript/dclfsDB27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsDB27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs27, + fsDB27; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB28.dpk b/FastScript/dclfsDB28.dpk new file mode 100644 index 0000000..ed646e9 --- /dev/null +++ b/FastScript/dclfsDB28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package dclfsDB28; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs28, + fsDB28; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB29.dpk b/FastScript/dclfsDB29.dpk new file mode 100644 index 0000000..da8f59f --- /dev/null +++ b/FastScript/dclfsDB29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package dclfsDB29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs29, + fsDB29; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB4.dpk b/FastScript/dclfsDB4.dpk new file mode 100644 index 0000000..08f858e --- /dev/null +++ b/FastScript/dclfsDB4.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 4 + +package dclfsDB4; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL40, + fs4, + fsDB4; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB5.dpk b/FastScript/dclfsDB5.dpk new file mode 100644 index 0000000..9f82559 --- /dev/null +++ b/FastScript/dclfsDB5.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 5 + +package dclfsDB5; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL50, + fs5, + fsDB5; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB6.dpk b/FastScript/dclfsDB6.dpk new file mode 100644 index 0000000..15cc0b3 --- /dev/null +++ b/FastScript/dclfsDB6.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 6 + +package dclfsDB6; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs6, + fsDB6; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB7.dpk b/FastScript/dclfsDB7.dpk new file mode 100644 index 0000000..5e535f3 --- /dev/null +++ b/FastScript/dclfsDB7.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 7 + +package dclfsDB7; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs7, + fsDB7; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsDB9.dpk b/FastScript/dclfsDB9.dpk new file mode 100644 index 0000000..607b373 --- /dev/null +++ b/FastScript/dclfsDB9.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2005 + +package dclfsDB9; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 DB Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs9, + fsDB9; + +contains + fs_idbreg in 'fs_idbreg.pas'; + +end. diff --git a/FastScript/dclfsFD15.dpk b/FastScript/dclfsFD15.dpk new file mode 100644 index 0000000..39e761c --- /dev/null +++ b/FastScript/dclfsFD15.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE + +package dclfsFD15; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs15, + fsFD15; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD16.dpk b/FastScript/dclfsFD16.dpk new file mode 100644 index 0000000..dd067a1 --- /dev/null +++ b/FastScript/dclfsFD16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclfsFD16; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs16, + fsFD16; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD17.dpk b/FastScript/dclfsFD17.dpk new file mode 100644 index 0000000..dfc50b0 --- /dev/null +++ b/FastScript/dclfsFD17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclfsFD17; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs17, + fsFD17; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD18.dpk b/FastScript/dclfsFD18.dpk new file mode 100644 index 0000000..37c7041 --- /dev/null +++ b/FastScript/dclfsFD18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package dclfsFD18; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs18, + fsFD18; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD19.dpk b/FastScript/dclfsFD19.dpk new file mode 100644 index 0000000..1a01271 --- /dev/null +++ b/FastScript/dclfsFD19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package dclfsFD19; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs19, + fsFD19; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD20.dpk b/FastScript/dclfsFD20.dpk new file mode 100644 index 0000000..924acc3 --- /dev/null +++ b/FastScript/dclfsFD20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package dclfsFD20; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs20, + fsFD20; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD21.dpk b/FastScript/dclfsFD21.dpk new file mode 100644 index 0000000..29a4a33 --- /dev/null +++ b/FastScript/dclfsFD21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package dclfsFD21; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs21, + fsFD21; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD22.dpk b/FastScript/dclfsFD22.dpk new file mode 100644 index 0000000..6510980 --- /dev/null +++ b/FastScript/dclfsFD22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package dclfsFD22; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs22, + fsFD22; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD23.dpk b/FastScript/dclfsFD23.dpk new file mode 100644 index 0000000..a595230 --- /dev/null +++ b/FastScript/dclfsFD23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsFD23; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs23, + fsFD23; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD24.dpk b/FastScript/dclfsFD24.dpk new file mode 100644 index 0000000..7c95ac6 --- /dev/null +++ b/FastScript/dclfsFD24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10.1 Berlin + +package dclfsFD24; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs24, + fsFD24; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD25.dpk b/FastScript/dclfsFD25.dpk new file mode 100644 index 0000000..51b4bd5 --- /dev/null +++ b/FastScript/dclfsFD25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10.2 Tokyo + +package dclfsFD25; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs25, + fsFD25; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD26.dpk b/FastScript/dclfsFD26.dpk new file mode 100644 index 0000000..da7fdb2 --- /dev/null +++ b/FastScript/dclfsFD26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10.3 Rio + +package dclfsFD26; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs26, + fsFD26; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD27.dpk b/FastScript/dclfsFD27.dpk new file mode 100644 index 0000000..d91e582 --- /dev/null +++ b/FastScript/dclfsFD27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10.3 Rio + +package dclfsFD27; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs27, + fsFD27; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD28.dpk b/FastScript/dclfsFD28.dpk new file mode 100644 index 0000000..82f43d0 --- /dev/null +++ b/FastScript/dclfsFD28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11.3 Rio + +package dclfsFD28; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs28, + fsFD28; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsFD29.dpk b/FastScript/dclfsFD29.dpk new file mode 100644 index 0000000..ab5b478 --- /dev/null +++ b/FastScript/dclfsFD29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package dclfsFD29; + +{$R 'fs_ifdreg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 FireDAC Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs29, + fsFD29; + +contains + fs_ifdreg in 'fs_ifdreg.pas'; + +end. diff --git a/FastScript/dclfsIBX10.dpk b/FastScript/dclfsIBX10.dpk new file mode 100644 index 0000000..31f546b --- /dev/null +++ b/FastScript/dclfsIBX10.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2006 + +package dclfsIBX10; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs10, + fsIBX10; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX11.dpk b/FastScript/dclfsIBX11.dpk new file mode 100644 index 0000000..994c232 --- /dev/null +++ b/FastScript/dclfsIBX11.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2007 + +package dclfsIBX11; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs11, + fsIBX11; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX12.dpk b/FastScript/dclfsIBX12.dpk new file mode 100644 index 0000000..f4137a8 --- /dev/null +++ b/FastScript/dclfsIBX12.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2009 + +package dclfsIBX12; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs12, + fsIBX12; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX14.dpk b/FastScript/dclfsIBX14.dpk new file mode 100644 index 0000000..994a9fb --- /dev/null +++ b/FastScript/dclfsIBX14.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 2010 + +package dclfsIBX14; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs14, + fsIBX14; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX15.dpk b/FastScript/dclfsIBX15.dpk new file mode 100644 index 0000000..46f9e7a --- /dev/null +++ b/FastScript/dclfsIBX15.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE + +package dclfsIBX15; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs15, + fsIBX15; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX16.dpk b/FastScript/dclfsIBX16.dpk new file mode 100644 index 0000000..4df76c2 --- /dev/null +++ b/FastScript/dclfsIBX16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclfsIBX16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs16, + fsIBX16; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX17.dpk b/FastScript/dclfsIBX17.dpk new file mode 100644 index 0000000..52dbea0 --- /dev/null +++ b/FastScript/dclfsIBX17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclfsIBX17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs17, + fsIBX17; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX18.dpk b/FastScript/dclfsIBX18.dpk new file mode 100644 index 0000000..2025bb1 --- /dev/null +++ b/FastScript/dclfsIBX18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package dclfsIBX18; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs18, + fsIBX18; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX19.dpk b/FastScript/dclfsIBX19.dpk new file mode 100644 index 0000000..c85697f --- /dev/null +++ b/FastScript/dclfsIBX19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package dclfsIBX19; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs19, + fsIBX19; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX20.dpk b/FastScript/dclfsIBX20.dpk new file mode 100644 index 0000000..afbecdf --- /dev/null +++ b/FastScript/dclfsIBX20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package dclfsIBX20; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs20, + fsIBX20; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX21.dpk b/FastScript/dclfsIBX21.dpk new file mode 100644 index 0000000..c58d3cb --- /dev/null +++ b/FastScript/dclfsIBX21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package dclfsIBX21; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs21, + fsIBX21; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX22.dpk b/FastScript/dclfsIBX22.dpk new file mode 100644 index 0000000..cd8b53a --- /dev/null +++ b/FastScript/dclfsIBX22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package dclfsIBX22; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs22, + fsIBX22; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX23.dpk b/FastScript/dclfsIBX23.dpk new file mode 100644 index 0000000..464647c --- /dev/null +++ b/FastScript/dclfsIBX23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsIBX23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs23, + fsIBX23; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX24.dpk b/FastScript/dclfsIBX24.dpk new file mode 100644 index 0000000..434d0dd --- /dev/null +++ b/FastScript/dclfsIBX24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsIBX24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs24, + fsIBX24; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX25.dpk b/FastScript/dclfsIBX25.dpk new file mode 100644 index 0000000..2dff5f1 --- /dev/null +++ b/FastScript/dclfsIBX25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsIBX25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs25, + fsIBX25; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX26.dpk b/FastScript/dclfsIBX26.dpk new file mode 100644 index 0000000..59a1405 --- /dev/null +++ b/FastScript/dclfsIBX26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsIBX26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs26, + fsIBX26; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX27.dpk b/FastScript/dclfsIBX27.dpk new file mode 100644 index 0000000..f8449fc --- /dev/null +++ b/FastScript/dclfsIBX27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsIBX27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs27, + fsIBX27; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX28.dpk b/FastScript/dclfsIBX28.dpk new file mode 100644 index 0000000..6a7f530 --- /dev/null +++ b/FastScript/dclfsIBX28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package dclfsIBX28; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs28, + fsIBX28; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX29.dpk b/FastScript/dclfsIBX29.dpk new file mode 100644 index 0000000..8d3036a --- /dev/null +++ b/FastScript/dclfsIBX29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package dclfsIBX29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs29, + fsIBX29; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX5.dpk b/FastScript/dclfsIBX5.dpk new file mode 100644 index 0000000..49131ba --- /dev/null +++ b/FastScript/dclfsIBX5.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 5 + +package dclfsIBX5; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL50, + fs5, + fsIBX5; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX6.dpk b/FastScript/dclfsIBX6.dpk new file mode 100644 index 0000000..116116e --- /dev/null +++ b/FastScript/dclfsIBX6.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 6 + +package dclfsIBX6; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs6, + fsIBX6; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX7.dpk b/FastScript/dclfsIBX7.dpk new file mode 100644 index 0000000..de31978 --- /dev/null +++ b/FastScript/dclfsIBX7.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 7 + +package dclfsIBX7; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs7, + fsIBX7; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsIBX9.dpk b/FastScript/dclfsIBX9.dpk new file mode 100644 index 0000000..7f0571d --- /dev/null +++ b/FastScript/dclfsIBX9.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2005 + +package dclfsIBX9; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 IBX Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs9, + fsIBX9; + +contains + fs_iibxreg in 'fs_iibxreg.pas'; + +end. diff --git a/FastScript/dclfsTee10.dpk b/FastScript/dclfsTee10.dpk new file mode 100644 index 0000000..2528ac4 --- /dev/null +++ b/FastScript/dclfsTee10.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2006 + +package dclfsTee10; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs10, + fsTee10; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee11.dpk b/FastScript/dclfsTee11.dpk new file mode 100644 index 0000000..01da7b4 --- /dev/null +++ b/FastScript/dclfsTee11.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2007 + +package dclfsTee11; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs11, + fsTee11; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee12.dpk b/FastScript/dclfsTee12.dpk new file mode 100644 index 0000000..e2f21ee --- /dev/null +++ b/FastScript/dclfsTee12.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2009 + +package dclfsTee12; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs12, + fsTee12; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee14.dpk b/FastScript/dclfsTee14.dpk new file mode 100644 index 0000000..8602d0a --- /dev/null +++ b/FastScript/dclfsTee14.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 2010 + +package dclfsTee14; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs14, + fsTee14; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee15.dpk b/FastScript/dclfsTee15.dpk new file mode 100644 index 0000000..7edbf47 --- /dev/null +++ b/FastScript/dclfsTee15.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE + +package dclfsTee15; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs15, + fsTee15; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee16.dpk b/FastScript/dclfsTee16.dpk new file mode 100644 index 0000000..57d575d --- /dev/null +++ b/FastScript/dclfsTee16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package dclfsTee16; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs16, + fsTee16; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee17.dpk b/FastScript/dclfsTee17.dpk new file mode 100644 index 0000000..241a123 --- /dev/null +++ b/FastScript/dclfsTee17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package dclfsTee17; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs17, + fsTee17; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee18.dpk b/FastScript/dclfsTee18.dpk new file mode 100644 index 0000000..e800491 --- /dev/null +++ b/FastScript/dclfsTee18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package dclfsTee18; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs18, + fsTee18; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee19.dpk b/FastScript/dclfsTee19.dpk new file mode 100644 index 0000000..e9bb0d2 --- /dev/null +++ b/FastScript/dclfsTee19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package dclfsTee19; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs19, + fsTee19; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee20.dpk b/FastScript/dclfsTee20.dpk new file mode 100644 index 0000000..68dba6b --- /dev/null +++ b/FastScript/dclfsTee20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package dclfsTee20; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs20, + fsTee20; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee21.dpk b/FastScript/dclfsTee21.dpk new file mode 100644 index 0000000..797396e --- /dev/null +++ b/FastScript/dclfsTee21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package dclfsTee21; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs21, + fsTee21; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee22.dpk b/FastScript/dclfsTee22.dpk new file mode 100644 index 0000000..4d25a05 --- /dev/null +++ b/FastScript/dclfsTee22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package dclfsTee22; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs22, + fsTee22; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee23.dpk b/FastScript/dclfsTee23.dpk new file mode 100644 index 0000000..d37c1af --- /dev/null +++ b/FastScript/dclfsTee23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsTee23; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs23, + fsTee23; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee24.dpk b/FastScript/dclfsTee24.dpk new file mode 100644 index 0000000..df5becb --- /dev/null +++ b/FastScript/dclfsTee24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsTee24; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs24, + fsTee24; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee25.dpk b/FastScript/dclfsTee25.dpk new file mode 100644 index 0000000..e0299de --- /dev/null +++ b/FastScript/dclfsTee25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsTee25; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs25, + fsTee25; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee26.dpk b/FastScript/dclfsTee26.dpk new file mode 100644 index 0000000..a6aa19d --- /dev/null +++ b/FastScript/dclfsTee26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsTee26; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs26, + fsTee26; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee27.dpk b/FastScript/dclfsTee27.dpk new file mode 100644 index 0000000..7eabf7d --- /dev/null +++ b/FastScript/dclfsTee27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package dclfsTee27; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs27, + fsTee27; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee28.dpk b/FastScript/dclfsTee28.dpk new file mode 100644 index 0000000..80fd3de --- /dev/null +++ b/FastScript/dclfsTee28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package dclfsTee28; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs28, + fsTee28; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee29.dpk b/FastScript/dclfsTee29.dpk new file mode 100644 index 0000000..1ba0884 --- /dev/null +++ b/FastScript/dclfsTee29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package dclfsTee29; + +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs29, + fsTee29; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee4.dpk b/FastScript/dclfsTee4.dpk new file mode 100644 index 0000000..401bc0f --- /dev/null +++ b/FastScript/dclfsTee4.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 4 + +package dclfsTee4; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL40, + fs4, + fsTee4; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee5.dpk b/FastScript/dclfsTee5.dpk new file mode 100644 index 0000000..3cc3397 --- /dev/null +++ b/FastScript/dclfsTee5.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 5 + +package dclfsTee5; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL50, + fs5, + fsTee5; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee6.dpk b/FastScript/dclfsTee6.dpk new file mode 100644 index 0000000..074527d --- /dev/null +++ b/FastScript/dclfsTee6.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 6 + +package dclfsTee6; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs6, + fsTee6; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee7.dpk b/FastScript/dclfsTee7.dpk new file mode 100644 index 0000000..f635e9a --- /dev/null +++ b/FastScript/dclfsTee7.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 7 + +package dclfsTee7; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs7, + fsTee7; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsTee9.dpk b/FastScript/dclfsTee9.dpk new file mode 100644 index 0000000..ebb9f57 --- /dev/null +++ b/FastScript/dclfsTee9.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2005 + +package dclfsTee9; + +{$R 'fs_ireg.dcr'} + +{$DESCRIPTION 'FastScript 1.9 Tee Components'} +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + DESIGNIDE, + fs9, + fsTee9; + +contains + fs_iteereg in 'fs_iteereg.pas'; + +end. diff --git a/FastScript/dclfsx.dpk b/FastScript/dclfsx.dpk new file mode 100644 index 0000000..0c49e2a --- /dev/null +++ b/FastScript/dclfsx.dpk @@ -0,0 +1,46 @@ +// Package file for CLX + +package dclfsx; + +{$R *.res} +{$R 'fs_ireg.dcr'} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$DESCRIPTION 'FastScript 1.9 Components'} +{$DESIGNONLY} +{$IMPLICITBUILD OFF} + +requires + rtl, + designide, + visualclx, + fsx +{$IFNDEF LINUX} +, bdertl, + adortl, + tee +{$ENDIF}; + +contains + fs_ireg in 'fs_ireg.pas'; + +end. diff --git a/FastScript/dclfsx.res b/FastScript/dclfsx.res new file mode 100644 index 0000000..fa40de9 Binary files /dev/null and b/FastScript/dclfsx.res differ diff --git a/FastScript/fmx.inc b/FastScript/fmx.inc new file mode 100644 index 0000000..e502196 --- /dev/null +++ b/FastScript/fmx.inc @@ -0,0 +1,12 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Include file } +{ } +{ (c) 2003, 2004 by Alexander Tzyganenko, } +{ Fast Reports, Inc } +{ } +{******************************************} + +{$DEFINE FMX} diff --git a/FastScript/frxPlatformsAttribute.inc b/FastScript/frxPlatformsAttribute.inc new file mode 100644 index 0000000..418ba41 --- /dev/null +++ b/FastScript/frxPlatformsAttribute.inc @@ -0,0 +1,12 @@ +{$IFDEF DELPHI16} +{$IFDEF FMX} +{$IFDEF DELPHI26} +[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidOSX32 or pidOSX64)] +{$ELSE} +[ComponentPlatformsAttribute(pidWin32 or pidWin64 or pidOSX32)] +{$ENDIF} +{$ELSE} +[ComponentPlatformsAttribute(pidWin32 or pidWin64)] +{$ENDIF} +{$ENDIF} + diff --git a/FastScript/fs.inc b/FastScript/fs.inc new file mode 100644 index 0000000..d5d7aee --- /dev/null +++ b/FastScript/fs.inc @@ -0,0 +1,612 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Include file } +{ } +{ (c) 2003, 2004 by Alexander Tzyganenko, } +{ Fast Reports, Inc } +{ } +{******************************************} + + +{$R-} {- Range-Checking } +{$H+} {- Use long strings by default } +{$B-} {- Complete Boolean Evaluation } +{$T-} {- Typed @ operator } +{$P+} {- Open string params } + +{$IFNDEF FPC} + {$V-} {- Var-String Checking } + {$X+} {- Extended syntax } + {$J+} {- Writeable structured consts } +{$ENDIF} + +{$IFDEF VER120} // Delphi 4.0 + {$DEFINE Delphi4} +{$ENDIF} + +{$IFDEF VER130} // Delphi 5.0 + {$DEFINE Delphi4} + {$DEFINE Delphi5} +{$ENDIF} + +{$IFDEF VER140} // Delphi 6.0 + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} +{$ENDIF} + +{$IFDEF VER150} // Delphi 7.0 + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} +{$ENDIF} + +{$IFDEF VER170} // Delphi 9.0 + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} +{$ENDIF} + +{$IFDEF VER180} // Delphi 10.0 + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} +{$ENDIF} + +{$IFDEF VER185} // Delphi 11.0 (Spacely) + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} +{$ENDIF} + +{$IFDEF VER190} // Delphi 11.0 (Highlander) + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} +{$ENDIF} + +{$IFDEF VER200} // Delphi 12.0 (Tiburon) + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +// {$WARNINGS OFF} +{$ENDIF} + +{$IFDEF VER210} // Delphi 14.0 + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER220} // Delphi XE + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER230} // Delphi XE 2 + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER240} // Delphi XE 3 + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER250} // Delphi XE 4 + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE Delphi18} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER260} // Delphi XE 4 + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE Delphi18} + {$DEFINE Delphi19} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER270} // Delphi XE 6 + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE Delphi18} + {$DEFINE Delphi19} + {$DEFINE Delphi20} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER280} // Delphi XE 7 + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE Delphi18} + {$DEFINE Delphi19} + {$DEFINE Delphi20} + {$DEFINE Delphi21} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER290} // Delphi XE 8 + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE Delphi18} + {$DEFINE Delphi19} + {$DEFINE Delphi20} + {$DEFINE Delphi21} + {$DEFINE Delphi22} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER300} // Delphi 10 Seattle + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE Delphi18} + {$DEFINE Delphi19} + {$DEFINE Delphi20} + {$DEFINE Delphi21} + {$DEFINE Delphi22} + {$DEFINE Delphi23} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER310} + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE Delphi18} + {$DEFINE Delphi19} + {$DEFINE Delphi20} + {$DEFINE Delphi21} + {$DEFINE Delphi22} + {$DEFINE Delphi23} + {$DEFINE Delphi24} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER320} + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE Delphi18} + {$DEFINE Delphi19} + {$DEFINE Delphi20} + {$DEFINE Delphi21} + {$DEFINE Delphi22} + {$DEFINE Delphi23} + {$DEFINE Delphi24} + {$DEFINE Delphi25} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER330} + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE Delphi18} + {$DEFINE Delphi19} + {$DEFINE Delphi20} + {$DEFINE Delphi21} + {$DEFINE Delphi22} + {$DEFINE Delphi23} + {$DEFINE Delphi24} + {$DEFINE Delphi25} + {$DEFINE Delphi26} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER340} + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE Delphi18} + {$DEFINE Delphi19} + {$DEFINE Delphi20} + {$DEFINE Delphi21} + {$DEFINE Delphi22} + {$DEFINE Delphi23} + {$DEFINE Delphi24} + {$DEFINE Delphi25} + {$DEFINE Delphi26} + {$DEFINE Delphi27} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER350} + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE Delphi18} + {$DEFINE Delphi19} + {$DEFINE Delphi20} + {$DEFINE Delphi21} + {$DEFINE Delphi22} + {$DEFINE Delphi23} + {$DEFINE Delphi24} + {$DEFINE Delphi25} + {$DEFINE Delphi26} + {$DEFINE Delphi27} + {$DEFINE Delphi28} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + +{$IFDEF VER360} + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE Delphi7} + {$DEFINE Delphi9} + {$DEFINE Delphi10} + {$DEFINE Delphi11} + {$DEFINE Delphi12} + {$DEFINE Delphi14} + {$DEFINE Delphi15} + {$DEFINE Delphi16} + {$DEFINE Delphi17} + {$DEFINE Delphi18} + {$DEFINE Delphi19} + {$DEFINE Delphi20} + {$DEFINE Delphi21} + {$DEFINE Delphi22} + {$DEFINE Delphi23} + {$DEFINE Delphi24} + {$DEFINE Delphi25} + {$DEFINE Delphi26} + {$DEFINE Delphi27} + {$DEFINE Delphi28} + {$DEFINE Delphi29} + {$DEFINE FS_INT64} + {$WARN UNSAFE_CODE OFF} + {$WARN UNSAFE_TYPE OFF} + {$WARN UNSAFE_CAST OFF} + {$WARN SYMBOL_DEPRECATED OFF} + {$WARN EXPLICIT_STRING_CAST OFF} + {$WARN EXPLICIT_STRING_CAST_LOSS OFF} +{$ENDIF} + + +{$IFDEF VER125} // Borland C++ Builder 4.0 + {$DEFINE Delphi4} + {$ObjExportAll on} +{$ENDIF} + +{$IFDEF VER130} // Borland C++ Builder 5.0 + {$IFDEF BCB} + {$ObjExportAll on} + {$ENDIF} +{$ENDIF} + +{$IFDEF VER140} // Borland C++ Builder 6.0 + {$IFDEF BCB} + {$ObjExportAll on} + {$ENDIF} +{$ENDIF} + +{$IFDEF VER150} // Borland C++ Builder 7.0 + {$IFDEF BCB} + {$ObjExportAll on} + {$ENDIF} +{$ENDIF} + +{$IFDEF FPC} // Free pascal compiler + {$MODE DELPHI} + {$PACKSET 1} + + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$DEFINE FS_INT64} +{$ELSE} + {$IFDEF LINUX} // KYLIX + {$DEFINE Delphi4} + {$DEFINE Delphi5} + {$DEFINE Delphi6} + {$IFNDEF Delphi22} + {$DEFINE CLX} + {$ENDIF} + {$IFDEF BCB} + {$DEFINE CLXCPP} + {$ENDIF} + {$ENDIF} +{$ENDIF} + +{$IFNDEF LINUX} + {$DEFINE WINDOWS} +{$ENDIF} + +{$IFDEF FPC} + {$DEFINE CROSS_COMPILE} +{$ENDIF} + +{$IFDEF CLX} + {$DEFINE CROSS_COMPILE} +{$ENDIF} + +// Uncomment below line for CLX compilation +//{$DEFINE CLX} + +// include ole dispatch module +{$IFNDEF CROSS_COMPILE} +{$IFNDEF FMX} +{$DEFINE OLE} +{$ENDIF} +{$ENDIF} +//{$DEFINE NOFORMS} diff --git a/FastScript/fs10.dpk b/FastScript/fs10.dpk new file mode 100644 index 0000000..2d7ebc1 --- /dev/null +++ b/FastScript/fs10.dpk @@ -0,0 +1,66 @@ +// Package file for Delphi 2006 + +package fs10; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + + + +end. diff --git a/FastScript/fs11.dpk b/FastScript/fs11.dpk new file mode 100644 index 0000000..168bf98 --- /dev/null +++ b/FastScript/fs11.dpk @@ -0,0 +1,66 @@ +// Package file for Delphi 2007 + +package fs11; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + + + +end. diff --git a/FastScript/fs12.dpk b/FastScript/fs12.dpk new file mode 100644 index 0000000..4770065 --- /dev/null +++ b/FastScript/fs12.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 2009 + +package fs12; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs14.dpk b/FastScript/fs14.dpk new file mode 100644 index 0000000..b974430 --- /dev/null +++ b/FastScript/fs14.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 2010 + +package fs14; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs15.dpk b/FastScript/fs15.dpk new file mode 100644 index 0000000..75d0ec0 --- /dev/null +++ b/FastScript/fs15.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi XE + +package fs15; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs16.dpk b/FastScript/fs16.dpk new file mode 100644 index 0000000..80ae244 --- /dev/null +++ b/FastScript/fs16.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi XE2 + +package fs16; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs17.dpk b/FastScript/fs17.dpk new file mode 100644 index 0000000..f873811 --- /dev/null +++ b/FastScript/fs17.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi XE3 + +package fs17; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs18.dpk b/FastScript/fs18.dpk new file mode 100644 index 0000000..4138707 --- /dev/null +++ b/FastScript/fs18.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi XE4 + +package fs18; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs19.dpk b/FastScript/fs19.dpk new file mode 100644 index 0000000..31eedb1 --- /dev/null +++ b/FastScript/fs19.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi XE5 + +package fs19; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs20.dpk b/FastScript/fs20.dpk new file mode 100644 index 0000000..88ff2b8 --- /dev/null +++ b/FastScript/fs20.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi XE6 + +package fs20; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs21.dpk b/FastScript/fs21.dpk new file mode 100644 index 0000000..981aa84 --- /dev/null +++ b/FastScript/fs21.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi XE7 + +package fs21; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs22.dpk b/FastScript/fs22.dpk new file mode 100644 index 0000000..f9cdf0c --- /dev/null +++ b/FastScript/fs22.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi XE8 + +package fs22; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs23.dpk b/FastScript/fs23.dpk new file mode 100644 index 0000000..d9e605d --- /dev/null +++ b/FastScript/fs23.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 10 Seattle + +package fs23; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs24.dpk b/FastScript/fs24.dpk new file mode 100644 index 0000000..cf0b018 --- /dev/null +++ b/FastScript/fs24.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 10 Seattle + +package fs24; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs25.dpk b/FastScript/fs25.dpk new file mode 100644 index 0000000..9a4e65d --- /dev/null +++ b/FastScript/fs25.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 10 Seattle + +package fs25; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs26.dpk b/FastScript/fs26.dpk new file mode 100644 index 0000000..5f2b841 --- /dev/null +++ b/FastScript/fs26.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 10 Seattle + +package fs26; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs27.dpk b/FastScript/fs27.dpk new file mode 100644 index 0000000..fdd63ad --- /dev/null +++ b/FastScript/fs27.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 10 Seattle + +package fs27; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs28.dpk b/FastScript/fs28.dpk new file mode 100644 index 0000000..81fb353 --- /dev/null +++ b/FastScript/fs28.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 11 Seattle + +package fs28; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs29.dpk b/FastScript/fs29.dpk new file mode 100644 index 0000000..a18ff30 --- /dev/null +++ b/FastScript/fs29.dpk @@ -0,0 +1,61 @@ +// Package file for Delphi 12 + +package fs29; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + +end. diff --git a/FastScript/fs4.bpk b/FastScript/fs4.bpk new file mode 100644 index 0000000..2d1aa68 --- /dev/null +++ b/FastScript/fs4.bpk @@ -0,0 +1,187 @@ +# --------------------------------------------------------------------------- +!if !$d(BCB) +BCB = $(MAKEDIR)\.. +!endif + +# --------------------------------------------------------------------------- +# IDE SECTION +# --------------------------------------------------------------------------- +# The following section of the project makefile is managed by the BCB IDE. +# It is recommended to use the IDE to change any of the values in this +# section. +# --------------------------------------------------------------------------- + +VERSION = BCB.04.04 +# --------------------------------------------------------------------------- +PROJECT = FS4.bpl +OBJFILES = fs_iReg.obj FS4.obj fs_iconst.obj +RESFILES = FS4.res fs_iReg.dcr +RESDEPEN = $(RESFILES) +LIBFILES = +PACKAGES = vcl40.bpi vclx40.bpi +DEFFILE = +# --------------------------------------------------------------------------- +PATHCPP = .; +PATHASM = .; +PATHPAS = .; +PATHRC = .; +DEBUGLIBPATH = $(BCB)\lib\debug +RELEASELIBPATH = $(BCB)\lib\release +USERDEFINES = +SYSDEFINES = _RTLDLL;NO_STRICT;USEPACKAGES +# --------------------------------------------------------------------------- +CFLAG1 = -I$(BCB)\include;$(BCB)\include\vcl -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve -a8 \ + -k- -vi -c -b- -w-par -w-inl -Vx -tWM -D$(SYSDEFINES);$(USERDEFINES) +PFLAGS = -U$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \ + -I$(BCB)\include;$(BCB)\include\vcl -$Y- -$L- -$D- -v -JPHNE -M +RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl +AFLAGS = /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn +LFLAGS = -L$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \ + -D"FastScript 1.9 Components" -aa -Tpp -x -Gn -Gl -Gi +# --------------------------------------------------------------------------- +ALLOBJ = c0pkg32.obj Memmgr.Lib $(PACKAGES) sysinit.obj $(OBJFILES) +ALLRES = $(RESFILES) +ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib +# --------------------------------------------------------------------------- +!ifdef IDEOPTIONS + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[HistoryLists\hlIncludePath] +Count=1 +Item0=$(BCB)\include;$(BCB)\include\vcl + +[HistoryLists\hlLibraryPath] +Count=1 +Item0=$(BCB)\lib\obj;$(BCB)\lib + +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=$(BCB)\source\vcl + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +HostApplication= +RemoteHost= +RemotePath= +RemoteDebug=0 + +[Compiler] +InMemoryExe=0 +ShowInfoMsgs=0 + +!endif + +# --------------------------------------------------------------------------- +# MAKE SECTION +# --------------------------------------------------------------------------- +# This section of the project file is not used by the BCB IDE. It is for +# the benefit of building from the command-line using the MAKE utility. +# --------------------------------------------------------------------------- + +.autodepend +# --------------------------------------------------------------------------- +!if !$d(BCC32) +BCC32 = bcc32 +!endif + +!if !$d(CPP32) +CPP32 = cpp32 +!endif + +!if !$d(DCC32) +DCC32 = dcc32 +!endif + +!if !$d(TASM32) +TASM32 = tasm32 +!endif + +!if !$d(LINKER) +LINKER = ilink32 +!endif + +!if !$d(BRCC32) +BRCC32 = brcc32 +!endif + +# --------------------------------------------------------------------------- +!if $d(PATHCPP) +.PATH.CPP = $(PATHCPP) +.PATH.C = $(PATHCPP) +!endif + +!if $d(PATHPAS) +.PATH.PAS = $(PATHPAS) +!endif + +!if $d(PATHASM) +.PATH.ASM = $(PATHASM) +!endif + +!if $d(PATHRC) +.PATH.RC = $(PATHRC) +!endif +# --------------------------------------------------------------------------- +$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE) + $(BCB)\BIN\$(LINKER) @&&! + $(LFLAGS) + + $(ALLOBJ), + + $(PROJECT),, + + $(ALLLIB), + + $(DEFFILE), + + $(ALLRES) +! +# --------------------------------------------------------------------------- +.pas.hpp: + $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< } + +.pas.obj: + $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< } + +.cpp.obj: + $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< } + +.c.obj: + $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< } + +.c.i: + $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< } + +.cpp.i: + $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< } + +.asm.obj: + $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@ + +.rc.res: + $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $< +# --------------------------------------------------------------------------- diff --git a/FastScript/fs4.cpp b/FastScript/fs4.cpp new file mode 100644 index 0000000..701945a --- /dev/null +++ b/FastScript/fs4.cpp @@ -0,0 +1,19 @@ +//--------------------------------------------------------------------------- +#include +#pragma hdrstop +USERES("FS4.res"); +USEPACKAGE("vcl40.bpi"); +USEPACKAGE("vclx40.bpi"); +USEUNIT("fs_iReg.pas"); +USEUNIT("fs_iconst.pas"); +USERES("fs_iReg.dcr"); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- +// Package source. +//--------------------------------------------------------------------------- +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- diff --git a/FastScript/fs4.dpk b/FastScript/fs4.dpk new file mode 100644 index 0000000..2401b04 --- /dev/null +++ b/FastScript/fs4.dpk @@ -0,0 +1,65 @@ +// Package file for Delphi 4 + +package fs4; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL40, + VCLX40; + + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + + +end. diff --git a/FastScript/fs4.res b/FastScript/fs4.res new file mode 100644 index 0000000..eb2597a Binary files /dev/null and b/FastScript/fs4.res differ diff --git a/FastScript/fs5.bpk b/FastScript/fs5.bpk new file mode 100644 index 0000000..7da84c2 --- /dev/null +++ b/FastScript/fs5.bpk @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[HistoryLists\hlIncludePath] +Count=1 +Item0=$(BCB)\include;$(BCB)\include\vcl + +[HistoryLists\hlLibraryPath] +Count=1 +Item0=$(BCB)\lib\obj;$(BCB)\lib + +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=$(BCB)\source\vcl + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +HostApplication= +RemoteHost= +RemotePath= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + +[Language] +ActiveLang= +ProjectLang= +RootDir= + + \ No newline at end of file diff --git a/FastScript/fs5.cpp b/FastScript/fs5.cpp new file mode 100644 index 0000000..75223bc --- /dev/null +++ b/FastScript/fs5.cpp @@ -0,0 +1,23 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +USERES("FS5.res"); +USEPACKAGE("vcl50.bpi"); +USEPACKAGE("vclx50.bpi"); +USEUNIT("fs_ireg.pas"); +USEUNIT("fs_iconst.pas"); +USERES("fs_iReg.dcr"); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- + +// Package source. +//--------------------------------------------------------------------------- + +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- diff --git a/FastScript/fs5.dpk b/FastScript/fs5.dpk new file mode 100644 index 0000000..1327eb4 --- /dev/null +++ b/FastScript/fs5.dpk @@ -0,0 +1,66 @@ +// Package file for Delphi 5 + +package fs5; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL50, + VCLX50; + + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + + + +end. diff --git a/FastScript/fs5.res b/FastScript/fs5.res new file mode 100644 index 0000000..da3d366 Binary files /dev/null and b/FastScript/fs5.res differ diff --git a/FastScript/fs6.bpk b/FastScript/fs6.bpk new file mode 100644 index 0000000..a00493a --- /dev/null +++ b/FastScript/fs6.bpk @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[Excluded Packages] +d:\delphi\builder6\Projects\Bpl\FR6.bpl=FastReport 2.4 Components + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +Launcher= +UseLauncher=0 +DebugCWD= +HostApplication= +RemoteHost= +RemotePath= +RemoteLauncher= +RemoteCWD= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 +LinkCGLIB=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + +[Linker] +LibPrefix= +LibSuffix= +LibVersion= + + \ No newline at end of file diff --git a/FastScript/fs6.cpp b/FastScript/fs6.cpp new file mode 100644 index 0000000..f8b9781 --- /dev/null +++ b/FastScript/fs6.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +#pragma package(smart_init) +//--------------------------------------------------------------------------- + +// Package source. +//--------------------------------------------------------------------------- + +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- + \ No newline at end of file diff --git a/FastScript/fs6.dpk b/FastScript/fs6.dpk new file mode 100644 index 0000000..ffff854 --- /dev/null +++ b/FastScript/fs6.dpk @@ -0,0 +1,66 @@ +// Package file for Delphi 6 + +package fs6; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + + + +end. diff --git a/FastScript/fs6.res b/FastScript/fs6.res new file mode 100644 index 0000000..2bbdbc1 Binary files /dev/null and b/FastScript/fs6.res differ diff --git a/FastScript/fs7.dpk b/FastScript/fs7.dpk new file mode 100644 index 0000000..820a3c9 --- /dev/null +++ b/FastScript/fs7.dpk @@ -0,0 +1,66 @@ +// Package file for Delphi 7 + +package fs7; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + + + +end. diff --git a/FastScript/fs9.dpk b/FastScript/fs9.dpk new file mode 100644 index 0000000..0e46e9e --- /dev/null +++ b/FastScript/fs9.dpk @@ -0,0 +1,66 @@ +// Package file for Delphi 2005 + +package fs9; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLX; + + +contains + fs_ipascal in 'fs_ipascal.pas', + fs_icpp in 'fs_icpp.pas', + fs_ijs in 'fs_ijs.pas', + fs_ibasic in 'fs_ibasic.pas', + + fs_iclassesrtti in 'fs_iclassesrtti.pas', + fs_iconst in 'fs_iconst.pas', + fs_idialogsrtti in 'fs_idialogsrtti.pas', +{$IFDEF OLE} + fs_idisp in 'fs_idisp.pas', +{$ENDIF} + fs_ievents in 'fs_ievents.pas', + fs_iexpression in 'fs_iexpression.pas', + fs_iextctrlsrtti in 'fs_iextctrlsrtti.pas', + fs_iformsrtti in 'fs_iformsrtti.pas', + fs_igraphicsrtti in 'fs_igraphicsrtti.pas', + fs_iilparser in 'fs_iilparser.pas', + fs_iinirtti in 'fs_iinirtti.pas', + fs_iinterpreter in 'fs_iinterpreter.pas', + fs_iparser in 'fs_iparser.pas', + fs_isysrtti in 'fs_isysrtti.pas', + fs_imenusrtti in 'fs_imenusrtti.pas', + fs_itools in 'fs_itools.pas', + fs_xml in 'fs_xml.pas', + fs_synmemo in 'fs_synmemo.pas', + fs_tree in 'fs_tree.pas'; + + + +end. diff --git a/FastScript/fsADO10.dpk b/FastScript/fsADO10.dpk new file mode 100644 index 0000000..205b554 --- /dev/null +++ b/FastScript/fsADO10.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2006 + +package fsADO10; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs10, + fsDB10; + +contains + fs_iadortti in 'fs_iadortti.pas'; + + +end. diff --git a/FastScript/fsADO11.dpk b/FastScript/fsADO11.dpk new file mode 100644 index 0000000..314c61e --- /dev/null +++ b/FastScript/fsADO11.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2007 + +package fsADO11; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs11, + fsDB11; + +contains + fs_iadortti in 'fs_iadortti.pas'; + + +end. diff --git a/FastScript/fsADO12.dpk b/FastScript/fsADO12.dpk new file mode 100644 index 0000000..8e3c8bb --- /dev/null +++ b/FastScript/fsADO12.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2009 + +package fsADO12; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs12, + fsDB12; + +contains + fs_iadortti in 'fs_iadortti.pas'; + + +end. diff --git a/FastScript/fsADO14.dpk b/FastScript/fsADO14.dpk new file mode 100644 index 0000000..c35e8ad --- /dev/null +++ b/FastScript/fsADO14.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 2010 + +package fsADO14; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs14, + fsDB14; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO15.dpk b/FastScript/fsADO15.dpk new file mode 100644 index 0000000..e05c8f4 --- /dev/null +++ b/FastScript/fsADO15.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE + +package fsADO15; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs15, + fsDB15; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO16.dpk b/FastScript/fsADO16.dpk new file mode 100644 index 0000000..ca0eb87 --- /dev/null +++ b/FastScript/fsADO16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package fsADO16; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs16, + fsDB16; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO17.dpk b/FastScript/fsADO17.dpk new file mode 100644 index 0000000..6a3d141 --- /dev/null +++ b/FastScript/fsADO17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package fsADO17; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs17, + fsDB17; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO18.dpk b/FastScript/fsADO18.dpk new file mode 100644 index 0000000..c989d57 --- /dev/null +++ b/FastScript/fsADO18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package fsADO18; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs18, + fsDB18; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO19.dpk b/FastScript/fsADO19.dpk new file mode 100644 index 0000000..5172497 --- /dev/null +++ b/FastScript/fsADO19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package fsADO19; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs19, + fsDB19; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO20.dpk b/FastScript/fsADO20.dpk new file mode 100644 index 0000000..aeedd49 --- /dev/null +++ b/FastScript/fsADO20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package fsADO20; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs20, + fsDB20; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO21.dpk b/FastScript/fsADO21.dpk new file mode 100644 index 0000000..7f60a5a --- /dev/null +++ b/FastScript/fsADO21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package fsADO21; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs21, + fsDB21; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO22.dpk b/FastScript/fsADO22.dpk new file mode 100644 index 0000000..f819723 --- /dev/null +++ b/FastScript/fsADO22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package fsADO22; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs22, + fsDB22; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO23.dpk b/FastScript/fsADO23.dpk new file mode 100644 index 0000000..5236423 --- /dev/null +++ b/FastScript/fsADO23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package fsADO23; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs23, + fsDB23; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO24.dpk b/FastScript/fsADO24.dpk new file mode 100644 index 0000000..b691767 --- /dev/null +++ b/FastScript/fsADO24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package fsADO24; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs24, + fsDB24; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO25.dpk b/FastScript/fsADO25.dpk new file mode 100644 index 0000000..9debb8d --- /dev/null +++ b/FastScript/fsADO25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package fsADO25; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs25, + fsDB25; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO26.dpk b/FastScript/fsADO26.dpk new file mode 100644 index 0000000..8aedb6b --- /dev/null +++ b/FastScript/fsADO26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package fsADO26; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs26, + fsDB26; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO27.dpk b/FastScript/fsADO27.dpk new file mode 100644 index 0000000..4319bff --- /dev/null +++ b/FastScript/fsADO27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package fsADO27; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs27, + fsDB27; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO28.dpk b/FastScript/fsADO28.dpk new file mode 100644 index 0000000..f729e72 --- /dev/null +++ b/FastScript/fsADO28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package fsADO28; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs28, + fsDB28; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO29.dpk b/FastScript/fsADO29.dpk new file mode 100644 index 0000000..f4728e1 --- /dev/null +++ b/FastScript/fsADO29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package fsADO29; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs29, + fsDB29; + +contains + fs_iadortti in 'fs_iadortti.pas'; + +end. diff --git a/FastScript/fsADO5.bpk b/FastScript/fsADO5.bpk new file mode 100644 index 0000000..c4bdfc6 --- /dev/null +++ b/FastScript/fsADO5.bpk @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[HistoryLists\hlIncludePath] +Count=1 +Item0=$(BCB)\include;$(BCB)\include\vcl + +[HistoryLists\hlLibraryPath] +Count=1 +Item0=$(BCB)\lib\obj;$(BCB)\lib + +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=$(BCB)\source\vcl + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +HostApplication= +RemoteHost= +RemotePath= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + +[Language] +ActiveLang= +ProjectLang= +RootDir= + + \ No newline at end of file diff --git a/FastScript/fsADO5.cpp b/FastScript/fsADO5.cpp new file mode 100644 index 0000000..a145759 --- /dev/null +++ b/FastScript/fsADO5.cpp @@ -0,0 +1,25 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +USERES("FS5.res"); +USEPACKAGE("vcl50.bpi"); +USEPACKAGE("vcldb50.bpi"); +USEPACKAGE("vclado50.bpi"); +USEPACKAGE("fs5.bpi"); +USEPACKAGE("fsDB5.bpi"); +USEUNIT("fs_iadoreg.pas"); +USERES("fs_iReg.dcr"); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- + +// Package source. +//--------------------------------------------------------------------------- + +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- diff --git a/FastScript/fsADO5.dpk b/FastScript/fsADO5.dpk new file mode 100644 index 0000000..d062b3f --- /dev/null +++ b/FastScript/fsADO5.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 5 + +package fsADO5; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL50, + VCLDB50, + VCLADO50, + fs5, + fsDB5; + +contains + fs_iadortti in 'fs_iadortti.pas'; + + +end. diff --git a/FastScript/fsADO6.bpk b/FastScript/fsADO6.bpk new file mode 100644 index 0000000..a7591da --- /dev/null +++ b/FastScript/fsADO6.bpk @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[Excluded Packages] + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +Launcher= +UseLauncher=0 +DebugCWD= +HostApplication= +RemoteHost= +RemotePath= +RemoteLauncher= +RemoteCWD= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 +LinkCGLIB=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + +[Linker] +LibPrefix= +LibSuffix= +LibVersion= + + \ No newline at end of file diff --git a/FastScript/fsADO6.cpp b/FastScript/fsADO6.cpp new file mode 100644 index 0000000..f8b9781 --- /dev/null +++ b/FastScript/fsADO6.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +#pragma package(smart_init) +//--------------------------------------------------------------------------- + +// Package source. +//--------------------------------------------------------------------------- + +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- + \ No newline at end of file diff --git a/FastScript/fsADO6.dpk b/FastScript/fsADO6.dpk new file mode 100644 index 0000000..c2e52fc --- /dev/null +++ b/FastScript/fsADO6.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 6 + +package fsADO6; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs6, + fsDB6; + +contains + fs_iadortti in 'fs_iadortti.pas'; + + +end. diff --git a/FastScript/fsADO7.dpk b/FastScript/fsADO7.dpk new file mode 100644 index 0000000..245f0fd --- /dev/null +++ b/FastScript/fsADO7.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 7 + +package fsADO7; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs7, + fsDB7; + +contains + fs_iadortti in 'fs_iadortti.pas'; + + +end. diff --git a/FastScript/fsADO9.dpk b/FastScript/fsADO9.dpk new file mode 100644 index 0000000..e87df33 --- /dev/null +++ b/FastScript/fsADO9.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2005 + +package fsADO9; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + ADORTL, + fs9, + fsDB9; + +contains + fs_iadortti in 'fs_iadortti.pas'; + + +end. diff --git a/FastScript/fsBDE10.dpk b/FastScript/fsBDE10.dpk new file mode 100644 index 0000000..bfff3e7 --- /dev/null +++ b/FastScript/fsBDE10.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2006 + +package fsBDE10; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs10, + fsDB10; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE11.dpk b/FastScript/fsBDE11.dpk new file mode 100644 index 0000000..cc0072a --- /dev/null +++ b/FastScript/fsBDE11.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2007 + +package fsBDE11; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs11, + fsDB11; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE12.dpk b/FastScript/fsBDE12.dpk new file mode 100644 index 0000000..5442db2 --- /dev/null +++ b/FastScript/fsBDE12.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2009 + +package fsBDE12; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs12, + fsDB12; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE14.dpk b/FastScript/fsBDE14.dpk new file mode 100644 index 0000000..07e09dd --- /dev/null +++ b/FastScript/fsBDE14.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2010 + +package fsBDE14; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs14, + fsDB14; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE15.dpk b/FastScript/fsBDE15.dpk new file mode 100644 index 0000000..87a27ad --- /dev/null +++ b/FastScript/fsBDE15.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE + +package fsBDE15; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs15, + fsDB15; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE16.dpk b/FastScript/fsBDE16.dpk new file mode 100644 index 0000000..374d6ba --- /dev/null +++ b/FastScript/fsBDE16.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE2 + +package fsBDE16; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs16, + fsDB16; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE17.dpk b/FastScript/fsBDE17.dpk new file mode 100644 index 0000000..3432481 --- /dev/null +++ b/FastScript/fsBDE17.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE3 + +package fsBDE17; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs17, + fsDB17; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE18.dpk b/FastScript/fsBDE18.dpk new file mode 100644 index 0000000..52d5497 --- /dev/null +++ b/FastScript/fsBDE18.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE4 + +package fsBDE18; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs18, + fsDB18; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE19.dpk b/FastScript/fsBDE19.dpk new file mode 100644 index 0000000..32f5d27 --- /dev/null +++ b/FastScript/fsBDE19.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE5 + +package fsBDE19; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs19, + fsDB19; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE20.dpk b/FastScript/fsBDE20.dpk new file mode 100644 index 0000000..71bff3b --- /dev/null +++ b/FastScript/fsBDE20.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE6 + +package fsBDE20; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs20, + fsDB20; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE21.dpk b/FastScript/fsBDE21.dpk new file mode 100644 index 0000000..0c9f49d --- /dev/null +++ b/FastScript/fsBDE21.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE7 + +package fsBDE21; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs21, + fsDB21; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE22.dpk b/FastScript/fsBDE22.dpk new file mode 100644 index 0000000..f8b934c --- /dev/null +++ b/FastScript/fsBDE22.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi XE8 + +package fsBDE22; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs22, + fsDB22; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE23.dpk b/FastScript/fsBDE23.dpk new file mode 100644 index 0000000..ff73cf9 --- /dev/null +++ b/FastScript/fsBDE23.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 10 Seattle + +package fsBDE23; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs23, + fsDB23; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE24.dpk b/FastScript/fsBDE24.dpk new file mode 100644 index 0000000..54c218f --- /dev/null +++ b/FastScript/fsBDE24.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 10 Seattle + +package fsBDE24; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs24, + fsDB24; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE25.dpk b/FastScript/fsBDE25.dpk new file mode 100644 index 0000000..de71408 --- /dev/null +++ b/FastScript/fsBDE25.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 10 Seattle + +package fsBDE25; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs25, + fsDB25; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE26.dpk b/FastScript/fsBDE26.dpk new file mode 100644 index 0000000..23acd7f --- /dev/null +++ b/FastScript/fsBDE26.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 10 Seattle + +package fsBDE26; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs26, + fsDB26; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE27.dpk b/FastScript/fsBDE27.dpk new file mode 100644 index 0000000..783046d --- /dev/null +++ b/FastScript/fsBDE27.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 10 Seattle + +package fsBDE27; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs27, + fsDB27; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE28.dpk b/FastScript/fsBDE28.dpk new file mode 100644 index 0000000..1f419d4 --- /dev/null +++ b/FastScript/fsBDE28.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 11 Seattle + +package fsBDE28; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs28, + fsDB28; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE29.dpk b/FastScript/fsBDE29.dpk new file mode 100644 index 0000000..d833080 --- /dev/null +++ b/FastScript/fsBDE29.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 12 + +package fsBDE29; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs29, + fsDB29; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE4.bpk b/FastScript/fsBDE4.bpk new file mode 100644 index 0000000..961c052 --- /dev/null +++ b/FastScript/fsBDE4.bpk @@ -0,0 +1,187 @@ +# --------------------------------------------------------------------------- +!if !$d(BCB) +BCB = $(MAKEDIR)\.. +!endif + +# --------------------------------------------------------------------------- +# IDE SECTION +# --------------------------------------------------------------------------- +# The following section of the project makefile is managed by the BCB IDE. +# It is recommended to use the IDE to change any of the values in this +# section. +# --------------------------------------------------------------------------- + +VERSION = BCB.04.04 +# --------------------------------------------------------------------------- +PROJECT = FSBDE4.bpl +OBJFILES = fs_iReg.obj FSBDE4.obj +RESFILES = FS4.res fs_iReg.dcr +RESDEPEN = $(RESFILES) +LIBFILES = +PACKAGES = vcl40.bpi vcldb40.bpi fs4.bpi fsDB4.bpi +DEFFILE = +# --------------------------------------------------------------------------- +PATHCPP = .; +PATHASM = .; +PATHPAS = .; +PATHRC = .; +DEBUGLIBPATH = $(BCB)\lib\debug +RELEASELIBPATH = $(BCB)\lib\release +USERDEFINES = +SYSDEFINES = _RTLDLL;NO_STRICT;USEPACKAGES +# --------------------------------------------------------------------------- +CFLAG1 = -I$(BCB)\include;$(BCB)\include\vcl -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve -a8 \ + -k- -vi -c -b- -w-par -w-inl -Vx -tWM -D$(SYSDEFINES);$(USERDEFINES) +PFLAGS = -U$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \ + -I$(BCB)\include;$(BCB)\include\vcl -$Y- -$L- -$D- -v -JPHNE -M +RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl +AFLAGS = /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn +LFLAGS = -L$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \ + -D"FastScript 1.9 BDE Components" -aa -Tpp -x -Gn -Gl -Gi +# --------------------------------------------------------------------------- +ALLOBJ = c0pkg32.obj Memmgr.Lib $(PACKAGES) sysinit.obj $(OBJFILES) +ALLRES = $(RESFILES) +ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib +# --------------------------------------------------------------------------- +!ifdef IDEOPTIONS + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[HistoryLists\hlIncludePath] +Count=1 +Item0=$(BCB)\include;$(BCB)\include\vcl + +[HistoryLists\hlLibraryPath] +Count=1 +Item0=$(BCB)\lib\obj;$(BCB)\lib + +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=$(BCB)\source\vcl + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +HostApplication= +RemoteHost= +RemotePath= +RemoteDebug=0 + +[Compiler] +InMemoryExe=0 +ShowInfoMsgs=0 + +!endif + +# --------------------------------------------------------------------------- +# MAKE SECTION +# --------------------------------------------------------------------------- +# This section of the project file is not used by the BCB IDE. It is for +# the benefit of building from the command-line using the MAKE utility. +# --------------------------------------------------------------------------- + +.autodepend +# --------------------------------------------------------------------------- +!if !$d(BCC32) +BCC32 = bcc32 +!endif + +!if !$d(CPP32) +CPP32 = cpp32 +!endif + +!if !$d(DCC32) +DCC32 = dcc32 +!endif + +!if !$d(TASM32) +TASM32 = tasm32 +!endif + +!if !$d(LINKER) +LINKER = ilink32 +!endif + +!if !$d(BRCC32) +BRCC32 = brcc32 +!endif + +# --------------------------------------------------------------------------- +!if $d(PATHCPP) +.PATH.CPP = $(PATHCPP) +.PATH.C = $(PATHCPP) +!endif + +!if $d(PATHPAS) +.PATH.PAS = $(PATHPAS) +!endif + +!if $d(PATHASM) +.PATH.ASM = $(PATHASM) +!endif + +!if $d(PATHRC) +.PATH.RC = $(PATHRC) +!endif +# --------------------------------------------------------------------------- +$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE) + $(BCB)\BIN\$(LINKER) @&&! + $(LFLAGS) + + $(ALLOBJ), + + $(PROJECT),, + + $(ALLLIB), + + $(DEFFILE), + + $(ALLRES) +! +# --------------------------------------------------------------------------- +.pas.hpp: + $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< } + +.pas.obj: + $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< } + +.cpp.obj: + $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< } + +.c.obj: + $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< } + +.c.i: + $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< } + +.cpp.i: + $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< } + +.asm.obj: + $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@ + +.rc.res: + $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $< +# --------------------------------------------------------------------------- diff --git a/FastScript/fsBDE4.cpp b/FastScript/fsBDE4.cpp new file mode 100644 index 0000000..998594d --- /dev/null +++ b/FastScript/fsBDE4.cpp @@ -0,0 +1,20 @@ +//--------------------------------------------------------------------------- +#include +#pragma hdrstop +USERES("FS4.res"); +USEPACKAGE("vcl40.bpi"); +USEPACKAGE("vcldb40.bpi"); +USEPACKAGE("fs4.bpi"); +USEPACKAGE("fsDB4.bpi"); +USEUNIT("fs_ibdereg.pas"); +USERES("fs_ireg.dcr"); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- +// Package source. +//--------------------------------------------------------------------------- +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- diff --git a/FastScript/fsBDE4.dpk b/FastScript/fsBDE4.dpk new file mode 100644 index 0000000..0d99e8f --- /dev/null +++ b/FastScript/fsBDE4.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 4 + +package fsBDE4; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL40, + VCLDB40, + fs4, + fsDB4; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE5.bpk b/FastScript/fsBDE5.bpk new file mode 100644 index 0000000..e982132 --- /dev/null +++ b/FastScript/fsBDE5.bpk @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[HistoryLists\hlIncludePath] +Count=1 +Item0=$(BCB)\include;$(BCB)\include\vcl + +[HistoryLists\hlLibraryPath] +Count=1 +Item0=$(BCB)\lib\obj;$(BCB)\lib + +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=$(BCB)\source\vcl + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +HostApplication= +RemoteHost= +RemotePath= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + +[Language] +ActiveLang= +ProjectLang= +RootDir= + + \ No newline at end of file diff --git a/FastScript/fsBDE5.cpp b/FastScript/fsBDE5.cpp new file mode 100644 index 0000000..367c0d7 --- /dev/null +++ b/FastScript/fsBDE5.cpp @@ -0,0 +1,25 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +USERES("FS5.res"); +USEPACKAGE("vcl50.bpi"); +USEPACKAGE("vcldb50.bpi"); +USEPACKAGE("vclbde50.bpi"); +USEPACKAGE("fs5.bpi"); +USEPACKAGE("fsDB5.bpi"); +USEUNIT("fs_ibdereg.pas"); +USERES("fs_iReg.dcr"); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- + +// Package source. +//--------------------------------------------------------------------------- + +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- diff --git a/FastScript/fsBDE5.dpk b/FastScript/fsBDE5.dpk new file mode 100644 index 0000000..5d96d46 --- /dev/null +++ b/FastScript/fsBDE5.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 5 + +package fsBDE5; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL50, + VCLDB50, + VCLBDE50, + fs5, + fsDB5; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE6.bpk b/FastScript/fsBDE6.bpk new file mode 100644 index 0000000..1455767 --- /dev/null +++ b/FastScript/fsBDE6.bpk @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[Excluded Packages] +d:\delphi\builder6\Projects\Bpl\FR6.bpl=FastReport 2.4 Components + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +Launcher= +UseLauncher=0 +DebugCWD= +HostApplication= +RemoteHost= +RemotePath= +RemoteLauncher= +RemoteCWD= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 +LinkCGLIB=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + +[Linker] +LibPrefix= +LibSuffix= +LibVersion= + + \ No newline at end of file diff --git a/FastScript/fsBDE6.cpp b/FastScript/fsBDE6.cpp new file mode 100644 index 0000000..f8b9781 --- /dev/null +++ b/FastScript/fsBDE6.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +#pragma package(smart_init) +//--------------------------------------------------------------------------- + +// Package source. +//--------------------------------------------------------------------------- + +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- + \ No newline at end of file diff --git a/FastScript/fsBDE6.dpk b/FastScript/fsBDE6.dpk new file mode 100644 index 0000000..fa41b8a --- /dev/null +++ b/FastScript/fsBDE6.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 6 + +package fsBDE6; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs6, + fsDB6; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE7.dpk b/FastScript/fsBDE7.dpk new file mode 100644 index 0000000..8c5a9d6 --- /dev/null +++ b/FastScript/fsBDE7.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 7 + +package fsBDE7; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs7, + fsDB7; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsBDE9.dpk b/FastScript/fsBDE9.dpk new file mode 100644 index 0000000..48a58bc --- /dev/null +++ b/FastScript/fsBDE9.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2005 + +package fsBDE9; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + BDERTL, + fs9, + fsDB9; + +contains + fs_ibdertti in 'fs_ibdertti.pas'; + + +end. diff --git a/FastScript/fsDB10.dpk b/FastScript/fsDB10.dpk new file mode 100644 index 0000000..166eb1e --- /dev/null +++ b/FastScript/fsDB10.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2006 + +package fsDB10; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs10; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + + +end. diff --git a/FastScript/fsDB11.dpk b/FastScript/fsDB11.dpk new file mode 100644 index 0000000..3997457 --- /dev/null +++ b/FastScript/fsDB11.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2007 + +package fsDB11; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs11; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + + +end. diff --git a/FastScript/fsDB12.dpk b/FastScript/fsDB12.dpk new file mode 100644 index 0000000..c6bd2b2 --- /dev/null +++ b/FastScript/fsDB12.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2009 + +package fsDB12; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs12; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + + +end. diff --git a/FastScript/fsDB14.dpk b/FastScript/fsDB14.dpk new file mode 100644 index 0000000..fb31b43 --- /dev/null +++ b/FastScript/fsDB14.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 2010 + +package fsDB14; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs14; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB15.dpk b/FastScript/fsDB15.dpk new file mode 100644 index 0000000..1093567 --- /dev/null +++ b/FastScript/fsDB15.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE + +package fsDB15; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs15; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB16.dpk b/FastScript/fsDB16.dpk new file mode 100644 index 0000000..43eb58b --- /dev/null +++ b/FastScript/fsDB16.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE2 + +package fsDB16; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs16; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB17.dpk b/FastScript/fsDB17.dpk new file mode 100644 index 0000000..3b749a9 --- /dev/null +++ b/FastScript/fsDB17.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE3 + +package fsDB17; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs17; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB18.dpk b/FastScript/fsDB18.dpk new file mode 100644 index 0000000..ef1ea16 --- /dev/null +++ b/FastScript/fsDB18.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE4 + +package fsDB18; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs18; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB19.dpk b/FastScript/fsDB19.dpk new file mode 100644 index 0000000..8b64749 --- /dev/null +++ b/FastScript/fsDB19.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE5 + +package fsDB19; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs19; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB20.dpk b/FastScript/fsDB20.dpk new file mode 100644 index 0000000..6b1ecd6 --- /dev/null +++ b/FastScript/fsDB20.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE6 + +package fsDB20; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs20; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB21.dpk b/FastScript/fsDB21.dpk new file mode 100644 index 0000000..75c41a9 --- /dev/null +++ b/FastScript/fsDB21.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE7 + +package fsDB21; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs21; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB22.dpk b/FastScript/fsDB22.dpk new file mode 100644 index 0000000..a59385b --- /dev/null +++ b/FastScript/fsDB22.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi XE8 + +package fsDB22; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs22; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB23.dpk b/FastScript/fsDB23.dpk new file mode 100644 index 0000000..4c6e4a4 --- /dev/null +++ b/FastScript/fsDB23.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package fsDB23; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs23; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB24.dpk b/FastScript/fsDB24.dpk new file mode 100644 index 0000000..cc8c55f --- /dev/null +++ b/FastScript/fsDB24.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package fsDB24; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs24; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB25.dpk b/FastScript/fsDB25.dpk new file mode 100644 index 0000000..dff4be5 --- /dev/null +++ b/FastScript/fsDB25.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package fsDB25; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs25; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB26.dpk b/FastScript/fsDB26.dpk new file mode 100644 index 0000000..b2c005f --- /dev/null +++ b/FastScript/fsDB26.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package fsDB26; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs26; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB27.dpk b/FastScript/fsDB27.dpk new file mode 100644 index 0000000..0655b35 --- /dev/null +++ b/FastScript/fsDB27.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 10 Seattle + +package fsDB27; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs27; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB28.dpk b/FastScript/fsDB28.dpk new file mode 100644 index 0000000..f3fd31a --- /dev/null +++ b/FastScript/fsDB28.dpk @@ -0,0 +1,39 @@ +// Package file for Delphi 11 Seattle + +package fsDB28; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs28; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + +end. diff --git a/FastScript/fsDB4.bpk b/FastScript/fsDB4.bpk new file mode 100644 index 0000000..9a07332 --- /dev/null +++ b/FastScript/fsDB4.bpk @@ -0,0 +1,187 @@ +# --------------------------------------------------------------------------- +!if !$d(BCB) +BCB = $(MAKEDIR)\.. +!endif + +# --------------------------------------------------------------------------- +# IDE SECTION +# --------------------------------------------------------------------------- +# The following section of the project makefile is managed by the BCB IDE. +# It is recommended to use the IDE to change any of the values in this +# section. +# --------------------------------------------------------------------------- + +VERSION = BCB.04.04 +# --------------------------------------------------------------------------- +PROJECT = FSDB4.bpl +OBJFILES = fs_iReg.obj FSDB4.obj +RESFILES = FS4.res fs_iReg.dcr +RESDEPEN = $(RESFILES) +LIBFILES = +PACKAGES = vcl40.bpi vcldb40.bpi fs4.bpi +DEFFILE = +# --------------------------------------------------------------------------- +PATHCPP = .; +PATHASM = .; +PATHPAS = .; +PATHRC = .; +DEBUGLIBPATH = $(BCB)\lib\debug +RELEASELIBPATH = $(BCB)\lib\release +USERDEFINES = +SYSDEFINES = _RTLDLL;NO_STRICT;USEPACKAGES +# --------------------------------------------------------------------------- +CFLAG1 = -I$(BCB)\include;$(BCB)\include\vcl -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve -a8 \ + -k- -vi -c -b- -w-par -w-inl -Vx -tWM -D$(SYSDEFINES);$(USERDEFINES) +PFLAGS = -U$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \ + -I$(BCB)\include;$(BCB)\include\vcl -$Y- -$L- -$D- -v -JPHNE -M +RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl +AFLAGS = /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn +LFLAGS = -L$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \ + -D"FastScript 1.9 DB Components" -aa -Tpp -x -Gn -Gl -Gi +# --------------------------------------------------------------------------- +ALLOBJ = c0pkg32.obj Memmgr.Lib $(PACKAGES) sysinit.obj $(OBJFILES) +ALLRES = $(RESFILES) +ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib +# --------------------------------------------------------------------------- +!ifdef IDEOPTIONS + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[HistoryLists\hlIncludePath] +Count=1 +Item0=$(BCB)\include;$(BCB)\include\vcl + +[HistoryLists\hlLibraryPath] +Count=1 +Item0=$(BCB)\lib\obj;$(BCB)\lib + +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=$(BCB)\source\vcl + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +HostApplication= +RemoteHost= +RemotePath= +RemoteDebug=0 + +[Compiler] +InMemoryExe=0 +ShowInfoMsgs=0 + +!endif + +# --------------------------------------------------------------------------- +# MAKE SECTION +# --------------------------------------------------------------------------- +# This section of the project file is not used by the BCB IDE. It is for +# the benefit of building from the command-line using the MAKE utility. +# --------------------------------------------------------------------------- + +.autodepend +# --------------------------------------------------------------------------- +!if !$d(BCC32) +BCC32 = bcc32 +!endif + +!if !$d(CPP32) +CPP32 = cpp32 +!endif + +!if !$d(DCC32) +DCC32 = dcc32 +!endif + +!if !$d(TASM32) +TASM32 = tasm32 +!endif + +!if !$d(LINKER) +LINKER = ilink32 +!endif + +!if !$d(BRCC32) +BRCC32 = brcc32 +!endif + +# --------------------------------------------------------------------------- +!if $d(PATHCPP) +.PATH.CPP = $(PATHCPP) +.PATH.C = $(PATHCPP) +!endif + +!if $d(PATHPAS) +.PATH.PAS = $(PATHPAS) +!endif + +!if $d(PATHASM) +.PATH.ASM = $(PATHASM) +!endif + +!if $d(PATHRC) +.PATH.RC = $(PATHRC) +!endif +# --------------------------------------------------------------------------- +$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE) + $(BCB)\BIN\$(LINKER) @&&! + $(LFLAGS) + + $(ALLOBJ), + + $(PROJECT),, + + $(ALLLIB), + + $(DEFFILE), + + $(ALLRES) +! +# --------------------------------------------------------------------------- +.pas.hpp: + $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< } + +.pas.obj: + $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< } + +.cpp.obj: + $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< } + +.c.obj: + $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< } + +.c.i: + $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< } + +.cpp.i: + $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< } + +.asm.obj: + $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@ + +.rc.res: + $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $< +# --------------------------------------------------------------------------- diff --git a/FastScript/fsDB4.cpp b/FastScript/fsDB4.cpp new file mode 100644 index 0000000..e80af50 --- /dev/null +++ b/FastScript/fsDB4.cpp @@ -0,0 +1,19 @@ +//--------------------------------------------------------------------------- +#include +#pragma hdrstop +USERES("FS4.res"); +USEPACKAGE("vcl40.bpi"); +USEPACKAGE("vcldb40.bpi"); +USEPACKAGE("fs4.bpi"); +USEUNIT("fs_idbreg.pas"); +USERES("fs_ireg.dcr"); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- +// Package source. +//--------------------------------------------------------------------------- +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- diff --git a/FastScript/fsDB4.dpk b/FastScript/fsDB4.dpk new file mode 100644 index 0000000..3429456 --- /dev/null +++ b/FastScript/fsDB4.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 4 + +package fsDB4; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL40, + VCLDB40, + fs4; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + + +end. diff --git a/FastScript/fsDB5.bpk b/FastScript/fsDB5.bpk new file mode 100644 index 0000000..4b727e2 --- /dev/null +++ b/FastScript/fsDB5.bpk @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[HistoryLists\hlIncludePath] +Count=1 +Item0=$(BCB)\include;$(BCB)\include\vcl + +[HistoryLists\hlLibraryPath] +Count=1 +Item0=$(BCB)\lib\obj;$(BCB)\lib + +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=$(BCB)\source\vcl + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +HostApplication= +RemoteHost= +RemotePath= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + +[Language] +ActiveLang= +ProjectLang= +RootDir= + + \ No newline at end of file diff --git a/FastScript/fsDB5.cpp b/FastScript/fsDB5.cpp new file mode 100644 index 0000000..a00f350 --- /dev/null +++ b/FastScript/fsDB5.cpp @@ -0,0 +1,23 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +USERES("FS5.res"); +USEPACKAGE("vcl50.bpi"); +USEPACKAGE("vcldb50.bpi"); +USEPACKAGE("fs5.bpi"); +USEUNIT("fs_idbreg.pas"); +USERES("fs_iReg.dcr"); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- + +// Package source. +//--------------------------------------------------------------------------- + +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- diff --git a/FastScript/fsDB5.dpk b/FastScript/fsDB5.dpk new file mode 100644 index 0000000..670ca1c --- /dev/null +++ b/FastScript/fsDB5.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 5 + +package fsDB5; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL50, + VCLDB50, + fs5; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + + +end. diff --git a/FastScript/fsDB6.bpk b/FastScript/fsDB6.bpk new file mode 100644 index 0000000..a57859c --- /dev/null +++ b/FastScript/fsDB6.bpk @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[Excluded Packages] +d:\delphi\builder6\Projects\Bpl\FR6.bpl=FastReport 2.4 Components + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +Launcher= +UseLauncher=0 +DebugCWD= +HostApplication= +RemoteHost= +RemotePath= +RemoteLauncher= +RemoteCWD= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 +LinkCGLIB=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + +[Linker] +LibPrefix= +LibSuffix= +LibVersion= + + \ No newline at end of file diff --git a/FastScript/fsDB6.cpp b/FastScript/fsDB6.cpp new file mode 100644 index 0000000..f8b9781 --- /dev/null +++ b/FastScript/fsDB6.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +#pragma package(smart_init) +//--------------------------------------------------------------------------- + +// Package source. +//--------------------------------------------------------------------------- + +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- + \ No newline at end of file diff --git a/FastScript/fsDB6.dpk b/FastScript/fsDB6.dpk new file mode 100644 index 0000000..c72c556 --- /dev/null +++ b/FastScript/fsDB6.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 6 + +package fsDB6; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs6; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + + +end. diff --git a/FastScript/fsDB7.dpk b/FastScript/fsDB7.dpk new file mode 100644 index 0000000..045479e --- /dev/null +++ b/FastScript/fsDB7.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 7 + +package fsDB7; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs7; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + + +end. diff --git a/FastScript/fsDB9.dpk b/FastScript/fsDB9.dpk new file mode 100644 index 0000000..456067d --- /dev/null +++ b/FastScript/fsDB9.dpk @@ -0,0 +1,41 @@ +// Package file for Delphi 2005 + +package fsDB9; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + fs9; + +contains + fs_idbctrlsrtti in 'fs_idbctrlsrtti.pas', + fs_idbrtti in 'fs_idbrtti.pas'; + + +end. diff --git a/FastScript/fsFD15.dpk b/FastScript/fsFD15.dpk new file mode 100644 index 0000000..a02903c --- /dev/null +++ b/FastScript/fsFD15.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE + +package fsFD15; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} +{$DEFINE BUNDLE} + +requires + VCL, + VCLDB, + xmlrtl, + fs15, + fsDB15, + AnyDAC_Comp_D15, + AnyDAC_Phys_D15, + AnyDAC_ComI_D15; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD16.dpk b/FastScript/fsFD16.dpk new file mode 100644 index 0000000..6486155 --- /dev/null +++ b/FastScript/fsFD16.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE2 + +package fsFD16; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} +{$DEFINE BUNDLE} + +requires + VCL, + VCLDB, + xmlrtl, + fs16, + fsDB16, + AnyDAC_Comp_D16, + AnyDAC_Phys_D16, + AnyDAC_ComI_D16; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD17.dpk b/FastScript/fsFD17.dpk new file mode 100644 index 0000000..fe2986f --- /dev/null +++ b/FastScript/fsFD17.dpk @@ -0,0 +1,44 @@ +// Package file for Delphi XE3 + +package fsFD17; + +{$R *.res} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} +{$DEFINE BUNDLE} + +requires + VCL, + VCLDB, + xmlrtl, + fs17, + fsDB17, + AnyDAC_Comp_D17, + AnyDAC_Phys_D17, + AnyDAC_ComI_D17; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD18.dpk b/FastScript/fsFD18.dpk new file mode 100644 index 0000000..00d2d38 --- /dev/null +++ b/FastScript/fsFD18.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE4 + +package fsFD18; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + xmlrtl, + fs18, + fsDB18, + FireDAC, + FireDACCommon, + vclFireDAC; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD19.dpk b/FastScript/fsFD19.dpk new file mode 100644 index 0000000..fe9ec71 --- /dev/null +++ b/FastScript/fsFD19.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE5 + +package fsFD19; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + xmlrtl, + fs19, + fsDB19, + FireDAC, + FireDACCommon, + vclFireDAC; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD20.dpk b/FastScript/fsFD20.dpk new file mode 100644 index 0000000..05ed63c --- /dev/null +++ b/FastScript/fsFD20.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE6 + +package fsFD20; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + xmlrtl, + fs20, + fsDB20, + FireDAC, + FireDACCommon, + vclFireDAC; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD21.dpk b/FastScript/fsFD21.dpk new file mode 100644 index 0000000..141e7bb --- /dev/null +++ b/FastScript/fsFD21.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE7 + +package fsFD21; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + xmlrtl, + fs21, + fsDB21, + FireDAC, + FireDACCommon, + vclFireDAC; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD22.dpk b/FastScript/fsFD22.dpk new file mode 100644 index 0000000..b10712c --- /dev/null +++ b/FastScript/fsFD22.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi XE8 + +package fsFD22; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + xmlrtl, + fs22, + fsDB22, + FireDAC, + FireDACCommon, + vclFireDAC; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD23.dpk b/FastScript/fsFD23.dpk new file mode 100644 index 0000000..b477cff --- /dev/null +++ b/FastScript/fsFD23.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10 Seattle + +package fsFD23; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + xmlrtl, + fs23, + fsDB23, + FireDAC, + FireDACCommon, + vclFireDAC; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD24.dpk b/FastScript/fsFD24.dpk new file mode 100644 index 0000000..a9907c2 --- /dev/null +++ b/FastScript/fsFD24.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10.1 Berlin + +package fsFD24; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + xmlrtl, + fs24, + fsDB24, + FireDAC, + FireDACCommon, + vclFireDAC; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD25.dpk b/FastScript/fsFD25.dpk new file mode 100644 index 0000000..fc0c319 --- /dev/null +++ b/FastScript/fsFD25.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10.2 Tokyo + +package fsFD25; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + xmlrtl, + fs25, + fsDB25, + FireDAC, + FireDACCommon, + vclFireDAC; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD26.dpk b/FastScript/fsFD26.dpk new file mode 100644 index 0000000..5761aba --- /dev/null +++ b/FastScript/fsFD26.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10.3 Rio + +package fsFD26; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + xmlrtl, + fs26, + fsDB26, + FireDAC, + FireDACCommon, + vclFireDAC; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD27.dpk b/FastScript/fsFD27.dpk new file mode 100644 index 0000000..0655a21 --- /dev/null +++ b/FastScript/fsFD27.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 10.3 Rio + +package fsFD27; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + xmlrtl, + fs27, + fsDB27, + FireDAC, + FireDACCommon, + vclFireDAC; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD28.dpk b/FastScript/fsFD28.dpk new file mode 100644 index 0000000..5eedc20 --- /dev/null +++ b/FastScript/fsFD28.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 11.3 Rio + +package fsFD28; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + xmlrtl, + fs28, + fsDB28, + FireDAC, + FireDACCommon, + vclFireDAC; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsFD29.dpk b/FastScript/fsFD29.dpk new file mode 100644 index 0000000..e23ae6c --- /dev/null +++ b/FastScript/fsFD29.dpk @@ -0,0 +1,43 @@ +// Package file for Delphi 12 + +package fsFD29; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + xmlrtl, + fs29, + fsDB29, + FireDAC, + FireDACCommon, + vclFireDAC; + +contains + fs_ifdrtti in 'fs_ifdrtti.pas'; + +end. diff --git a/FastScript/fsIBX10.dpk b/FastScript/fsIBX10.dpk new file mode 100644 index 0000000..65e4900 --- /dev/null +++ b/FastScript/fsIBX10.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2006 + +package fsIBX10; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs10, + fsDB10; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + + +end. diff --git a/FastScript/fsIBX11.dpk b/FastScript/fsIBX11.dpk new file mode 100644 index 0000000..c23cc5c --- /dev/null +++ b/FastScript/fsIBX11.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2007 + +package fsIBX11; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs11, + fsDB11; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + + +end. diff --git a/FastScript/fsIBX12.dpk b/FastScript/fsIBX12.dpk new file mode 100644 index 0000000..a1d73e4 --- /dev/null +++ b/FastScript/fsIBX12.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2009 + +package fsIBX12; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs12, + fsDB12; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + + +end. diff --git a/FastScript/fsIBX14.dpk b/FastScript/fsIBX14.dpk new file mode 100644 index 0000000..50c3880 --- /dev/null +++ b/FastScript/fsIBX14.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 2010 + +package fsIBX14; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs14, + fsDB14; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX15.dpk b/FastScript/fsIBX15.dpk new file mode 100644 index 0000000..5466dd8 --- /dev/null +++ b/FastScript/fsIBX15.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE + +package fsIBX15; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs15, + fsDB15; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX16.dpk b/FastScript/fsIBX16.dpk new file mode 100644 index 0000000..03bd29b --- /dev/null +++ b/FastScript/fsIBX16.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE2 + +package fsIBX16; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs16, + fsDB16; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX17.dpk b/FastScript/fsIBX17.dpk new file mode 100644 index 0000000..d65c55e --- /dev/null +++ b/FastScript/fsIBX17.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE3 + +package fsIBX17; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs17, + fsDB17; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX18.dpk b/FastScript/fsIBX18.dpk new file mode 100644 index 0000000..b75af54 --- /dev/null +++ b/FastScript/fsIBX18.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE4 + +package fsIBX18; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs18, + fsDB18; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX19.dpk b/FastScript/fsIBX19.dpk new file mode 100644 index 0000000..053329e --- /dev/null +++ b/FastScript/fsIBX19.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE5 + +package fsIBX19; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs19, + fsDB19; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX20.dpk b/FastScript/fsIBX20.dpk new file mode 100644 index 0000000..8be4ffa --- /dev/null +++ b/FastScript/fsIBX20.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE6 + +package fsIBX20; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs20, + fsDB20; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX21.dpk b/FastScript/fsIBX21.dpk new file mode 100644 index 0000000..dd03f8f --- /dev/null +++ b/FastScript/fsIBX21.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE7 + +package fsIBX21; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs21, + fsDB21; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX22.dpk b/FastScript/fsIBX22.dpk new file mode 100644 index 0000000..3abd997 --- /dev/null +++ b/FastScript/fsIBX22.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi XE8 + +package fsIBX22; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs22, + fsDB22; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX23.dpk b/FastScript/fsIBX23.dpk new file mode 100644 index 0000000..7c867a4 --- /dev/null +++ b/FastScript/fsIBX23.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package fsIBX23; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs23, + fsDB23; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX24.dpk b/FastScript/fsIBX24.dpk new file mode 100644 index 0000000..291f0f4 --- /dev/null +++ b/FastScript/fsIBX24.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package fsIBX24; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs24, + fsDB24; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX25.dpk b/FastScript/fsIBX25.dpk new file mode 100644 index 0000000..a3c63db --- /dev/null +++ b/FastScript/fsIBX25.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package fsIBX25; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs25, + fsDB25; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX26.dpk b/FastScript/fsIBX26.dpk new file mode 100644 index 0000000..cb6b628 --- /dev/null +++ b/FastScript/fsIBX26.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package fsIBX26; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs26, + fsDB26; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX27.dpk b/FastScript/fsIBX27.dpk new file mode 100644 index 0000000..5ddc72a --- /dev/null +++ b/FastScript/fsIBX27.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 10 Seattle + +package fsIBX27; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs27, + fsDB27; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX28.dpk b/FastScript/fsIBX28.dpk new file mode 100644 index 0000000..a058907 --- /dev/null +++ b/FastScript/fsIBX28.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 11 Seattle + +package fsIBX28; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs28, + fsDB28; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX29.dpk b/FastScript/fsIBX29.dpk new file mode 100644 index 0000000..3369dfd --- /dev/null +++ b/FastScript/fsIBX29.dpk @@ -0,0 +1,40 @@ +// Package file for Delphi 12 + +package fsIBX29; + +{$I fs.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs29, + fsDB29; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + +end. diff --git a/FastScript/fsIBX5.bpk b/FastScript/fsIBX5.bpk new file mode 100644 index 0000000..9fada0f --- /dev/null +++ b/FastScript/fsIBX5.bpk @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[HistoryLists\hlIncludePath] +Count=1 +Item0=$(BCB)\include;$(BCB)\include\vcl + +[HistoryLists\hlLibraryPath] +Count=1 +Item0=$(BCB)\lib\obj;$(BCB)\lib + +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=$(BCB)\source\vcl + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +HostApplication= +RemoteHost= +RemotePath= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + +[Language] +ActiveLang= +ProjectLang= +RootDir= + + \ No newline at end of file diff --git a/FastScript/fsIBX5.cpp b/FastScript/fsIBX5.cpp new file mode 100644 index 0000000..ca708ed --- /dev/null +++ b/FastScript/fsIBX5.cpp @@ -0,0 +1,26 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +USERES("FS5.res"); +USEPACKAGE("vcl50.bpi"); +USEPACKAGE("vcldb50.bpi"); +USEPACKAGE("vclib50.bpi"); +USEPACKAGE("fs5.bpi"); +USEPACKAGE("fsDB5.bpi"); +USEUNIT("fs_iibxreg.pas"); +USEUNIT("fs_iibxrtti.pas"); +USERES("fs_iReg.dcr"); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- + +// Package source. +//--------------------------------------------------------------------------- + +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- diff --git a/FastScript/fsIBX5.dpk b/FastScript/fsIBX5.dpk new file mode 100644 index 0000000..67c6d1e --- /dev/null +++ b/FastScript/fsIBX5.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 5 + +package fsIBX5; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL50, + VCLDB50, + VCLIB50, + fs5, + fsDB5; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + + +end. diff --git a/FastScript/fsIBX6.bpk b/FastScript/fsIBX6.bpk new file mode 100644 index 0000000..4795716 --- /dev/null +++ b/FastScript/fsIBX6.bpk @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[Excluded Packages] + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +Launcher= +UseLauncher=0 +DebugCWD= +HostApplication= +RemoteHost= +RemotePath= +RemoteLauncher= +RemoteCWD= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 +LinkCGLIB=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + +[Linker] +LibPrefix= +LibSuffix= +LibVersion= + + \ No newline at end of file diff --git a/FastScript/fsIBX6.cpp b/FastScript/fsIBX6.cpp new file mode 100644 index 0000000..f8b9781 --- /dev/null +++ b/FastScript/fsIBX6.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +#pragma package(smart_init) +//--------------------------------------------------------------------------- + +// Package source. +//--------------------------------------------------------------------------- + +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- + \ No newline at end of file diff --git a/FastScript/fsIBX6.dpk b/FastScript/fsIBX6.dpk new file mode 100644 index 0000000..f18d8bb --- /dev/null +++ b/FastScript/fsIBX6.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 6 + +package fsIBX6; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs6, + fsDB6; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + + +end. diff --git a/FastScript/fsIBX7.dpk b/FastScript/fsIBX7.dpk new file mode 100644 index 0000000..6b5de3f --- /dev/null +++ b/FastScript/fsIBX7.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 7 + +package fsIBX7; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs7, + fsDB7; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + + +end. diff --git a/FastScript/fsIBX9.dpk b/FastScript/fsIBX9.dpk new file mode 100644 index 0000000..b9bd413 --- /dev/null +++ b/FastScript/fsIBX9.dpk @@ -0,0 +1,42 @@ +// Package file for Delphi 2005 + +package fsIBX9; + +{$I fs.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, + VCLDB, + IBXPRESS, + fs9, + fsDB9; + +contains + fs_iibxrtti in 'fs_iibxrtti.pas'; + + +end. diff --git a/FastScript/fsTee10.dpk b/FastScript/fsTee10.dpk new file mode 100644 index 0000000..7deeae0 --- /dev/null +++ b/FastScript/fsTee10.dpk @@ -0,0 +1,52 @@ +// Package file for Delphi 2006 + +package fsTee10; + +{$I fs.inc} +{$I tee.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE710, {$ENDIF} +{$IFDEF TeeChartStd8}TEE810, {$ENDIF} +{$IFDEF TeeChartStd9}TEE910, {$ENDIF} +{$IFDEF TeeChart4} TEE410, {$ENDIF} +{$IFDEF TeeChart5} TEE510, {$ENDIF} +{$IFDEF TeeChart6} TEE610, {$ENDIF} +{$IFDEF TeeChart7} TEE710, {$ENDIF} +{$IFDEF TeeChart8} TEE810, {$ENDIF} +{$IFDEF TeeChart9} TEE910, {$ENDIF} + VCLX, + fs10; + + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + + +end. diff --git a/FastScript/fsTee11.dpk b/FastScript/fsTee11.dpk new file mode 100644 index 0000000..5267d76 --- /dev/null +++ b/FastScript/fsTee11.dpk @@ -0,0 +1,52 @@ +// Package file for Delphi 2007 + +package fsTee11; + +{$I fs.inc} +{$I tee.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE711, {$ENDIF} +{$IFDEF TeeChartStd8}TEE811, {$ENDIF} +{$IFDEF TeeChartStd9}TEE911, {$ENDIF} +{$IFDEF TeeChart4} TEE411, {$ENDIF} +{$IFDEF TeeChart5} TEE511, {$ENDIF} +{$IFDEF TeeChart6} TEE611, {$ENDIF} +{$IFDEF TeeChart7} TEE711, {$ENDIF} +{$IFDEF TeeChart8} TEE811, {$ENDIF} +{$IFDEF TeeChart9} TEE911, {$ENDIF} + VCLX, + fs11; + + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + + +end. diff --git a/FastScript/fsTee12.dpk b/FastScript/fsTee12.dpk new file mode 100644 index 0000000..c6f15b4 --- /dev/null +++ b/FastScript/fsTee12.dpk @@ -0,0 +1,52 @@ +// Package file for Delphi 2009 + +package fsTee12; + +{$I fs.inc} +{$I tee.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE712, {$ENDIF} +{$IFDEF TeeChartStd8}TEE812, {$ENDIF} +{$IFDEF TeeChartStd9}TEE912, {$ENDIF} +{$IFDEF TeeChart4} TEE412, {$ENDIF} +{$IFDEF TeeChart5} TEE512, {$ENDIF} +{$IFDEF TeeChart6} TEE612, {$ENDIF} +{$IFDEF TeeChart7} TEE712, {$ENDIF} +{$IFDEF TeeChart8} TEE812, {$ENDIF} +{$IFDEF TeeChart9} TEE912, {$ENDIF} + VCLX, + fs12; + + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + + +end. diff --git a/FastScript/fsTee14.dpk b/FastScript/fsTee14.dpk new file mode 100644 index 0000000..f03cdc4 --- /dev/null +++ b/FastScript/fsTee14.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi 2010 + +package fsTee14; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE714, {$ENDIF} +{$IFDEF TeeChartStd8}TEE814, {$ENDIF} +{$IFDEF TeeChartStd9}TEE914, {$ENDIF} +{$IFDEF TeeChart4} TEE414, {$ENDIF} +{$IFDEF TeeChart5} TEE514, {$ENDIF} +{$IFDEF TeeChart6} TEE614, {$ENDIF} +{$IFDEF TeeChart7} TEE714, {$ENDIF} +{$IFDEF TeeChart8} TEE814, {$ENDIF} +{$IFDEF TeeChart9} TEE914, {$ENDIF} + VCLX, + fs14; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee15.dpk b/FastScript/fsTee15.dpk new file mode 100644 index 0000000..0936c3f --- /dev/null +++ b/FastScript/fsTee15.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi XE + +package fsTee15; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE715, {$ENDIF} +{$IFDEF TeeChartStd8}TEE815, {$ENDIF} +{$IFDEF TeeChartStd9}TEE915, {$ENDIF} +{$IFDEF TeeChart4} TEE415, {$ENDIF} +{$IFDEF TeeChart5} TEE515, {$ENDIF} +{$IFDEF TeeChart6} TEE615, {$ENDIF} +{$IFDEF TeeChart7} TEE715, {$ENDIF} +{$IFDEF TeeChart8} TEE815, {$ENDIF} +{$IFDEF TeeChart9} TEE915, {$ENDIF} + VCLX, + fs15; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee16.dpk b/FastScript/fsTee16.dpk new file mode 100644 index 0000000..737d44d --- /dev/null +++ b/FastScript/fsTee16.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi XE2 + +package fsTee16; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE716, {$ENDIF} +{$IFDEF TeeChartStd8}TEE816, {$ENDIF} +{$IFDEF TeeChartStd9}TEE916, {$ENDIF} +{$IFDEF TeeChart4} TEE416, {$ENDIF} +{$IFDEF TeeChart5} TEE516, {$ENDIF} +{$IFDEF TeeChart6} TEE616, {$ENDIF} +{$IFDEF TeeChart7} TEE716, {$ENDIF} +{$IFDEF TeeChart8} TEE816, {$ENDIF} +{$IFDEF TeeChart9} TEE916, {$ENDIF} + VCLX, + fs16; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee17.dpk b/FastScript/fsTee17.dpk new file mode 100644 index 0000000..ae74ce1 --- /dev/null +++ b/FastScript/fsTee17.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi XE3 + +package fsTee17; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE717, {$ENDIF} +{$IFDEF TeeChartStd8}TEE817, {$ENDIF} +{$IFDEF TeeChartStd9}TEE917, {$ENDIF} +{$IFDEF TeeChart4} TEE417, {$ENDIF} +{$IFDEF TeeChart5} TEE517, {$ENDIF} +{$IFDEF TeeChart6} TEE617, {$ENDIF} +{$IFDEF TeeChart7} TEE717, {$ENDIF} +{$IFDEF TeeChart8} TEE817, {$ENDIF} +{$IFDEF TeeChart9} TEE917, {$ENDIF} + VCLX, + fs17; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee18.dpk b/FastScript/fsTee18.dpk new file mode 100644 index 0000000..bc86af4 --- /dev/null +++ b/FastScript/fsTee18.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi XE4 + +package fsTee18; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE718, {$ENDIF} +{$IFDEF TeeChartStd8}TEE818, {$ENDIF} +{$IFDEF TeeChartStd9}TEE918, {$ENDIF} +{$IFDEF TeeChart4} TEE418, {$ENDIF} +{$IFDEF TeeChart5} TEE518, {$ENDIF} +{$IFDEF TeeChart6} TEE618, {$ENDIF} +{$IFDEF TeeChart7} TEE718, {$ENDIF} +{$IFDEF TeeChart8} TEE818, {$ENDIF} +{$IFDEF TeeChart9} TEE918, {$ENDIF} + VCLX, + fs18; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee19.dpk b/FastScript/fsTee19.dpk new file mode 100644 index 0000000..7227c0d --- /dev/null +++ b/FastScript/fsTee19.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi XE5 + +package fsTee19; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE719, {$ENDIF} +{$IFDEF TeeChartStd8}TEE819, {$ENDIF} +{$IFDEF TeeChartStd9}TEE919, {$ENDIF} +{$IFDEF TeeChart4} TEE419, {$ENDIF} +{$IFDEF TeeChart5} TEE519, {$ENDIF} +{$IFDEF TeeChart6} TEE619, {$ENDIF} +{$IFDEF TeeChart7} TEE719, {$ENDIF} +{$IFDEF TeeChart8} TEE819, {$ENDIF} +{$IFDEF TeeChart9} TEE919, {$ENDIF} + VCLX, + fs19; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee20.dpk b/FastScript/fsTee20.dpk new file mode 100644 index 0000000..bac3ca3 --- /dev/null +++ b/FastScript/fsTee20.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi XE6 + +package fsTee20; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE720, {$ENDIF} +{$IFDEF TeeChartStd8}TEE820, {$ENDIF} +{$IFDEF TeeChartStd9}TEE920, {$ENDIF} +{$IFDEF TeeChart4} TEE420, {$ENDIF} +{$IFDEF TeeChart5} TEE520, {$ENDIF} +{$IFDEF TeeChart6} TEE620, {$ENDIF} +{$IFDEF TeeChart7} TEE720, {$ENDIF} +{$IFDEF TeeChart8} TEE820, {$ENDIF} +{$IFDEF TeeChart9} TEE920, {$ENDIF} + VCLX, + fs20; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee21.dpk b/FastScript/fsTee21.dpk new file mode 100644 index 0000000..53c1e32 --- /dev/null +++ b/FastScript/fsTee21.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi XE7 + +package fsTee21; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE721, {$ENDIF} +{$IFDEF TeeChartStd8}TEE821, {$ENDIF} +{$IFDEF TeeChartStd9}TEE921, {$ENDIF} +{$IFDEF TeeChart4} TEE421, {$ENDIF} +{$IFDEF TeeChart5} TEE521, {$ENDIF} +{$IFDEF TeeChart6} TEE621, {$ENDIF} +{$IFDEF TeeChart7} TEE721, {$ENDIF} +{$IFDEF TeeChart8} TEE821, {$ENDIF} +{$IFDEF TeeChart9} TEE921, {$ENDIF} + VCLX, + fs21; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee22.dpk b/FastScript/fsTee22.dpk new file mode 100644 index 0000000..21a7bde --- /dev/null +++ b/FastScript/fsTee22.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi XE8 + +package fsTee22; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE722, {$ENDIF} +{$IFDEF TeeChartStd8}TEE822, {$ENDIF} +{$IFDEF TeeChartStd9}TEE922, {$ENDIF} +{$IFDEF TeeChart4} TEE422, {$ENDIF} +{$IFDEF TeeChart5} TEE522, {$ENDIF} +{$IFDEF TeeChart6} TEE622, {$ENDIF} +{$IFDEF TeeChart7} TEE722, {$ENDIF} +{$IFDEF TeeChart8} TEE822, {$ENDIF} +{$IFDEF TeeChart9} TEE922, {$ENDIF} + VCLX, + fs22; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee23.dpk b/FastScript/fsTee23.dpk new file mode 100644 index 0000000..4be1127 --- /dev/null +++ b/FastScript/fsTee23.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi 10 Seattle + +package fsTee23; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE723, {$ENDIF} +{$IFDEF TeeChartStd8}TEE823, {$ENDIF} +{$IFDEF TeeChartStd9}TEE923, {$ENDIF} +{$IFDEF TeeChart4} TEE423, {$ENDIF} +{$IFDEF TeeChart5} TEE523, {$ENDIF} +{$IFDEF TeeChart6} TEE623, {$ENDIF} +{$IFDEF TeeChart7} TEE723, {$ENDIF} +{$IFDEF TeeChart8} TEE823, {$ENDIF} +{$IFDEF TeeChart9} TEE923, {$ENDIF} + VCLX, + fs23; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee24.dpk b/FastScript/fsTee24.dpk new file mode 100644 index 0000000..0cf4a48 --- /dev/null +++ b/FastScript/fsTee24.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi 10 Seattle + +package fsTee24; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE724, {$ENDIF} +{$IFDEF TeeChartStd8}TEE824, {$ENDIF} +{$IFDEF TeeChartStd9}TEE924, {$ENDIF} +{$IFDEF TeeChart4} TEE424, {$ENDIF} +{$IFDEF TeeChart5} TEE524, {$ENDIF} +{$IFDEF TeeChart6} TEE624, {$ENDIF} +{$IFDEF TeeChart7} TEE724, {$ENDIF} +{$IFDEF TeeChart8} TEE824, {$ENDIF} +{$IFDEF TeeChart9} TEE924, {$ENDIF} + VCLX, + fs24; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee25.dpk b/FastScript/fsTee25.dpk new file mode 100644 index 0000000..2cd2e78 --- /dev/null +++ b/FastScript/fsTee25.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi 10 Seattle + +package fsTee25; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE725, {$ENDIF} +{$IFDEF TeeChartStd8}TEE825, {$ENDIF} +{$IFDEF TeeChartStd9}TEE925, {$ENDIF} +{$IFDEF TeeChart4} TEE425, {$ENDIF} +{$IFDEF TeeChart5} TEE525, {$ENDIF} +{$IFDEF TeeChart6} TEE625, {$ENDIF} +{$IFDEF TeeChart7} TEE725, {$ENDIF} +{$IFDEF TeeChart8} TEE825, {$ENDIF} +{$IFDEF TeeChart9} TEE925, {$ENDIF} + VCLX, + fs25; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee26.dpk b/FastScript/fsTee26.dpk new file mode 100644 index 0000000..5a15b48 --- /dev/null +++ b/FastScript/fsTee26.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi 10 Seattle + +package fsTee26; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE726, {$ENDIF} +{$IFDEF TeeChartStd8}TEE826, {$ENDIF} +{$IFDEF TeeChartStd9}TEE926, {$ENDIF} +{$IFDEF TeeChart4} TEE426, {$ENDIF} +{$IFDEF TeeChart5} TEE526, {$ENDIF} +{$IFDEF TeeChart6} TEE626, {$ENDIF} +{$IFDEF TeeChart7} TEE726, {$ENDIF} +{$IFDEF TeeChart8} TEE826, {$ENDIF} +{$IFDEF TeeChart9} TEE926, {$ENDIF} + VCLX, + fs26; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee27.dpk b/FastScript/fsTee27.dpk new file mode 100644 index 0000000..a178105 --- /dev/null +++ b/FastScript/fsTee27.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi 10 Seattle + +package fsTee27; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE727, {$ENDIF} +{$IFDEF TeeChartStd8}TEE827, {$ENDIF} +{$IFDEF TeeChartStd9}TEE927, {$ENDIF} +{$IFDEF TeeChart4} TEE427, {$ENDIF} +{$IFDEF TeeChart5} TEE527, {$ENDIF} +{$IFDEF TeeChart6} TEE627, {$ENDIF} +{$IFDEF TeeChart7} TEE727, {$ENDIF} +{$IFDEF TeeChart8} TEE827, {$ENDIF} +{$IFDEF TeeChart9} TEE927, {$ENDIF} + VCLX, + fs27; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee28.dpk b/FastScript/fsTee28.dpk new file mode 100644 index 0000000..38fc436 --- /dev/null +++ b/FastScript/fsTee28.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi 11 Seattle + +package fsTee28; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE728, {$ENDIF} +{$IFDEF TeeChartStd8}TEE828, {$ENDIF} +{$IFDEF TeeChartStd9}TEE928, {$ENDIF} +{$IFDEF TeeChart4} TEE428, {$ENDIF} +{$IFDEF TeeChart5} TEE528, {$ENDIF} +{$IFDEF TeeChart6} TEE628, {$ENDIF} +{$IFDEF TeeChart7} TEE728, {$ENDIF} +{$IFDEF TeeChart8} TEE828, {$ENDIF} +{$IFDEF TeeChart9} TEE928, {$ENDIF} + VCLX, + fs28; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee29.dpk b/FastScript/fsTee29.dpk new file mode 100644 index 0000000..e2b4190 --- /dev/null +++ b/FastScript/fsTee29.dpk @@ -0,0 +1,49 @@ +// Package file for Delphi 12 + +package fsTee29; + +{$I fs.inc} +{$I tee.inc} +{$ALIGN 8} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} +{$DEBUGINFO ON} +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE729, {$ENDIF} +{$IFDEF TeeChartStd8}TEE829, {$ENDIF} +{$IFDEF TeeChartStd9}TEE929, {$ENDIF} +{$IFDEF TeeChart4} TEE429, {$ENDIF} +{$IFDEF TeeChart5} TEE529, {$ENDIF} +{$IFDEF TeeChart6} TEE629, {$ENDIF} +{$IFDEF TeeChart7} TEE729, {$ENDIF} +{$IFDEF TeeChart8} TEE829, {$ENDIF} +{$IFDEF TeeChart9} TEE929, {$ENDIF} + VCLX, + fs29; + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + +end. diff --git a/FastScript/fsTee4.bpk b/FastScript/fsTee4.bpk new file mode 100644 index 0000000..5b6bc39 --- /dev/null +++ b/FastScript/fsTee4.bpk @@ -0,0 +1,187 @@ +# --------------------------------------------------------------------------- +!if !$d(BCB) +BCB = $(MAKEDIR)\.. +!endif + +# --------------------------------------------------------------------------- +# IDE SECTION +# --------------------------------------------------------------------------- +# The following section of the project makefile is managed by the BCB IDE. +# It is recommended to use the IDE to change any of the values in this +# section. +# --------------------------------------------------------------------------- + +VERSION = BCB.04.04 +# --------------------------------------------------------------------------- +PROJECT = FSTee4.bpl +OBJFILES = fs_iteereg.obj FSTee4.obj fs_ichartrtti.obj +RESFILES = FS4.res fs_iReg.dcr +RESDEPEN = $(RESFILES) +LIBFILES = +PACKAGES = vcl40.bpi vclx40.bpi tee40.bpi fs4.bpi +DEFFILE = +# --------------------------------------------------------------------------- +PATHCPP = .; +PATHASM = .; +PATHPAS = .; +PATHRC = .; +DEBUGLIBPATH = $(BCB)\lib\debug +RELEASELIBPATH = $(BCB)\lib\release +USERDEFINES = +SYSDEFINES = _RTLDLL;NO_STRICT;USEPACKAGES +# --------------------------------------------------------------------------- +CFLAG1 = -I$(BCB)\include;$(BCB)\include\vcl -O2 -Hc -H=$(BCB)\lib\vcl40.csm -w -Ve -a8 \ + -k- -vi -c -b- -w-par -w-inl -Vx -tWM -D$(SYSDEFINES);$(USERDEFINES) +PFLAGS = -U$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \ + -I$(BCB)\include;$(BCB)\include\vcl -$Y- -$L- -$D- -v -JPHNE -M +RFLAGS = -i$(BCB)\include;$(BCB)\include\vcl +AFLAGS = /i$(BCB)\include /i$(BCB)\include\vcl /mx /w2 /zn +LFLAGS = -L$(BCB)\Projects\Lib;$(BCB)\lib\obj;$(BCB)\lib;$(RELEASELIBPATH) \ + -D"FastScript 1.9 Tee Components" -aa -Tpp -x -Gn -Gl -Gi +# --------------------------------------------------------------------------- +ALLOBJ = c0pkg32.obj Memmgr.Lib $(PACKAGES) sysinit.obj $(OBJFILES) +ALLRES = $(RESFILES) +ALLLIB = $(LIBFILES) $(LIBRARIES) import32.lib cp32mti.lib +# --------------------------------------------------------------------------- +!ifdef IDEOPTIONS + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[HistoryLists\hlIncludePath] +Count=1 +Item0=$(BCB)\include;$(BCB)\include\vcl + +[HistoryLists\hlLibraryPath] +Count=1 +Item0=$(BCB)\lib\obj;$(BCB)\lib + +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=$(BCB)\source\vcl + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +HostApplication= +RemoteHost= +RemotePath= +RemoteDebug=0 + +[Compiler] +InMemoryExe=0 +ShowInfoMsgs=0 + +!endif + +# --------------------------------------------------------------------------- +# MAKE SECTION +# --------------------------------------------------------------------------- +# This section of the project file is not used by the BCB IDE. It is for +# the benefit of building from the command-line using the MAKE utility. +# --------------------------------------------------------------------------- + +.autodepend +# --------------------------------------------------------------------------- +!if !$d(BCC32) +BCC32 = bcc32 +!endif + +!if !$d(CPP32) +CPP32 = cpp32 +!endif + +!if !$d(DCC32) +DCC32 = dcc32 +!endif + +!if !$d(TASM32) +TASM32 = tasm32 +!endif + +!if !$d(LINKER) +LINKER = ilink32 +!endif + +!if !$d(BRCC32) +BRCC32 = brcc32 +!endif + +# --------------------------------------------------------------------------- +!if $d(PATHCPP) +.PATH.CPP = $(PATHCPP) +.PATH.C = $(PATHCPP) +!endif + +!if $d(PATHPAS) +.PATH.PAS = $(PATHPAS) +!endif + +!if $d(PATHASM) +.PATH.ASM = $(PATHASM) +!endif + +!if $d(PATHRC) +.PATH.RC = $(PATHRC) +!endif +# --------------------------------------------------------------------------- +$(PROJECT): $(OBJFILES) $(RESDEPEN) $(DEFFILE) + $(BCB)\BIN\$(LINKER) @&&! + $(LFLAGS) + + $(ALLOBJ), + + $(PROJECT),, + + $(ALLLIB), + + $(DEFFILE), + + $(ALLRES) +! +# --------------------------------------------------------------------------- +.pas.hpp: + $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< } + +.pas.obj: + $(BCB)\BIN\$(DCC32) $(PFLAGS) {$< } + +.cpp.obj: + $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< } + +.c.obj: + $(BCB)\BIN\$(BCC32) $(CFLAG1) -n$(@D) {$< } + +.c.i: + $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< } + +.cpp.i: + $(BCB)\BIN\$(CPP32) $(CFLAG1) -n. {$< } + +.asm.obj: + $(BCB)\BIN\$(TASM32) $(AFLAGS) $<, $@ + +.rc.res: + $(BCB)\BIN\$(BRCC32) $(RFLAGS) -fo$@ $< +# --------------------------------------------------------------------------- diff --git a/FastScript/fsTee4.cpp b/FastScript/fsTee4.cpp new file mode 100644 index 0000000..d5452c2 --- /dev/null +++ b/FastScript/fsTee4.cpp @@ -0,0 +1,21 @@ +//--------------------------------------------------------------------------- +#include +#pragma hdrstop +USERES("FS4.res"); +USEPACKAGE("vcl40.bpi"); +USEPACKAGE("vclx40.bpi"); +USEPACKAGE("tee40.bpi"); +USEPACKAGE("fs4.bpi"); +USEUNIT("fs_iteeReg.pas"); +USEUNIT("fs_ichartrtti.pas"); +USERES("fs_iReg.dcr"); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- +// Package source. +//--------------------------------------------------------------------------- +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- diff --git a/FastScript/fsTee4.dpk b/FastScript/fsTee4.dpk new file mode 100644 index 0000000..f8aefa8 --- /dev/null +++ b/FastScript/fsTee4.dpk @@ -0,0 +1,48 @@ +// Package file for Delphi 4 + +package fsTee4; + +{$I fs.inc} +{$I tee.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL40, +{$IFDEF TeeChartStd} TEE40, {$ENDIF} +{$IFDEF TeeChart4} TEE44, {$ENDIF} +{$IFDEF TeeChart5} TEE54, {$ENDIF} +{$IFDEF TeeChart6} TEE64, {$ENDIF} +{$IFDEF TeeChart7} TEE74, {$ENDIF} +{$IFDEF TeeChart8} TEE84, {$ENDIF} + VCLX40, + fs4; + + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + + +end. diff --git a/FastScript/fsTee5.bpk b/FastScript/fsTee5.bpk new file mode 100644 index 0000000..8e87a0e --- /dev/null +++ b/FastScript/fsTee5.bpk @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=9 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[HistoryLists\hlIncludePath] +Count=1 +Item0=$(BCB)\include;$(BCB)\include\vcl + +[HistoryLists\hlLibraryPath] +Count=1 +Item0=$(BCB)\lib\obj;$(BCB)\lib + +[HistoryLists\hlDebugSourcePath] +Count=1 +Item0=$(BCB)\source\vcl + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +HostApplication= +RemoteHost= +RemotePath= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + +[Language] +ActiveLang= +ProjectLang= +RootDir= + + \ No newline at end of file diff --git a/FastScript/fsTee5.cpp b/FastScript/fsTee5.cpp new file mode 100644 index 0000000..f6b90b6 --- /dev/null +++ b/FastScript/fsTee5.cpp @@ -0,0 +1,25 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +USERES("FS5.res"); +USEPACKAGE("vcl50.bpi"); +USEPACKAGE("vclx50.bpi"); +USEPACKAGE("tee50.bpi"); +USEPACKAGE("fs5.bpi"); +USEUNIT("fs_iteereg.pas"); +USEUNIT("fs_ichartrtti.pas"); +USERES("fs_iReg.dcr"); +//--------------------------------------------------------------------------- +#pragma package(smart_init) +//--------------------------------------------------------------------------- + +// Package source. +//--------------------------------------------------------------------------- + +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- diff --git a/FastScript/fsTee5.dpk b/FastScript/fsTee5.dpk new file mode 100644 index 0000000..f43c9d4 --- /dev/null +++ b/FastScript/fsTee5.dpk @@ -0,0 +1,48 @@ +// Package file for Delphi 5 + +package fsTee5; + +{$I fs.inc} +{$I tee.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL50, +{$IFDEF TeeChartStd} TEE50, {$ENDIF} +{$IFDEF TeeChart4} TEE45, {$ENDIF} +{$IFDEF TeeChart5} TEE55, {$ENDIF} +{$IFDEF TeeChart6} TEE65, {$ENDIF} +{$IFDEF TeeChart7} TEE75, {$ENDIF} +{$IFDEF TeeChart8} TEE85, {$ENDIF} + VCLX50, + fs5; + + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + + +end. diff --git a/FastScript/fsTee6.bpk b/FastScript/fsTee6.bpk new file mode 100644 index 0000000..30ca49c --- /dev/null +++ b/FastScript/fsTee6.bpk @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=1 +MinorVer=9 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[Excluded Packages] +d:\delphi\builder6\Projects\Bpl\FR6.bpl=FastReport 2.4 Components + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +Launcher= +UseLauncher=0 +DebugCWD= +HostApplication= +RemoteHost= +RemotePath= +RemoteLauncher= +RemoteCWD= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 +LinkCGLIB=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + +[Linker] +LibPrefix= +LibSuffix= +LibVersion= + + \ No newline at end of file diff --git a/FastScript/fsTee6.cpp b/FastScript/fsTee6.cpp new file mode 100644 index 0000000..f8b9781 --- /dev/null +++ b/FastScript/fsTee6.cpp @@ -0,0 +1,17 @@ +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +#pragma package(smart_init) +//--------------------------------------------------------------------------- + +// Package source. +//--------------------------------------------------------------------------- + +#pragma argsused +int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) +{ + return 1; +} +//--------------------------------------------------------------------------- + \ No newline at end of file diff --git a/FastScript/fsTee6.dpk b/FastScript/fsTee6.dpk new file mode 100644 index 0000000..de14ea5 --- /dev/null +++ b/FastScript/fsTee6.dpk @@ -0,0 +1,48 @@ +// Package file for Delphi 6 + +package fsTee6; + +{$I fs.inc} +{$I tee.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChart4} TEE46, {$ENDIF} +{$IFDEF TeeChart5} TEE56, {$ENDIF} +{$IFDEF TeeChart6} TEE66, {$ENDIF} +{$IFDEF TeeChart7} TEE76, {$ENDIF} +{$IFDEF TeeChart8} TEE86, {$ENDIF} + VCLX, + fs6; + + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + + +end. diff --git a/FastScript/fsTee7.dpk b/FastScript/fsTee7.dpk new file mode 100644 index 0000000..22108f0 --- /dev/null +++ b/FastScript/fsTee7.dpk @@ -0,0 +1,52 @@ +// Package file for Delphi 7 + +package fsTee7; + +{$I fs.inc} +{$I tee.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE77, {$ENDIF} +{$IFDEF TeeChartStd8}TEE87, {$ENDIF} +{$IFDEF TeeChartStd9}TEE97, {$ENDIF} +{$IFDEF TeeChart4} TEE47, {$ENDIF} +{$IFDEF TeeChart5} TEE57, {$ENDIF} +{$IFDEF TeeChart6} TEE67, {$ENDIF} +{$IFDEF TeeChart7} TEE77, {$ENDIF} +{$IFDEF TeeChart8} TEE87, {$ENDIF} +{$IFDEF TeeChart9} TEE97, {$ENDIF} + VCLX, + fs7; + + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + + +end. diff --git a/FastScript/fsTee9.dpk b/FastScript/fsTee9.dpk new file mode 100644 index 0000000..cdd566b --- /dev/null +++ b/FastScript/fsTee9.dpk @@ -0,0 +1,52 @@ +// Package file for Delphi 2005 + +package fsTee9; + +{$I fs.inc} +{$I tee.inc} + +{$ALIGN ON} +{$ASSERTIONS ON} +{$BOOLEVAL OFF} + +{$EXTENDEDSYNTAX ON} +{$IMPORTEDDATA ON} +{$IOCHECKS ON} +{$LOCALSYMBOLS ON} +{$LONGSTRINGS ON} +{$OPENSTRINGS ON} +{$OPTIMIZATION ON} +{$OVERFLOWCHECKS OFF} +{$RANGECHECKS OFF} +{$REFERENCEINFO ON} +{$SAFEDIVIDE OFF} +{$STACKFRAMES OFF} +{$TYPEDADDRESS OFF} +{$VARSTRINGCHECKS ON} +{$WRITEABLECONST ON} +{$MINENUMSIZE 1} +{$IMAGEBASE $00400000} +{$RUNONLY} +{$IMPLICITBUILD OFF} + +requires + VCL, +{$IFDEF TeeChartStd} TEE, {$ENDIF} +{$IFDEF TeeChartStd7}TEE79, {$ENDIF} +{$IFDEF TeeChartStd8}TEE89, {$ENDIF} +{$IFDEF TeeChartStd9}TEE99, {$ENDIF} +{$IFDEF TeeChart4} TEE49, {$ENDIF} +{$IFDEF TeeChart5} TEE59, {$ENDIF} +{$IFDEF TeeChart6} TEE69, {$ENDIF} +{$IFDEF TeeChart7} TEE79, {$ENDIF} +{$IFDEF TeeChart8} TEE89, {$ENDIF} +{$IFDEF TeeChart9} TEE99, {$ENDIF} + VCLX, + fs9; + + +contains + fs_ichartrtti in 'fs_ichartrtti.pas'; + + +end. diff --git a/FastScript/fs_iadoreg.pas b/FastScript/fs_iadoreg.pas new file mode 100644 index 0000000..0c77572 --- /dev/null +++ b/FastScript/fs_iadoreg.pas @@ -0,0 +1,45 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_iadoreg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + Classes +{$IFNDEF Delphi6} +, DsgnIntf +{$ELSE} +, DesignIntf +{$ENDIF} +{$IFDEF DELPHI16} +, Controls +{$ENDIF} +, fs_iadortti; + +{-----------------------------------------------------------------------} + +procedure Register; +begin +{$IFDEF DELPHI16} + //GroupDescendentsWith(TfsADORTTI, TControl); +{$ENDIF} + RegisterComponents('FastScript', [TfsADORTTI]); +end; + +end. diff --git a/FastScript/fs_iadortti.pas b/FastScript/fs_iadortti.pas new file mode 100644 index 0000000..ac053e4 --- /dev/null +++ b/FastScript/fs_iadortti.pas @@ -0,0 +1,135 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ ADO classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_iadortti; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_iinterpreter, fs_itools, fs_idbrtti, + {$IFDEF DELPHI16}Controls, System.Types, + Data.DB, Data.Win.ADODB, Winapi.ADOInt; + {$ELSE} + DB, ADODB, ADOInt; + {$ENDIF} + +type +{$i frxPlatformsAttribute.inc} + TfsADORTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddType('TDataType', fvtInt); + AddClass(TADOConnection, 'TComponent'); + AddClass(TParameter, 'TCollectionItem'); + with AddClass(TParameters, 'TCollection') do + begin + AddMethod('function AddParameter: TParameter', CallMethod); + AddDefaultProperty('Items', 'Integer', 'TParameter', CallMethod, True); + end; + with AddClass(TCustomADODataSet, 'TDataSet') do + begin + AddProperty('Sort', 'WideString', GetProp, SetProp); + end; + AddClass(TADOTable, 'TCustomADODataSet'); + with AddClass(TADOQuery, 'TCustomADODataSet') do + AddMethod('procedure ExecSQL', CallMethod); + with AddClass(TADOStoredProc, 'TCustomADODataSet') do + AddMethod('procedure ExecProc', CallMethod); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + + if ClassType = TParameters then + begin + if MethodName = 'ADDPARAMETER' then + Result := frxInteger(TParameters(Instance).AddParameter) + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(TParameters(Instance).Items[Caller.Params[0]]) + end + else if ClassType = TADOQuery then + begin + if MethodName = 'EXECSQL' then + TADOQuery(Instance).ExecSQL + end + else if ClassType = TADOStoredProc then + begin + if MethodName = 'EXECPROC' then + TADOStoredProc(Instance).ExecProc + end +end; + + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TCustomADODataSet then + begin + if PropName = 'SORT' then + Result := TCustomADODataSet(Instance).Sort; + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + + if ClassType = TCustomADODataSet then + begin + if PropName = 'SORT' then + TCustomADODataSet(Instance).Sort := Value; + end + +end; + +initialization +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsADORTTI, TControl); +{$ENDIF} + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. + diff --git a/FastScript/fs_ibasic.pas b/FastScript/fs_ibasic.pas new file mode 100644 index 0000000..9ba0755 --- /dev/null +++ b/FastScript/fs_ibasic.pas @@ -0,0 +1,193 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Basic grammar } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +//VCL uses section +{$IFNDEF FMX} +unit fs_ibasic; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_itools{$IFDEF DELPHI16}, Controls{$ENDIF}; +{$ELSE} +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_itools, FMX.Types; +{$ENDIF} + +type +{$i frxPlatformsAttribute.inc} + TfsBasic = class(TComponent); + + +implementation + +const + BASIC_GRAMMAR = + '' + + '<' + + '/keywords>' + + '<' + + 'string add="file" err="err1"/><' + + 'char text="(" add="op"/><' + + '/sequence>' + + '' + + '<' + + 'keyword text="OR" add="op" addtext="or"/><' + + 'char text="[" add="node"/>' + + '<' + + 'sequence><' + + '/sequence><' + + 'caseselector/><' + + 'optional>' + + '<' + + 'keyword text="FINALLY"/>'; + + +initialization +{$IFDEF DELPHI16} +{$IFDEF FMX} + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsBasic, TFmxObject); +{$ELSE} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsBasic, TControl); +{$ENDIF} +{$ENDIF} + fsRegisterLanguage('BasicScript', BASIC_GRAMMAR); + +end. diff --git a/FastScript/fs_ibdereg.pas b/FastScript/fs_ibdereg.pas new file mode 100644 index 0000000..fa884ea --- /dev/null +++ b/FastScript/fs_ibdereg.pas @@ -0,0 +1,45 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_ibdereg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + Classes +{$IFNDEF Delphi6} +, DsgnIntf +{$ELSE} +, DesignIntf +{$ENDIF} +{$IFDEF DELPHI16} +, Controls +{$ENDIF} +, fs_ibdertti; + +{-----------------------------------------------------------------------} + +procedure Register; +begin +{$IFDEF DELPHI16} + //GroupDescendentsWith(TfsBDERTTI, TControl); +{$ENDIF} + RegisterComponents('FastScript', [TfsBDERTTI]); +end; + +end. diff --git a/FastScript/fs_ibdertti.pas b/FastScript/fs_ibdertti.pas new file mode 100644 index 0000000..159e7e9 --- /dev/null +++ b/FastScript/fs_ibdertti.pas @@ -0,0 +1,171 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ BDE classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_ibdertti; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_iinterpreter, fs_itools, fs_idbrtti, + DB, DBTables + {$IFDEF DELPHI16}, Controls, System.Types{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsBDERTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddEnum('TTableType', 'ttDefault, ttParadox, ttDBase, ttFoxPro, ttASCII'); + AddEnum('TParamBindMode', 'pbByName, pbByNumber'); + + AddClass(TSession, 'TComponent'); + AddClass(TDatabase, 'TComponent'); + AddClass(TBDEDataSet, 'TDataSet'); + AddClass(TDBDataSet, 'TBDEDataSet'); + with AddClass(TTable, 'TDBDataSet') do + begin + AddMethod('procedure CreateTable', CallMethod); + AddMethod('procedure DeleteTable', CallMethod); + AddMethod('procedure EmptyTable', CallMethod); + AddMethod('function FindKey(const KeyValues: array): Boolean', CallMethod); + AddMethod('procedure FindNearest(const KeyValues: array)', CallMethod); + AddMethod('procedure RenameTable(const NewTableName: string)', CallMethod); + end; + with AddClass(TQuery, 'TDBDataSet') do + begin + AddMethod('procedure ExecSQL', CallMethod); + AddMethod('function ParamByName(const Value: string): TParam', CallMethod); + AddMethod('procedure Prepare', CallMethod); + AddProperty('ParamCount', 'Word', GetProp, nil); + end; + with AddClass(TStoredProc, 'TDBDataSet') do + begin + AddMethod('procedure ExecProc', CallMethod); + AddMethod('function ParamByName(const Value: string): TParam', CallMethod); + AddMethod('procedure Prepare', CallMethod); + AddProperty('ParamCount', 'Word', GetProp, nil); + end; + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function DoFindKey: Boolean; + var + ar: TVarRecArray; + sPtrList: TList; + begin + VariantToVarRec(Caller.Params[0], ar, sPtrList); + Result := TTable(Instance).FindKey(ar); + ClearVarRec(ar, sPtrList); + end; + + procedure DoFindNearest; + var + ar: TVarRecArray; + sPtrList: TList; + begin + VariantToVarRec(Caller.Params[0], ar, sPtrList); + TTable(Instance).FindNearest(ar); + ClearVarRec(ar, sPtrList); + end; + +begin + Result := 0; + + if ClassType = TTable then + begin + if MethodName = 'CREATETABLE' then + TTable(Instance).CreateTable + else if MethodName = 'DELETETABLE' then + TTable(Instance).DeleteTable + else if MethodName = 'EMPTYTABLE' then + TTable(Instance).EmptyTable + else if MethodName = 'FINDKEY' then + Result := DoFindKey + else if MethodName = 'FINDNEAREST' then + DoFindNearest + else if MethodName = 'RENAMETABLE' then + TTable(Instance).RenameTable(Caller.Params[0]) + end + else if ClassType = TQuery then + begin + if MethodName = 'EXECSQL' then + TQuery(Instance).ExecSQL + else if MethodName = 'PARAMBYNAME' then + Result := frxInteger(TQuery(Instance).ParamByName(Caller.Params[0])) + else if MethodName = 'PREPARE' then + TQuery(Instance).Prepare + end + else if ClassType = TStoredProc then + begin + if MethodName = 'EXECPROC' then + TStoredProc(Instance).ExecProc + else if MethodName = 'PARAMBYNAME' then + Result := frxInteger(TStoredProc(Instance).ParamByName(Caller.Params[0])) + else if MethodName = 'PREPARE' then + TStoredProc(Instance).Prepare + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TQuery then + begin + if PropName = 'PARAMCOUNT' then + Result := TQuery(Instance).ParamCount + end + else if ClassType = TStoredProc then + begin + if PropName = 'PARAMCOUNT' then + Result := TStoredProc(Instance).ParamCount + end +end; + + +initialization +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsBDERTTI, TControl); +{$ENDIF} + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/fs_ibx.lpk b/FastScript/fs_ibx.lpk new file mode 100644 index 0000000..d714535 --- /dev/null +++ b/FastScript/fs_ibx.lpk @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/FastScript/fs_ichartrtti.pas b/FastScript/fs_ichartrtti.pas new file mode 100644 index 0000000..c01b22f --- /dev/null +++ b/FastScript/fs_ichartrtti.pas @@ -0,0 +1,195 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Chart } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_ichartrtti; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_iinterpreter, fs_itools, fs_iformsrtti +{$IFDEF DELPHI16} + , VCLTee.Chart, VCLTee.Series, VCLTee.TeEngine, VCLTee.TeeProcs, VCLTee.TeCanvas, VCLTee.ArrowCha +{$ELSE} + , Chart, Series, TeEngine, TeeProcs, TeCanvas, ArrowCha +{$ENDIF} +{$IFDEF Delphi16} + , System.Types +{$ENDIF} +{$IFDEF DELPHI16}, Controls{$ENDIF}; + + +type +{$i frxPlatformsAttribute.inc} + TfsChartRTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddType('TChartValue', fvtFloat); + AddEnum('TLegendStyle', 'lsAuto, lsSeries, lsValues, lsLastValues'); + AddEnum('TLegendAlignment', 'laLeft, laRight, laTop, laBottom'); + AddEnum('TLegendTextStyle', 'ltsPlain, ltsLeftValue, ltsRightValue, ltsLeftPercent,' + + 'ltsRightPercent, ltsXValue'); + AddEnum('TChartListOrder', 'loNone, loAscending, loDescending'); + AddEnum('TGradientDirection', 'gdTopBottom, gdBottomTop, gdLeftRight, gdRightLeft'); + AddEnum('TSeriesMarksStyle', 'smsValue, smsPercent, smsLabel, smsLabelPercent, ' + + 'smsLabelValue, smsLegend, smsPercentTotal, smsLabelPercentTotal, smsXValue'); + AddEnum('TAxisLabelStyle', 'talAuto, talNone, talValue, talMark, talText'); + AddEnum('THorizAxis', 'aTopAxis, aBottomAxis'); + AddEnum('TVertAxis', 'aLeftAxis, aRightAxis'); + AddEnum('TTeeBackImageMode', 'pbmStretch, pbmTile, pbmCenter'); + AddEnum('TPanningMode', 'pmNone, pmHorizontal, pmVertical, pmBoth'); + AddEnum('TSeriesPointerStyle', 'psRectangle, psCircle, psTriangle, ' + + 'psDownTriangle, psCross, psDiagCross, psStar, psDiamond, psSmallDot'); + AddEnum('TMultiArea', 'maNone, maStacked, maStacked100'); + AddEnum('TMultiBar', 'mbNone, mbSide, mbStacked, mbStacked100'); + AddEnum('TBarStyle', 'bsRectangle, bsPyramid, bsInvPyramid, bsCilinder, ' + + 'bsEllipse, bsArrow, bsRectGradient'); + + AddEnum('TPenEndStyle', 'esRound, esSquare, esFlat'); + AddEnum('TPenMode', 'pmBlack, pmWhite, pmNop, pmNot, pmCopy, pmNotCopy, ' + + 'pmMergePenNot, pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge, ' + + 'pmNotMerge, pmMask, pmNotMask, pmXor, pmNotXor'); + AddEnum('TPenStyle', 'psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame'); + AddClass(TChartValueList, 'TPersistent'); + AddClass(TChartAxisTitle, 'TPersistent'); + AddClass(TChartAxis, 'TPersistent'); + AddClass(TCustomChartLegend, 'TPersistent'); + AddClass(TChartLegend, 'TCustomChartLegend'); + AddClass(TSeriesMarks, 'TPersistent'); + AddClass(TChartGradient, 'TPersistent'); + AddClass(TChartWall, 'TPersistent'); + AddClass(TChartBrush, 'TBrush'); + AddClass(TChartTitle, 'TPersistent'); + AddClass(TView3DOptions, 'TPersistent'); + AddClass(TChartPen, 'TComponent'); + with AddClass(TChartSeries, 'TComponent') do + begin + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure Delete(Index: Integer)', CallMethod); + AddMethod('function Count: Integer', CallMethod); + AddMethod('procedure Add(const AValue: Double; const ALabel: String; AColor: TColor)', CallMethod); + AddProperty('Active','Boolean', GetProp, SetProp); + end; + AddClass(TSeriesPointer, 'TPersistent'); + AddClass(TCustomSeries, 'TChartSeries'); + AddClass(TLineSeries, 'TCustomSeries'); + AddClass(TPointSeries, 'TCustomSeries'); + AddClass(TAreaSeries, 'TCustomSeries'); + AddClass(TArrowSeries, 'TCustomSeries'); + with AddClass(TCustomBarSeries, 'TChartSeries') do + begin + AddProperty('Title','String', GetProp, SetProp); + end; + AddClass(TBarSeries, 'TCustomBarSeries'); + AddClass(THorizBarSeries, 'TCustomBarSeries'); + AddClass(TCircledSeries, 'TChartSeries'); + AddClass(TPieSeries, 'TCircledSeries'); + AddClass(TFastLineSeries, 'TChartSeries'); + AddClass(TCustomChart, 'TWinControl'); + AddClass(TChart, 'TCustomChart'); +{$IFDEF DELPHI19} + AddClass(TSeriesPointerItems, 'TSeriesPointerItems'); +{$ENDIF} + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + + if ClassType = TChartSeries then + begin + if MethodName = 'CLEAR' then + TChartSeries(Instance).Clear + else if MethodName = 'ADD' then + TChartSeries(Instance).Add(Caller.Params[0], String(Caller.Params[1]), Caller.Params[2]) + else if MethodName = 'DELETE' then + TChartSeries(Instance).Delete(Caller.Params[0]) + else if MethodName = 'COUNT' then + Result := TChartSeries(Instance).Count + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TChartSeries then + begin + if PropName = 'ACTIVE' then + Result := TChartSeries(Instance).Active + end else + if ClassType = TCustomBarSeries then + begin + if PropName = 'Title' then + Result := TCustomBarSeries(Instance).Title + end; +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TChartSeries then + begin + if PropName = 'ACTIVE' then + TChartSeries(Instance).Active := Value + end else + if ClassType = TCustomBarSeries then + begin + if PropName = 'Title' then + TCustomBarSeries(Instance).Title := Value + end +end; + +initialization +{$IFDEF DELPHI16} +{$IFDEF FMX} + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsChartRTTI, TFmxObject); +{$ELSE} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsChartRTTI, TControl); +{$ENDIF} +{$ENDIF} + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/fs_iclassesrtti.pas b/FastScript/fs_iclassesrtti.pas new file mode 100644 index 0000000..a102022 --- /dev/null +++ b/FastScript/fs_iclassesrtti.pas @@ -0,0 +1,1052 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Classes.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +//VCL uses section +{$IFNDEF FMX} +unit fs_iclassesrtti; + +interface + +{$i fs.inc} + +uses SysUtils, Classes, fs_iinterpreter, fs_xml{$IFDEF DELPHI16}, Controls{$ENDIF} +{$IFDEF Delphi16} + , System.Types +{$ENDIF}; +//FMX USES +{$ELSE} +interface + +{$i fs.inc} + +uses System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_xml, System.Types, FMX.Types, System.UITypes +{$IFDEF DELPHI20} + ,System.Math.Vectors +{$ENDIF}; +{$ENDIF} + +type +{$i frxPlatformsAttribute.inc} + TfsClassesRTTI = class(TComponent); // fake component +{$IFDEF FMX} +{ wrappers for most using structures } + TfsRectF = class(TPersistent) + private + FRectF: TRectF; + function GetBottom: Single; + function GetLeft: Single; + function GetRight: Single; + function GetTop: Single; + procedure SetBottom(const Value: Single); + procedure SetLeft(const Value: Single); + procedure SetRight(const Value: Single); + procedure SetTop(const Value: Single); + public + function GetRect: TRectF; + function GetRectP: PRectF; + constructor Create(aRectF: TRectF); + published + property Left: Single read GetLeft write SetLeft; + property Top: Single read GetTop write SetTop; + property Right: Single read GetRight write SetRight; + property Bottom: Single read GetBottom write SetBottom; + end; + + TfsMatrix = class(TPersistent) + private + FMatrix: TMatrix; + function Getm11: Single; + function Getm12: Single; + function Getm13: Single; + function Getm21: Single; + function Getm22: Single; + function Getm23: Single; + function Getm31: Single; + function Getm32: Single; + function Getm33: Single; + procedure Setm11(const Value: Single); + procedure Setm12(const Value: Single); + procedure Setm13(const Value: Single); + procedure Setm21(const Value: Single); + procedure Setm22(const Value: Single); + procedure Setm23(const Value: Single); + procedure Setm31(const Value: Single); + procedure Setm32(const Value: Single); + procedure Setm33(const Value: Single); + public + procedure AssignToRect(var Rect: TMatrix); + procedure AssignFromRect(Rect: TMatrix); + function GetRect: TMatrix; + constructor Create(aMatrix: TMatrix); + published + property m11: Single read Getm11 write Setm11; + property m12: Single read Getm12 write Setm12; + property m13: Single read Getm13 write Setm13; + property m21: Single read Getm21 write Setm21; + property m22: Single read Getm22 write Setm22; + property m23: Single read Getm23 write Setm23; + property m31: Single read Getm31 write Setm31; + property m32: Single read Getm32 write Setm32; + property m33: Single read Getm33 write Setm33; + end; + + TfsPointF = class(TPersistent) + private + FPointF: TPointF; + function GetX: Single; + function GetY: Single; + procedure SetX(const Value: Single); + procedure SetY(const Value: Single); + public + function GetRect: TPointF; + function GetRectP: PPointF; + constructor Create(aPointF: TPointF); + published + property pX: Single read GetX write SetX; + property pY: Single read GetY write SetY; + end; + + PVector = ^TVector; + TfsVector = class(TPersistent) + private + FVector: TVector; + function GetW: Single; + function GetX: Single; + function GetY: Single; + procedure SetW(const Value: Single); + procedure SetX(const Value: Single); + procedure SetY(const Value: Single); + public + function GetRect: TVector; + function GetRectP: PVector; + constructor Create(aVector: TVector); + published + property pX: Single read GetX write SetX; + property pY: Single read GetY write SetY; + property pW: Single read GetW write SetW; + end; +{$ENDIF} + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + +{$IFDEF FMX} +{ TFrxRectF } + +constructor TfsRectF.Create(aRectF: TRectF); +begin + FRectF.Left := aRectF.Left; + FRectF.Top := aRectF.Top; + FRectF.Right := aRectF.Right; + FRectF.Bottom := aRectF.Bottom; +end; + +function TfsRectF.GetBottom: Single; +begin + Result := FRectF.Bottom; +end; + +function TfsRectF.GetLeft: Single; +begin + Result := FRectF.Left; +end; + +function TfsRectF.GetRect: TRectF; +begin + Result := FRectF; +end; + +function TfsRectF.GetRectP: PRectF; +begin + Result := @FRectF; +end; + +function TfsRectF.GetRight: Single; +begin + Result := FRectF.Right; +end; + +function TfsRectF.GetTop: Single; +begin + Result := FRectF.Top; +end; + +procedure TfsRectF.SetBottom(const Value: Single); +begin + FRectF.Bottom := Value; +end; + +procedure TfsRectF.SetLeft(const Value: Single); +begin + FRectF.Left := Value; +end; + +procedure TfsRectF.SetRight(const Value: Single); +begin + FRectF.Right := Value; +end; + +procedure TfsRectF.SetTop(const Value: Single); +begin + FRectF.Top := Value; +end; + +{ TfsMatrix } + +procedure TfsMatrix.AssignFromRect(Rect: TMatrix); +begin + +end; + +procedure TfsMatrix.AssignToRect(var Rect: TMatrix); +begin + +end; + +constructor TfsMatrix.Create(aMatrix: TMatrix); +begin + FMatrix.m11 := aMatrix.m11; + FMatrix.m12 := aMatrix.m12; + FMatrix.m13 := aMatrix.m13; + FMatrix.m21 := aMatrix.m21; + FMatrix.m22 := aMatrix.m22; + FMatrix.m23 := aMatrix.m23; + FMatrix.m31 := aMatrix.m31; + FMatrix.m32 := aMatrix.m32; + FMatrix.m33 := aMatrix.m33; +end; + +function TfsMatrix.Getm11: Single; +begin + Result := FMatrix.m11; +end; + +function TfsMatrix.Getm12: Single; +begin + Result := FMatrix.m12; +end; + +function TfsMatrix.Getm13: Single; +begin + Result := FMatrix.m13; +end; + +function TfsMatrix.Getm21: Single; +begin + Result := FMatrix.m21; +end; + +function TfsMatrix.Getm22: Single; +begin + Result := FMatrix.m22; +end; + +function TfsMatrix.Getm23: Single; +begin + Result := FMatrix.m23; +end; + +function TfsMatrix.Getm31: Single; +begin + Result := FMatrix.m31; +end; + +function TfsMatrix.Getm32: Single; +begin + Result := FMatrix.m32; +end; + +function TfsMatrix.Getm33: Single; +begin + Result := FMatrix.m33; +end; + +function TfsMatrix.GetRect: TMatrix; +begin + Result := FMatrix; +end; + +procedure TfsMatrix.Setm11(const Value: Single); +begin + FMatrix.m11 := Value; +end; + +procedure TfsMatrix.Setm12(const Value: Single); +begin + FMatrix.m12 := Value; +end; + +procedure TfsMatrix.Setm13(const Value: Single); +begin + FMatrix.m13 := Value; +end; + +procedure TfsMatrix.Setm21(const Value: Single); +begin + FMatrix.m21 := Value; +end; + +procedure TfsMatrix.Setm22(const Value: Single); +begin + FMatrix.m22 := Value; +end; + +procedure TfsMatrix.Setm23(const Value: Single); +begin + FMatrix.m23 := Value; +end; + +procedure TfsMatrix.Setm31(const Value: Single); +begin + FMatrix.m31 := Value; +end; + +procedure TfsMatrix.Setm32(const Value: Single); +begin + FMatrix.m32 := Value; +end; + +procedure TfsMatrix.Setm33(const Value: Single); +begin + FMatrix.m33 := Value; +end; + +{ TfsPointF } + +constructor TfsPointF.Create(aPointF: TPointF); +begin + FPointF.X := aPointF.X; + FPointF.Y := aPointF.Y; +end; + +function TfsPointF.GetRect: TPointF; +begin + Result := FPointF; +end; + +function TfsPointF.GetRectP: PPointF; +begin + Result := @FPointF; +end; + +function TfsPointF.GetX: Single; +begin + Result := FPointF.X; +end; + +function TfsPointF.GetY: Single; +begin + Result := FPointF.Y; +end; + +procedure TfsPointF.SetX(const Value: Single); +begin + FPointF.X := Value; +end; + +procedure TfsPointF.SetY(const Value: Single); +begin + FPointF.Y := Value; +end; + +{ TfsVector } + +constructor TfsVector.Create(aVector: TVector); +begin + FVector.X := aVector.X; + FVector.Y := aVector.Y; + FVector.W := aVector.W; +end; + +function TfsVector.GetRect: TVector; +begin + Result := FVector; +end; + +function TfsVector.GetRectP: PVector; +begin + Result := @FVector; +end; + +function TfsVector.GetW: Single; +begin + Result := FVector.W; +end; + +function TfsVector.GetX: Single; +begin + Result := FVector.X; +end; + +function TfsVector.GetY: Single; +begin + Result := FVector.Y; +end; + +procedure TfsVector.SetW(const Value: Single); +begin + FVector.W := Value; +end; + +procedure TfsVector.SetX(const Value: Single); +begin + FVector.X := Value; +end; + +procedure TfsVector.SetY(const Value: Single); +begin + FVector.Y := Value; +end; + +{$ENDIF} + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddConst('fmCreate', 'Integer', fmCreate); + AddConst('fmOpenRead', 'Integer', fmOpenRead); + AddConst('fmOpenWrite', 'Integer', fmOpenWrite); + AddConst('fmOpenReadWrite', 'Integer', fmOpenReadWrite); + AddConst('fmShareExclusive', 'Integer', fmShareExclusive); + AddConst('fmShareDenyWrite', 'Integer', fmShareDenyWrite); + AddConst('fmShareDenyNone', 'Integer', fmShareDenyNone); + AddConst('soFromBeginning', 'Integer', soFromBeginning); + AddConst('soFromCurrent', 'Integer', soFromCurrent); + AddConst('soFromEnd', 'Integer', soFromEnd); + AddEnum('TDuplicates', 'dupIgnore, dupAccept, dupError'); + AddEnum('TPrinterOrientation', 'poPortrait, poLandscape'); + + with AddClass(TObject, '') do + begin + AddConstructor('constructor Create', CallMethod); + AddMethod('procedure Free', CallMethod); + AddMethod('function ClassName: String', CallMethod); + end; + with AddClass(TPersistent, 'TObject') do + AddMethod('procedure Assign(Source: TPersistent)', CallMethod); + AddClass(TCollectionItem, 'TPersistent'); + with AddClass(TCollection, 'TPersistent') do + begin + AddMethod('procedure Clear', CallMethod); + AddProperty('Count', 'Integer', GetProp, nil); + AddDefaultProperty('Items', 'Integer', 'TCollectionItem', CallMethod, True); + end; + with AddClass(TList, 'TObject') do + begin + AddMethod('function Add(Item: TObject): Integer', CallMethod); + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure Delete(Index: Integer)', CallMethod); + AddMethod('function IndexOf(Item: TObject): Integer', CallMethod); + AddMethod('procedure Insert(Index: Integer; Item: TObject)', CallMethod); + AddMethod('function Remove(Item: TObject): Integer', CallMethod); + AddProperty('Count', 'Integer', GetProp, nil); + AddDefaultProperty('Items', 'Integer', 'TObject', CallMethod); + end; + with AddClass(TStrings, 'TPersistent') do + begin + AddConstructor('constructor Create', CallMethod); + AddMethod('function Add(const S: string): Integer', CallMethod); + AddMethod('function AddObject(const S: string; AObject: TObject): Integer', CallMethod); + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure Delete(Index: Integer)', CallMethod); + AddMethod('function IndexOf(const S: string): Integer', CallMethod); + AddMethod('function IndexOfName(const Name: string): Integer', CallMethod); + AddMethod('function IndexOfObject(AObject: TObject): Integer', CallMethod); + AddMethod('procedure Insert(Index: Integer; const S: string)', CallMethod); + AddMethod('procedure InsertObject(Index: Integer; const S: string; AObject: TObject)', CallMethod); + AddMethod('procedure LoadFromFile(const FileName: string)', CallMethod); + AddMethod('procedure LoadFromStream(Stream: TStream)', CallMethod); + AddMethod('procedure SaveToFile(const FileName: string)', CallMethod); + AddMethod('procedure Move(CurIndex, NewIndex: Integer)', CallMethod); + AddMethod('procedure SaveToStream(Stream: TStream)', CallMethod); + + AddProperty('CommaText', 'string', GetProp, SetProp); + AddProperty('Count', 'Integer', GetProp, nil); + AddIndexProperty('Names', 'Integer', 'string', CallMethod, True); + AddIndexProperty('Objects', 'Integer', 'TObject', CallMethod); + AddIndexProperty('Values', 'String', 'string', CallMethod); + AddDefaultProperty('Strings', 'Integer', 'string', CallMethod); + AddProperty('Text', 'string', GetProp, SetProp); + end; + with AddClass(TStringList, 'TStrings') do + begin + AddMethod('function Find(s: String; var Index: Integer): Boolean', CallMethod); + AddMethod('procedure Sort', CallMethod); + AddProperty('Duplicates', 'TDuplicates', GetProp, SetProp); + AddProperty('Sorted', 'Boolean', GetProp, SetProp); + end; + with AddClass(TStream, 'TObject') do + begin + AddMethod('function Read(var Buffer: string; Count: Longint): Longint', CallMethod); + AddMethod('function Write(Buffer: string; Count: Longint): Longint', CallMethod); + AddMethod('function Seek(Offset: Longint; Origin: Word): Longint', CallMethod); + AddMethod('function CopyFrom(Source: TStream; Count: Longint): Longint', CallMethod); + AddProperty('Position', 'Longint', GetProp, SetProp); + AddProperty('Size', 'Longint', GetProp, nil); + end; + with AddClass(TFileStream, 'TStream') do + AddConstructor('constructor Create(Filename: String; Mode: Word)', CallMethod); + with AddClass(TMemoryStream, 'TStream') do + begin + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure LoadFromStream(Stream: TStream)', CallMethod); + AddMethod('procedure LoadFromFile(Filename: String)', CallMethod); + AddMethod('procedure SaveToStream(Stream: TStream)', CallMethod); + AddMethod('procedure SaveToFile(Filename: String)', CallMethod); + end; + with AddClass(TComponent, 'TPersistent') do + begin + AddConstructor('constructor Create(AOwner: TComponent)', CallMethod); + AddProperty('Owner', 'TComponent', GetProp, nil); + end; +{$IFDEF FMX} + AddClass(TfsRectF, 'TPersistent'); + AddClass(TfsMatrix, 'TPersistent'); + AddClass(TfsPointF, 'TPersistent'); + AddClass(TfsVector, 'TPersistent'); + with AddClass(TFmxObject, 'TComponent') do + begin + AddMethod('function Clone(AOwner: TComponent): TFmxObject', CallMethod); + AddMethod('procedure CloneChildFromStream(AStream: TStream)', CallMethod); + AddMethod('procedure AddObject(AObject: TFmxObject)', CallMethod); + AddMethod('procedure InsertObject(Index: Integer; AObject: TFmxObject)', CallMethod); + AddMethod('procedure RemoveObject(AObject: TFmxObject)', CallMethod); + AddMethod('procedure RemoveObject(Index: Integer)', CallMethod); + AddMethod('procedure Exchange(AObject1: TFmxObject; AObject2: TFmxObject)', CallMethod); + AddMethod('procedure DeleteChildren()', CallMethod); + AddMethod('procedure BringToFront()', CallMethod); + AddMethod('procedure SendToBack()', CallMethod); + AddMethod('procedure AddObjectsToList(AList: TList)', CallMethod); +{$IFNDEF DELPHI18} + AddMethod('procedure AddControlsToList(AList: TList)', CallMethod); +{$ENDIF} +{$IFNDEF DELPHI20} + AddMethod('procedure GetTabOrderList(List: TList; AChildren: Boolean)', CallMethod); +{$ENDIF} + AddMethod('procedure LoadFromStream(AStream: TStream)', CallMethod); + AddMethod('procedure SaveToStream(Stream: TStream)', CallMethod); + AddMethod('procedure LoadFromBinStream(AStream: TStream)', CallMethod); + AddMethod('procedure SaveToBinStream(AStream: TStream)', CallMethod); + AddMethod('function FindStyleResource(AStyleLookup: string): TFmxObject', CallMethod); +{$IFNDEF DELPHI18} + AddMethod('procedure UpdateStyle()', CallMethod); +{$ENDIF} +{$IFNDEF DELPHI21} + AddMethod('procedure StartAnimation(AName: string)', CallMethod); + AddMethod('procedure StopAnimation(AName: string)', CallMethod); + AddMethod('procedure StartTriggerAnimation(AInstance: TFmxObject; ATrigger: string)', CallMethod); + AddMethod('procedure StartTriggerAnimationWait(AInstance: TFmxObject; ATrigger: string)', CallMethod); +{$IFDEF DELPHI17} + AddMethod('procedure StopTriggerAnimation(AInstance: TFmxObject; ATrigger: string)', CallMethod); +{$ELSE} + AddMethod('procedure StopTriggerAnimation(AInstance: TFmxObject)', CallMethod); +{$ENDIF} + + AddMethod('procedure ApplyTriggerEffect(AInstance: TFmxObject; ATrigger: string)', CallMethod); +{$ENDIF} + AddMethod('procedure AnimateFloat(APropertyName: string; NewValue: Single; Duration: Single; AType: TAnimationType; AInterpolation: TInterpolationType)', CallMethod); + AddMethod('procedure AnimateColor(APropertyName: string; NewValue: TAlphaColor; Duration: Single; AType: TAnimationType; AInterpolation: TInterpolationType)', CallMethod); + AddMethod('procedure AnimateFloatDelay(APropertyName: string; NewValue: Single; Duration: Single; Delay: Single; AType: TAnimationType; AInterpolation: TInterpolationType)', CallMethod); + AddMethod('procedure AnimateFloatWait(APropertyName: string; NewValue: Single; Duration: Single; AType: TAnimationType; AInterpolation: TInterpolationType)', CallMethod); + AddMethod('procedure StopPropertyAnimation(APropertyName: string)', CallMethod); + AddProperty('Parent', 'TFmxObject', GetProp, SetProp); + AddProperty('Index', 'Integer', GetProp, SetProp); + end; +{$ENDIF} + with AddClass(TfsXMLItem, 'TObject') do + begin + AddConstructor('constructor Create', CallMethod); + AddMethod('procedure AddItem(Item: TfsXMLItem)', CallMethod); + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure InsertItem(Index: Integer; Item: TfsXMLItem)', CallMethod); + AddMethod('function Add: TfsXMLItem', CallMethod); + AddMethod('function Find(const Name: String): Integer', CallMethod); + AddMethod('function FindItem(const Name: String): TfsXMLItem', CallMethod); + AddMethod('function Root: TfsXMLItem', CallMethod); + AddProperty('Data', 'Integer', GetProp, SetProp); + AddProperty('Count', 'Integer', GetProp, nil); + AddDefaultProperty('Items', 'Integer', 'TfsXMLItem', CallMethod, True); + AddIndexProperty('Prop', 'String', 'String', CallMethod); + AddProperty('Name', 'String', GetProp, SetProp); + AddProperty('Parent', 'TfsXMLItem', GetProp, nil); + AddProperty('Text', 'String', GetProp, SetProp); + end; + with AddClass(TfsXMLDocument, 'TObject') do + begin + AddConstructor('constructor Create', CallMethod); + AddMethod('procedure SaveToStream(Stream: TStream)', CallMethod); + AddMethod('procedure LoadFromStream(Stream: TStream)', CallMethod); + AddMethod('procedure SaveToFile(const FileName: String)', CallMethod); + AddMethod('procedure LoadFromFile(const FileName: String)', CallMethod); + AddProperty('Root', 'TfsXMLItem', GetProp, nil); + end; + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + i: Integer; + s: String; + _TList: TList; + _TStrings: TStrings; + _TStream: TStream; + _TMemoryStream: TMemoryStream; + _TfsXMLItem: TfsXMLItem; + _TfsXMLDocument: TfsXMLDocument; +{$IFDEF FMX} + _fmxObj: TFmxObject; +{$ENDIF} +begin + Result := 0; + + if ClassType = TObject then + begin + if MethodName = 'CREATE' then + {$IFDEF FPC} + begin + if Instance is TList then + Result := frxInteger(TList.Create) + else + Result := frxInteger(Instance.Create); + end + {$ELSE} + Result := frxInteger(Instance.Create) + {$ENDIF} + else if MethodName = 'FREE' then + Instance.Free + else if MethodName = 'CLASSNAME' then + Result := Instance.ClassName + end + else if ClassType = TPersistent then + begin + if MethodName = 'ASSIGN' then + TPersistent(Instance).Assign(TPersistent(frxInteger(Caller.Params[0]))); + end + else if ClassType = TCollection then + begin + if MethodName = 'CLEAR' then + TCollection(Instance).Clear + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(TCollection(Instance).Items[Caller.Params[0]]) + end + else if ClassType = TList then + begin + _TList := TList(Instance); + if MethodName = 'ADD' then + _TList.Add(Pointer(frxInteger(Caller.Params[0]))) + else if MethodName = 'CLEAR' then + _TList.Clear + else if MethodName = 'DELETE' then + _TList.Delete(Caller.Params[0]) + else if MethodName = 'INDEXOF' then + Result := _TList.IndexOf(Pointer(frxInteger(Caller.Params[0]))) + else if MethodName = 'INSERT' then + _TList.Insert(Caller.Params[0], Pointer(frxInteger(Caller.Params[1]))) + else if MethodName = 'REMOVE' then + _TList.Remove(Pointer(frxInteger(Caller.Params[0]))) + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(_TList.Items[Caller.Params[0]]) + else if MethodName = 'ITEMS.SET' then + _TList.Items[Caller.Params[0]] := Pointer(frxInteger(Caller.Params[1])) + end + else if ClassType = TStrings then + begin + _TStrings := TStrings(Instance); + if MethodName = 'CREATE' then + Result := frxInteger(_TStrings.Create) + else if MethodName = 'ADD' then + Result := _TStrings.Add(Caller.Params[0]) + else if MethodName = 'ADDOBJECT' then + Result := _TStrings.AddObject(Caller.Params[0], TObject(frxInteger(Caller.Params[1]))) + else if MethodName = 'CLEAR' then + _TStrings.Clear + else if MethodName = 'DELETE' then + _TStrings.Delete(Caller.Params[0]) + else if MethodName = 'INDEXOF' then + Result := _TStrings.IndexOf(Caller.Params[0]) + else if MethodName = 'INDEXOFNAME' then + Result := _TStrings.IndexOfName(Caller.Params[0]) + else if MethodName = 'INDEXOFOBJECT' then + Result := _TStrings.IndexOfObject(TObject(frxInteger(Caller.Params[0]))) + else if MethodName = 'INSERT' then + _TStrings.Insert(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'INSERTOBJECT' then + _TStrings.InsertObject(Caller.Params[0], Caller.Params[1], TObject(frxInteger(Caller.Params[2]))) + else if MethodName = 'LOADFROMFILE' then + _TStrings.LoadFromFile(Caller.Params[0]) + else if MethodName = 'LOADFROMSTREAM' then + _TStrings.LoadFromStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'MOVE' then + _TStrings.Move(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'SAVETOFILE' then + _TStrings.SaveToFile(Caller.Params[0]) + else if MethodName = 'SAVETOSTREAM' then + _TStrings.SaveToStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'NAMES.GET' then + Result := _TStrings.Names[Caller.Params[0]] + else if MethodName = 'OBJECTS.GET' then + Result := frxInteger(_TStrings.Objects[Caller.Params[0]]) + else if MethodName = 'OBJECTS.SET' then + _TStrings.Objects[Caller.Params[0]] := TObject(frxInteger(Caller.Params[1])) + else if MethodName = 'VALUES.GET' then + Result := _TStrings.Values[Caller.Params[0]] + else if MethodName = 'VALUES.SET' then + _TStrings.Values[Caller.Params[0]] := Caller.Params[1] + else if MethodName = 'STRINGS.GET' then + Result := _TStrings.Strings[Caller.Params[0]] + else if MethodName = 'STRINGS.SET' then + _TStrings.Strings[Caller.Params[0]] := Caller.Params[1] + end + else if ClassType = TStringList then + begin + if MethodName = 'FIND' then + begin + Result := TStringList(Instance).Find(Caller.Params[0], i); + Caller.Params[1] := i; + end + else if MethodName = 'SORT' then + TStringList(Instance).Sort + end + else if ClassType = TStream then + begin + _TStream := TStream(Instance); + if MethodName = 'READ' then + begin + SetLength(s, Integer(Caller.Params[1])); + Result := _TStream.Read(s[1], Caller.Params[1]); + SetLength(s, Integer(Result)); + Caller.Params[0] := s; + end + else if MethodName = 'WRITE' then + begin + s := Caller.Params[0]; + Result := _TStream.Write(s[1], Caller.Params[1]); + end + else if MethodName = 'SEEK' then +{$IFDEF DELPHI18} + Result := _TStream.Seek(Int64(Caller.Params[0]), Word(Caller.Params[1])) +{$ELSE} +{$IFDEF FPC} + Result := _TStream.Seek(Int64(Caller.Params[0]), Word(Caller.Params[1])) +{$ELSE} + Result := _TStream.Seek(Caller.Params[0], Caller.Params[1]) +{$ENDIF} +{$ENDIF} + else if MethodName = 'COPYFROM' then + Result := _TStream.CopyFrom(TStream(frxInteger(Caller.Params[0])), Caller.Params[1]) + end + else if ClassType = TFileStream then + begin + if MethodName = 'CREATE' then + Result := frxInteger(TFileStream(Instance).Create(Caller.Params[0], Caller.Params[1])) + end + else if ClassType = TMemoryStream then + begin + _TMemoryStream := TMemoryStream(Instance); + if MethodName = 'CLEAR' then + _TMemoryStream.Clear + else if MethodName = 'LOADFROMSTREAM' then + _TMemoryStream.LoadFromStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'LOADFROMFILE' then + _TMemoryStream.LoadFromFile(Caller.Params[0]) + else if MethodName = 'SAVETOSTREAM' then + _TMemoryStream.SaveToStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'SAVETOFILE' then + _TMemoryStream.SaveToFile(Caller.Params[0]) + end + else if ClassType = TComponent then + begin + if MethodName = 'CREATE' then + Result := frxInteger(TComponent(Instance).Create(TComponent(frxInteger(Caller.Params[0])))) + end + else if ClassType = TfsXMLItem then + begin + _TfsXMLItem := TfsXMLItem(Instance); + if MethodName = 'CREATE' then + Result := frxInteger(_TfsXMLItem.Create) + else if MethodName = 'ADDITEM' then + _TfsXMLItem.AddItem(TfsXMLItem(frxInteger(Caller.Params[0]))) + else if MethodName = 'CLEAR' then + _TfsXMLItem.Clear + else if MethodName = 'INSERTITEM' then + _TfsXMLItem.InsertItem(Caller.Params[0], TfsXMLItem(frxInteger(Caller.Params[1]))) + else if MethodName = 'ADD' then + Result := frxInteger(_TfsXMLItem.Add) + else if MethodName = 'FIND' then + Result := _TfsXMLItem.Find(Caller.Params[0]) + else if MethodName = 'FINDITEM' then + Result := frxInteger(_TfsXMLItem.FindItem(Caller.Params[0])) + else if MethodName = 'PROP.GET' then + Result := _TfsXMLItem.Prop[Caller.Params[0]] + else if MethodName = 'PROP.SET' then + _TfsXMLItem.Prop[Caller.Params[0]] := Caller.Params[1] + else if MethodName = 'ROOT' then + Result := frxInteger(_TfsXMLItem.Root) + else if MethodName = 'ROOT' then + Result := frxInteger(_TfsXMLItem.Root) + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(_TfsXMLItem[Caller.Params[0]]) + end + else if ClassType = TfsXMLDocument then + begin + _TfsXMLDocument := TfsXMLDocument(Instance); + if MethodName = 'CREATE' then + Result := frxInteger(_TfsXMLDocument.Create) + else if MethodName = 'SAVETOSTREAM' then + _TfsXMLDocument.SaveToStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'LOADFROMSTREAM' then + _TfsXMLDocument.LoadFromStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'SAVETOFILE' then + _TfsXMLDocument.SaveToFile(Caller.Params[0]) + else if MethodName = 'LOADFROMFILE' then + _TfsXMLDocument.LoadFromFile(Caller.Params[0]) + end +{$IFDEF FMX} + else if ClassType = TFmxObject then + begin + _fmxObj := TFmxObject(Instance); + if MethodName = 'CLONE' then + Result := frxInteger(_fmxObj.Clone(TComponent(frxInteger(Caller.Params[0])))) +// else if MethodName = 'CLONECHILDFROMSTREAM' then +// _fmxObj.CloneChildFromStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'ADDOBJECT' then + _fmxObj.AddObject(TFmxObject(frxInteger(Caller.Params[0]))) + else if MethodName = 'INSERTOBJECT' then + _fmxObj.InsertObject(Integer(Caller.Params[0]), TFmxObject(frxInteger(Caller.Params[1]))) + else if MethodName = 'REMOVEOBJECT' then + _fmxObj.RemoveObject(TFmxObject(frxInteger(Caller.Params[0]))) + else if MethodName = 'REMOVEOBJECT' then + _fmxObj.RemoveObject(Integer(Caller.Params[0])) + else if MethodName = 'EXCHANGE' then + _fmxObj.Exchange(TFmxObject(frxInteger(Caller.Params[0])), TFmxObject(frxInteger(Caller.Params[1]))) + else if MethodName = 'DELETECHILDREN' then + _fmxObj.DeleteChildren() + else if MethodName = 'BRINGTOFRONT' then + _fmxObj.BringToFront() + else if MethodName = 'SENDTOBACK' then + _fmxObj.SendToBack() +{$IFDEF DELPHI17} + else if MethodName = 'ADDOBJECTSTOLIST' then + _fmxObj.AddObjectsToList(TFmxObjectList(frxInteger(Caller.Params[0]))) +{$IFNDEF DELPHI18} + else if MethodName = 'ADDCONTROLSTOLIST' then + _fmxObj.AddControlsToList(TFmxObjectList(frxInteger(Caller.Params[0]))) +{$ENDIF} +{$IFNDEF DELPHI20} + else if MethodName = 'GETTABORDERLIST' then + _fmxObj.GetTabOrderList(TInterfaceList(frxInteger(Caller.Params[0])), Boolean(Caller.Params[1])) +{$ENDIF} +{$ELSE} + else if MethodName = 'ADDOBJECTSTOLIST' then + _fmxObj.AddObjectsToList(TList(frxInteger(Caller.Params[0]))) + else if MethodName = 'ADDCONTROLSTOLIST' then + _fmxObj.AddControlsToList(TList(frxInteger(Caller.Params[0]))) + else if MethodName = 'GETTABORDERLIST' then + _fmxObj.GetTabOrderList(TList(frxInteger(Caller.Params[0])), Boolean(Caller.Params[1])) + else if MethodName = 'LOADFROMSTREAM' then + _fmxObj.LoadFromStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'SAVETOSTREAM' then + _fmxObj.SaveToStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'LOADFROMBINSTREAM' then + _fmxObj.LoadFromBinStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'SAVETOBINSTREAM' then + _fmxObj.SaveToBinStream(TStream(frxInteger(Caller.Params[0]))) +{$ENDIF} + else if MethodName = 'FINDSTYLERESOURCE' then + Result := frxInteger(_fmxObj.FindStyleResource(string(Caller.Params[0]))) +{$IFNDEF DELPHI18} + else if MethodName = 'UPDATESTYLE' then + _fmxObj.UpdateStyle() +{$ENDIF} +{$IFNDEF DELPHI21} + else if MethodName = 'STARTANIMATION' then + _fmxObj.StartAnimation(string(Caller.Params[0])) + else if MethodName = 'STOPANIMATION' then + _fmxObj.StopAnimation(string(Caller.Params[0])) + else if MethodName = 'STARTTRIGGERANIMATION' then + _fmxObj.StartTriggerAnimation(TFmxObject(frxInteger(Caller.Params[0])), string(Caller.Params[1])) + else if MethodName = 'STARTTRIGGERANIMATIONWAIT' then + _fmxObj.StartTriggerAnimationWait(TFmxObject(frxInteger(Caller.Params[0])), string(Caller.Params[1])) + else if MethodName = 'STOPTRIGGERANIMATION' then +{$IFDEF DELPHI17} + _fmxObj.StopTriggerAnimation(TFmxObject(frxInteger(Caller.Params[0])), string(Caller.Params[1])) +{$ELSE} + _fmxObj.StopTriggerAnimation(TFmxObject(frxInteger(Caller.Params[0]))) +{$ENDIF} + else if MethodName = 'APPLYTRIGGEREFFECT' then + _fmxObj.ApplyTriggerEffect(TFmxObject(frxInteger(Caller.Params[0])), string(Caller.Params[1])) +{$ENDIF} + else if MethodName = 'ANIMATEFLOAT' then + _fmxObj.AnimateFloat(string(Caller.Params[0]), Single(Caller.Params[1]), Single(Caller.Params[2]), TAnimationType(Caller.Params[3]), TInterpolationType(Caller.Params[4])) + else if MethodName = 'ANIMATECOLOR' then + _fmxObj.AnimateColor(string(Caller.Params[0]), TAlphaColor(Caller.Params[1]), Single(Caller.Params[2]), TAnimationType(Caller.Params[3]), TInterpolationType(Caller.Params[4])) + else if MethodName = 'ANIMATEFLOATDELAY' then + _fmxObj.AnimateFloatDelay(string(Caller.Params[0]), Single(Caller.Params[1]), Single(Caller.Params[2]), Single(Caller.Params[3]), TAnimationType(Caller.Params[4]), TInterpolationType(Caller.Params[5])) + else if MethodName = 'ANIMATEFLOATWAIT' then + _fmxObj.AnimateFloatWait(string(Caller.Params[0]), Single(Caller.Params[1]), Single(Caller.Params[2]), TAnimationType(Caller.Params[3]), TInterpolationType(Caller.Params[4])) + else if MethodName = 'STOPPROPERTYANIMATION' then + _fmxObj.StopPropertyAnimation(string(Caller.Params[0])) +end; +{$ENDIF} +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TCollection then + begin + if PropName = 'COUNT' then + Result := TCollection(Instance).Count + end + else if ClassType = TList then + begin + if PropName = 'COUNT' then + Result := TList(Instance).Count + end + else if ClassType = TStrings then + begin + if PropName = 'COMMATEXT' then + Result := TStrings(Instance).CommaText + else if PropName = 'COUNT' then + Result := TStrings(Instance).Count + else if PropName = 'TEXT' then + Result := TStrings(Instance).Text + end + else if ClassType = TStringList then + begin + if PropName = 'DUPLICATES' then + Result := TStringList(Instance).Duplicates + else if PropName = 'SORTED' then + Result := TStringList(Instance).Sorted + end + else if ClassType = TStream then + begin + if PropName = 'POSITION' then + Result := TStream(Instance).Position + else if PropName = 'SIZE' then + Result := TStream(Instance).Size + end + else if ClassType = TComponent then + begin + if PropName = 'OWNER' then + Result := frxInteger(TComponent(Instance).Owner) + end + else if ClassType = TfsXMLItem then + begin + if PropName = 'DATA' then + Result := frxInteger(TfsXMLItem(Instance).Data) + else if PropName = 'COUNT' then + Result := TfsXMLItem(Instance).Count + else if PropName = 'NAME' then + Result := TfsXMLItem(Instance).Name + else if PropName = 'PARENT' then + Result := frxInteger(TfsXMLItem(Instance).Parent) + else if PropName = 'TEXT' then + Result := TfsXMLItem(Instance).Text + end + else if ClassType = TfsXMLDocument then + begin + if PropName = 'ROOT' then + Result := frxInteger(TfsXMLDocument(Instance).Root) + end + {$IFDEF FMX} + else if ClassType = TFmxObject then + begin + if PropName = 'PARENT' then + Result := frxInteger(TFmxObject(Instance).Parent) + else if PropName = 'INDEX' then + Result := TFmxObject(Instance).Index + end + {$ENDIF} +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TStrings then + begin + if PropName = 'COMMATEXT' then + TStrings(Instance).CommaText := Value + else if PropName = 'TEXT' then + TStrings(Instance).Text := Value + end + else if ClassType = TStringList then + begin + if PropName = 'DUPLICATES' then + TStringList(Instance).Duplicates := Value + else if PropName = 'SORTED' then + TStringList(Instance).Sorted := Value + end + else if ClassType = TStream then + begin + if PropName = 'POSITION' then + TStream(Instance).Position := Value + end + else if ClassType = TfsXMLItem then + begin + if PropName = 'DATA' then + TfsXMLItem(Instance).Data := Pointer(frxInteger(Value)) + else if PropName = 'NAME' then + TfsXMLItem(Instance).Name := Value + else if PropName = 'TEXT' then + TfsXMLItem(Instance).Text := Value + end + {$IFDEF FMX} + else if ClassType = TFmxObject then + begin + if PropName = 'PARENT' then + TFmxObject(Instance).Parent := TFmxObject(frxInteger(Value)) + else if PropName = 'INDEX' then + TFmxObject(Instance).Index := Value + end + {$ENDIF} +end; + + +initialization +{$IFDEF DELPHI16} +{$IFDEF FMX} + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsClassesRTTI, TFmxObject); +{$ELSE} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsClassesRTTI, TControl); +{$ENDIF} +{$ENDIF} + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/fs_iconst.pas b/FastScript/fs_iconst.pas new file mode 100644 index 0000000..cba1878 --- /dev/null +++ b/FastScript/fs_iconst.pas @@ -0,0 +1,66 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Resources } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +//VCL uses section +{$IFNDEF FMX} +unit fs_iconst; +{$ENDIF} + +interface + +{$i fs.inc} + +var + SLangNotFound: String; + SInvalidLanguage: String; + SIdRedeclared: String; + SUnknownType: String; + SIncompatibleTypes: String; + SIdUndeclared: String; + SClassRequired: String; + SIndexRequired: String; + SStringError: String; + SClassError: String; + SArrayRequired: String; + SVarRequired: String; + SNotEnoughParams: String; + STooManyParams: String; + SLeftCantAssigned: String; + SForError: String; + SEventError: String; + SComponentError: String; + SComponentAssignError: String; + + +implementation + +initialization + SLangNotFound := 'Language ''%s'' not found'; + SInvalidLanguage := 'Invalid language definition'; + SIdRedeclared := 'Identifier redeclared: '; + SUnknownType := 'Unknown type: '; + SIncompatibleTypes := 'Incompatible types'; + SIdUndeclared := 'Undeclared identifier: '; + SClassRequired := 'Class type required'; + SIndexRequired := 'Index required'; + SStringError := 'Strings doesn''t have properties or methods'; + SClassError := 'Class %s does not have a default property'; + SArrayRequired := 'Array type required'; + SVarRequired := 'Variable required'; + SNotEnoughParams := 'Not enough actual parameters'; + STooManyParams := 'Too many actual parameters'; + SLeftCantAssigned := 'Left side cannot be assigned to'; + SForError := 'For loop variable must be numeric variable'; + SEventError := 'Event handler must be a procedure'; + SComponentError := 'Component with name %s not found'; + SComponentAssignError := 'Can not assign value to component field %s'; + +end. diff --git a/FastScript/fs_icpp.pas b/FastScript/fs_icpp.pas new file mode 100644 index 0000000..dc1f955 --- /dev/null +++ b/FastScript/fs_icpp.pas @@ -0,0 +1,183 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ C++ grammar } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +//VCL uses section +{$IFNDEF FMX} +unit fs_icpp; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_itools{$IFDEF DELPHI16}, Controls{$ENDIF}; +{$ELSE} + +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_itools, FMX.Types; +{$ENDIF} + +type +{$i frxPlatformsAttribute.inc} + TfsCPP = class(TComponent); + + +implementation + +const + CPP_GRAMMAR = + '' + + '' + + '<' + + 'err20 text="''>'' expected"/>' + + '' + + '' + + '<' + + 'sequence>' + + '<' + + 'sequence>' + + '' + + '' + + '' + + ''; + + +initialization +{$IFDEF DELPHI16} +{$IFDEF FMX} + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsCPP, TFmxObject); +{$ELSE} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsCPP, TControl); +{$ENDIF} +{$ENDIF} + fsRegisterLanguage('C++Script', CPP_GRAMMAR); + +end. diff --git a/FastScript/fs_idbctrlsrtti.pas b/FastScript/fs_idbctrlsrtti.pas new file mode 100644 index 0000000..accf4b5 --- /dev/null +++ b/FastScript/fs_idbctrlsrtti.pas @@ -0,0 +1,189 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ DB controls } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_idbctrlsrtti; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_iinterpreter, fs_itools, fs_iformsrtti, fs_idbrtti, DB +{$IFDEF CLX} +, QDBCtrls, QDBGrids +{$ELSE} +, DBCtrls, DBGrids +{$ENDIF} +{$IFDEF DELPHI16}, Controls{$ENDIF}; + + +type +{$i frxPlatformsAttribute.inc} + TfsDBCtrlsRTTI = class(TComponent); // fake component + + +implementation + +type +{$IFNDEF FPC} + THackDBLookupControl = class(TDBLookupControl); +{$ENDIF} + + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddEnumSet('TButtonSet', 'nbFirst, nbPrior, nbNext, nbLast,' + + 'nbInsert, nbDelete, nbEdit, nbPost, nbCancel, nbRefresh'); + AddEnum('TColumnButtonStyle', 'cbsAuto, cbsEllipsis, cbsNone'); + AddEnumSet('TDBGridOptions', 'dgEditing, dgAlwaysShowEditor, dgTitles,' + + 'dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgRowSelect,' + + 'dgAlwaysShowSelection, dgConfirmDelete, dgCancelOnExit, dgMultiSelect'); + + AddClass(TDBEdit, 'TWinControl'); + AddClass(TDBText, 'TGraphicControl'); + with AddClass(TDBCheckBox, 'TWinControl') do + AddProperty('Checked', 'Boolean', GetProp, nil); + with AddClass(TDBComboBox, 'TCustomComboBox') do + AddProperty('Text', 'String', GetProp, nil); + AddClass(TDBListBox, 'TCustomListBox'); + with AddClass(TDBRadioGroup, 'TWinControl') do + begin + AddProperty('ItemIndex', 'Integer', GetProp, nil); + AddProperty('Value', 'String', GetProp, nil); + end; + AddClass(TDBMemo, 'TWinControl'); + AddClass(TDBImage, 'TCustomControl'); + AddClass(TDBNavigator, 'TWinControl'); +{$IFNDEF FPC} + with AddClass(TDBLookupControl, 'TCustomControl') do + AddProperty('KeyValue', 'Variant', GetProp, SetProp); + with AddClass(TDBLookupListBox, 'TDBLookupControl') do + AddProperty('SelectedItem', 'String', GetProp, nil); + with AddClass(TDBLookupComboBox, 'TDBLookupControl') do + AddProperty('Text', 'String', GetProp, nil); +{$ENDIF} + AddClass(TColumnTitle, 'TPersistent'); + AddClass(TColumn, 'TPersistent'); + with AddClass(TDBGridColumns, 'TCollection') do + begin + AddMethod('function Add: TColumn', CallMethod); + AddMethod('procedure RebuildColumns', CallMethod); + AddMethod('procedure RestoreDefaults', CallMethod); + AddDefaultProperty('Items', 'Integer', 'TColumn', CallMethod, True); + end; + AddClass(TDBGrid, 'TWinControl'); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + + if ClassType = TDBGridColumns then + begin + if MethodName = 'ADD' then + Result := frxInteger(TDBGridColumns(Instance).Add) + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(TDBGridColumns(Instance).Items[Caller.Params[0]]) +{$IFNDEF FPC} + else if MethodName = 'REBUILDCOLUMNS' then + TDBGridColumns(Instance).RebuildColumns + else if MethodName = 'RESTOREDEFAULTS' then + TDBGridColumns(Instance).RestoreDefaults +{$ENDIF} + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TDBCheckBox then + begin + if PropName = 'CHECKED' then + Result := TDBCheckBox(Instance).Checked + end + else if ClassType = TDBComboBox then + begin + if PropName = 'TEXT' then + Result := TDBComboBox(Instance).Text + end + else if ClassType = TDBRadioGroup then + begin + if PropName = 'ITEMINDEX' then + Result := TDBRadioGroup(Instance).ItemIndex + else if PropName = 'VALUE' then + Result := TDBRadioGroup(Instance).Value + end +{$IFNDEF FPC} + else if ClassType = TDBLookupControl then + begin + if PropName = 'KEYVALUE' then + Result := THackDBLookupControl(Instance).KeyValue + end + else if ClassType = TDBLookupListBox then + begin + if PropName = 'SELECTEDITEM' then + Result := TDBLookupListBox(Instance).SelectedItem + end + else if ClassType = TDBLookupComboBox then + begin + if PropName = 'TEXT' then + Result := TDBLookupComboBox(Instance).Text + end +{$ENDIF} +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin +{$IFNDEF FPC} + if ClassType = TDBLookupControl then + begin + if PropName = 'KEYVALUE' then + THackDBLookupControl(Instance).KeyValue := Value + end +{$ENDIF} +end; + + +initialization +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsDBCtrlsRTTI, TControl); +{$ENDIF} + fsRTTIModules.Add(TFunctions); + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/fs_idbreg.pas b/FastScript/fs_idbreg.pas new file mode 100644 index 0000000..3c4dcbf --- /dev/null +++ b/FastScript/fs_idbreg.pas @@ -0,0 +1,46 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_idbreg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + Classes +{$IFNDEF Delphi6} +, DsgnIntf +{$ELSE} +, DesignIntf +{$ENDIF} +{$IFDEF DELPHI16} +, Controls +{$ENDIF} +, fs_idbrtti, fs_idbctrlsrtti; + +{-----------------------------------------------------------------------} + +procedure Register; +begin +{$IFDEF DELPHI16} + //GroupDescendentsWith(TfsDBRTTI, TControl); + //GroupDescendentsWith(TfsDBCtrlsRTTI, TControl); +{$ENDIF} + RegisterComponents('FastScript', [TfsDBRTTI, TfsDBCtrlsRTTI]); +end; + +end. diff --git a/FastScript/fs_idbrtti.pas b/FastScript/fs_idbrtti.pas new file mode 100644 index 0000000..d389fd4 --- /dev/null +++ b/FastScript/fs_idbrtti.pas @@ -0,0 +1,583 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ DB.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_idbrtti; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_iinterpreter, fs_itools, fs_iclassesrtti, fs_ievents, + DB +{$IFDEF Delphi16} + , System.Types +{$ENDIF} +{$IFDEF DELPHI16}, Controls{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsDBRTTI = class(TComponent); // fake component + + TfsDatasetNotifyEvent = class(TfsCustomEvent) + public + procedure DoEvent(Dataset: TDataset); + function GetMethod: Pointer; override; + end; + + TfsFilterRecordEvent = class(TfsCustomEvent) + public + procedure DoEvent(DataSet: TDataSet; var Accept: Boolean); + function GetMethod: Pointer; override; + end; + + TfsFieldGetTextEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TField; var Text: String; DisplayText: Boolean); + function GetMethod: Pointer; override; + end; + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TfsDatasetNotifyEvent } + +procedure TfsDatasetNotifyEvent.DoEvent(Dataset: TDataset); +begin + CallHandler([Dataset]); +end; + +function TfsDatasetNotifyEvent.GetMethod: Pointer; +begin + Result := @TfsDatasetNotifyEvent.DoEvent; +end; + + +{ TfsFilterRecordEvent } + +procedure TfsFilterRecordEvent.DoEvent(DataSet: TDataSet; var Accept: Boolean); +begin + CallHandler([DataSet, Accept]); + Accept := Handler.Params[1].Value; +end; + +function TfsFilterRecordEvent.GetMethod: Pointer; +begin + Result := @TfsFilterRecordEvent.DoEvent; +end; + + +{ TfsFieldGetTextEvent } + +procedure TfsFieldGetTextEvent.DoEvent(Sender: TField; var Text: String; DisplayText: Boolean); +begin + CallHandler([Sender, Text, DisplayText]); + Text := Handler.Params[1].Value; +end; + +function TfsFieldGetTextEvent.GetMethod: Pointer; +begin + Result := @TfsFieldGetTextEvent.DoEvent; +end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddEnum('TFieldType', 'ftUnknown, ftString, ftSmallint, ftInteger, ftWord,' + + 'ftBoolean, ftFloat, ftCurrency, ftBCD, ftDate, ftTime, ftDateTime,' + + 'ftBytes, ftVarBytes, ftAutoInc, ftBlob, ftMemo, ftGraphic, ftFmtMemo,' + + 'ftParadoxOle, ftDBaseOle, ftTypedBinary, ftCursor, ftFixedChar, ftWideString,' + + 'ftLargeint, ftADT, ftArray, ftReference, ftDataSet, ftOraBlob, ftOraClob,' + + 'ftVariant, ftInterface, ftIDispatch, ftGuid, ftTimeStamp, ftFMTBcd'); + AddEnum('TBlobStreamMode', 'bmRead, bmWrite, bmReadWrite'); + AddEnumSet('TLocateOptions', 'loCaseInsensitive, loPartialKey'); + AddEnumSet('TFilterOptions', 'foCaseInsensitive, foNoPartialCompare'); + AddEnum('TParamType', 'ptUnknown, ptInput, ptOutput, ptInputOutput, ptResult'); + + with AddClass(TField, 'TComponent') do + begin + AddProperty('AsBoolean', 'Boolean', GetProp, SetProp); + AddProperty('AsCurrency', 'Currency', GetProp, SetProp); + AddProperty('AsDateTime', 'TDateTime', GetProp, SetProp); + AddProperty('AsFloat', 'Double', GetProp, SetProp); + AddProperty('AsInteger', 'Integer', GetProp, SetProp); + AddProperty('AsString', 'String', GetProp, SetProp); + AddProperty('AsVariant', 'Variant', GetProp, SetProp); + AddProperty('DataType', 'TFieldType', GetProp, nil); + AddProperty('DisplayName', 'String', GetProp, nil); + AddProperty('DisplayText', 'String', GetProp, nil); + AddProperty('IsNull', 'Boolean', GetProp, nil); + AddProperty('Size', 'Integer', GetProp, SetProp); + AddProperty('Value', 'Variant', GetProp, SetProp); + AddProperty('OldValue', 'Variant', GetProp, nil); + AddEvent('OnGetText', TfsFieldGetTextEvent); + end; + with AddClass(TFields, 'TObject') do + AddDefaultProperty('Fields', 'Integer', 'TField', CallMethod, True); + AddClass(TStringField, 'TField'); + AddClass(TNumericField, 'TField'); + AddClass(TIntegerField, 'TNumericField'); + AddClass(TSmallIntField, 'TIntegerField'); + AddClass(TWordField, 'TIntegerField'); + AddClass(TAutoIncField, 'TIntegerField'); + AddClass(TFloatField, 'TNumericField'); + AddClass(TCurrencyField, 'TFloatField'); + AddClass(TBooleanField, 'TField'); + AddClass(TDateTimeField, 'TField'); + AddClass(TDateField, 'TDateTimeField'); + AddClass(TTimeField, 'TDateTimeField'); + AddClass(TBinaryField, 'TField'); + AddClass(TBytesField, 'TBinaryField'); + AddClass(TVarBytesField, 'TBinaryField'); + AddClass(TBCDField, 'TNumericField'); + with AddClass(TBlobField, 'TField') do + begin + AddMethod('procedure LoadFromFile(const FileName: String)', CallMethod); + AddMethod('procedure LoadFromStream(Stream: TStream)', CallMethod); + AddMethod('procedure SaveToFile(const FileName: String)', CallMethod); + AddMethod('procedure SaveToStream(Stream: TStream)', CallMethod); + end; + AddClass(TMemoField, 'TBlobField'); + AddClass(TGraphicField, 'TBlobField'); + AddClass(TFieldDef, 'TPersistent'); + with AddClass(TFieldDefs, 'TObject') do + begin + AddMethod('function AddFieldDef: TFieldDef', CallMethod); + AddMethod('function Find(const Name: string): TFieldDef', CallMethod); + AddMethod('procedure Add(const Name: string; DataType: TFieldType; Size: Word; Required: Boolean)', CallMethod); + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure Update', CallMethod); + AddDefaultProperty('Items', 'Integer', 'TFieldDef', CallMethod, True); + end; + AddClass(TDataSource, 'TComponent'); + AddType('TBookmark', fvtVariant); + with AddClass(TDataSet, 'TComponent') do + begin + AddMethod('procedure Open', CallMethod); + AddMethod('procedure Close', CallMethod); + AddMethod('procedure First', CallMethod); + AddMethod('procedure Last', CallMethod); + AddMethod('procedure Next', CallMethod); + AddMethod('procedure Prior', CallMethod); + AddMethod('procedure Cancel', CallMethod); + AddMethod('procedure Delete', CallMethod); + AddMethod('procedure Post', CallMethod); + AddMethod('procedure Append', CallMethod); + AddMethod('procedure Insert', CallMethod); + AddMethod('procedure Edit', CallMethod); + + AddMethod('function FieldByName(const FieldName: string): TField', CallMethod); + AddMethod('procedure GetFieldNames(List: TStrings)', CallMethod); + AddMethod('function FindFirst: Boolean', CallMethod); + AddMethod('function FindLast: Boolean', CallMethod); + AddMethod('function FindNext: Boolean', CallMethod); + AddMethod('function FindPrior: Boolean', CallMethod); + AddMethod('procedure FreeBookmark(Bookmark: TBookmark)', CallMethod); + AddMethod('function GetBookmark: TBookmark', CallMethod); + AddMethod('procedure GotoBookmark(Bookmark: TBookmark)', CallMethod); + AddMethod('function Locate(const KeyFields: string; const KeyValues: Variant;' + + 'Options: TLocateOptions): Boolean', CallMethod); + AddMethod('function IsEmpty: Boolean', CallMethod); + AddMethod('procedure EnableControls', CallMethod); + AddMethod('procedure DisableControls', CallMethod); + + AddProperty('Bof', 'Boolean', GetProp, nil); + AddProperty('Eof', 'Boolean', GetProp, nil); + AddProperty('FieldCount', 'Integer', GetProp, nil); + AddProperty('FieldDefs', 'TFieldDefs', GetProp, nil); + AddProperty('Fields', 'TFields', GetProp, nil); + AddProperty('Filter', 'string', GetProp, SetProp); + AddProperty('Filtered', 'Boolean', GetProp, SetProp); + AddProperty('FilterOptions', 'TFilterOptions', GetProp, SetProp); + AddProperty('Active', 'Boolean', GetProp, SetProp); + + AddEvent('BeforeOpen', TfsDatasetNotifyEvent); + AddEvent('AfterOpen', TfsDatasetNotifyEvent); + AddEvent('BeforeClose', TfsDatasetNotifyEvent); + AddEvent('AfterClose', TfsDatasetNotifyEvent); + AddEvent('BeforeInsert', TfsDatasetNotifyEvent); + AddEvent('AfterInsert', TfsDatasetNotifyEvent); + AddEvent('BeforeEdit', TfsDatasetNotifyEvent); + AddEvent('AfterEdit', TfsDatasetNotifyEvent); + AddEvent('BeforePost', TfsDatasetNotifyEvent); + AddEvent('AfterPost', TfsDatasetNotifyEvent); + AddEvent('BeforeCancel', TfsDatasetNotifyEvent); + AddEvent('AfterCancel', TfsDatasetNotifyEvent); + AddEvent('BeforeDelete', TfsDatasetNotifyEvent); + AddEvent('AfterDelete', TfsDatasetNotifyEvent); + AddEvent('BeforeScroll', TfsDatasetNotifyEvent); + AddEvent('AfterScroll', TfsDatasetNotifyEvent); + AddEvent('OnCalcFields', TfsDatasetNotifyEvent); + AddEvent('OnFilterRecord', TfsFilterRecordEvent); + AddEvent('OnNewRecord', TfsDatasetNotifyEvent); + end; + + with AddClass(TParam, 'TPersistent') do + begin + AddMethod('procedure Clear', CallMethod); + AddProperty('AsBoolean', 'Boolean', GetProp, SetProp); + AddProperty('AsCurrency', 'Currency', GetProp, SetProp); + AddProperty('AsDateTime', 'TDateTime', GetProp, SetProp); + AddProperty('AsFloat', 'Double', GetProp, SetProp); + AddProperty('AsInteger', 'Integer', GetProp, SetProp); + AddProperty('AsDate', 'TDate', GetProp, SetProp); + AddProperty('AsTime', 'TTime', GetProp, SetProp); + AddProperty('AsString', 'String', GetProp, SetProp); + AddProperty('Bound', 'Boolean', GetProp, SetProp); + AddProperty('IsNull', 'Boolean', GetProp, nil); + AddProperty('Text', 'String', GetProp, SetProp); + end; + with AddClass(TParams, 'TPersistent') do + begin + AddMethod('function ParamByName(const Value: string): TParam', CallMethod); + AddMethod('function FindParam(const Value: string): TParam', CallMethod); + AddDefaultProperty('Items', 'Integer', 'TParam', CallMethod, True); + end; + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + _TDataSet: TDataSet; + + function IntToLocateOptions(i: Integer): TLocateOptions; + begin + Result := []; + if (i and 1) <> 0 then + Result := Result + [loCaseInsensitive]; + if (i and 2) <> 0 then + Result := Result + [loPartialKey]; + end; + +begin + Result := 0; + + if ClassType = TFields then + begin + if MethodName = 'FIELDS.GET' then + Result := frxInteger(TFields(Instance)[Caller.Params[0]]) + end + else if ClassType = TFieldDefs then + begin + if MethodName = 'ITEMS.GET' then + Result := frxInteger(TFieldDefs(Instance)[Caller.Params[0]]) + else if MethodName = 'ADD' then + TFieldDefs(Instance).Add(Caller.Params[0], TFieldType(Caller.Params[1]), Caller.Params[2], Caller.Params[3]) + else if MethodName = 'ADDFIELDDEF' then + Result := frxInteger(TFieldDefs(Instance).AddFieldDef) + else if MethodName = 'CLEAR' then + TFieldDefs(Instance).Clear + else if MethodName = 'FIND' then + Result := frxInteger(TFieldDefs(Instance).Find(Caller.Params[0])) + else if MethodName = 'UPDATE' then + TFieldDefs(Instance).Update + end + else if ClassType = TBlobField then + begin + if MethodName = 'LOADFROMFILE' then + TBlobField(Instance).LoadFromFile(Caller.Params[0]) + else if MethodName = 'LOADFROMSTREAM' then + TBlobField(Instance).LoadFromStream(TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'SAVETOFILE' then + TBlobField(Instance).SaveToFile(Caller.Params[0]) + else if MethodName = 'SAVETOSTREAM' then + TBlobField(Instance).SaveToStream(TStream(frxInteger(Caller.Params[0]))) + end + else if ClassType = TDataSet then + begin + _TDataSet := TDataSet(Instance); + if MethodName = 'OPEN' then + _TDataSet.Open + else if MethodName = 'CLOSE' then + _TDataSet.Close + else if MethodName = 'FIRST' then + _TDataSet.First + else if MethodName = 'LAST' then + _TDataSet.Last + else if MethodName = 'NEXT' then + _TDataSet.Next + else if MethodName = 'PRIOR' then + _TDataSet.Prior + else if MethodName = 'CANCEL' then + _TDataSet.Cancel + else if MethodName = 'DELETE' then + _TDataSet.Delete + else if MethodName = 'POST' then + _TDataSet.Post + else if MethodName = 'APPEND' then + _TDataSet.Append + else if MethodName = 'INSERT' then + _TDataSet.Insert + else if MethodName = 'EDIT' then + _TDataSet.Edit + else if MethodName = 'FIELDBYNAME' then + Result := frxInteger(_TDataSet.FieldByName(Caller.Params[0])) + else if MethodName = 'GETFIELDNAMES' then + _TDataSet.GetFieldNames(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'FINDFIRST' then + Result := _TDataSet.FindFirst + else if MethodName = 'FINDLAST' then + Result := _TDataSet.FindLast + else if MethodName = 'FINDNEXT' then + Result := _TDataSet.FindNext + else if MethodName = 'FINDPRIOR' then + Result := _TDataSet.FindPrior + else if MethodName = 'FREEBOOKMARK' then + _TDataSet.FreeBookmark(TBookMark(frxInteger(Caller.Params[0]))) + + else if MethodName = 'GETBOOKMARK' then +{$IFDEF DELPHI16} + Result := Variant(_TDataSet.GetBookmark) +{$ELSE} + Result := Variant(frxInteger(_TDataSet.GetBookmark)) +{$ENDIF} + else if MethodName = 'GOTOBOOKMARK' then +{$IFDEF DELPHI16} + _TDataSet.GotoBookmark(TBookMark(Variant(Caller.Params[0]))) +{$ELSE} + _TDataSet.GotoBookmark(TBookMark(frxInteger(Caller.Params[0]))) +{$ENDIF} + else if MethodName = 'LOCATE' then + Result := _TDataSet.Locate(Caller.Params[0], Caller.Params[1], IntToLocateOptions(Caller.Params[2])) + else if MethodName = 'ISEMPTY' then + Result := _TDataSet.IsEmpty + else if MethodName = 'ENABLECONTROLS' then + _TDataSet.EnableControls + else if MethodName = 'DISABLECONTROLS' then + _TDataSet.DisableControls + end + else if ClassType = TParam then + begin + if MethodName = 'CLEAR' then + TParam(Instance).Clear + end + else if ClassType = TParams then + begin + if MethodName = 'PARAMBYNAME' then + Result := frxInteger(TParams(Instance).ParamByName(Caller.Params[0])) + else if MethodName = 'FINDPARAM' then + Result := frxInteger(TParams(Instance).FindParam(Caller.Params[0])) + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(TParams(Instance)[Caller.Params[0]]) + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +var + _TField: TField; + _TParam: TParam; + _TDataSet: TDataSet; + + function FilterOptionsToInt(f: TFilterOptions): Integer; + begin + Result := 0; + if foCaseInsensitive in f then + Result := Result or 1; + if foNoPartialCompare in f then + Result := Result or 2; + end; + +begin + Result := 0; + + if ClassType = TField then + begin + _TField := TField(Instance); + if PropName = 'ASBOOLEAN' then + Result := _TField.AsBoolean + else if PropName = 'ASCURRENCY' then + Result := _TField.AsCurrency + else if PropName = 'ASDATETIME' then + Result := _TField.AsDateTime + else if PropName = 'ASFLOAT' then + Result := _TField.AsFloat + else if PropName = 'ASINTEGER' then + Result := _TField.AsInteger + else if PropName = 'ASSTRING' then + Result := _TField.AsString + else if PropName = 'ASVARIANT' then + Result := _TField.AsVariant + else if PropName = 'DATATYPE' then + Result := _TField.DataType + else if PropName = 'DISPLAYNAME' then + Result := _TField.DisplayName + else if PropName = 'DISPLAYTEXT' then + Result := _TField.DisplayText + else if PropName = 'ISNULL' then + Result := _TField.IsNull + else if PropName = 'SIZE' then + Result := _TField.Size + else if PropName = 'VALUE' then + Result := _TField.Value + else if PropName = 'OLDVALUE' then + Result := _TField.OldValue + end + else if ClassType = TDataSet then + begin + _TDataSet := TDataSet(Instance); + if PropName = 'BOF' then + Result := _TDataSet.Bof + else if PropName = 'EOF' then + Result := _TDataSet.Eof + else if PropName = 'FIELDCOUNT' then + Result := _TDataSet.FieldCount + else if PropName = 'FIELDDEFS' then + Result := frxInteger(_TDataSet.FieldDefs) + else if PropName = 'FIELDS' then + Result := frxInteger(_TDataSet.Fields) + else if PropName = 'FILTER' then + Result := _TDataSet.Filter + else if PropName = 'FILTERED' then + Result := _TDataSet.Filtered + else if PropName = 'FILTEROPTIONS' then + Result := FilterOptionsToInt(_TDataSet.FilterOptions) + else if PropName = 'ACTIVE' then + Result := _TDataSet.Active + end + else if ClassType = TParam then + begin + _TParam := TParam(Instance); + if PropName = 'BOUND' then + Result := _TParam.Bound + else if PropName = 'ISNULL' then + Result := _TParam.IsNull + else if PropName = 'TEXT' then + Result := _TParam.Text + else if PropName = 'ASBOOLEAN' then + Result := _TParam.AsBoolean + else if PropName = 'ASCURRENCY' then + Result := _TParam.AsCurrency + else if PropName = 'ASDATETIME' then + Result := _TParam.AsDateTime + else if PropName = 'ASFLOAT' then + Result := _TParam.AsFloat + else if PropName = 'ASINTEGER' then + Result := _TParam.AsInteger + else if PropName = 'ASDATE' then + Result := _TParam.AsDate + else if PropName = 'ASTIME' then + Result := _TParam.AsTime + else if PropName = 'ASSTRING' then + Result := _TParam.AsString + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +var + _TField: TField; + _TParam: TParam; + _TDataSet: TDataSet; + + function IntToFilterOptions(i: Integer): TFilterOptions; + begin + Result := []; + if (i and 1) <> 0 then + Result := Result + [foCaseInsensitive]; + if (i and 2) <> 0 then + Result := Result + [foNoPartialCompare]; + end; + +begin + if ClassType = TField then + begin + _TField := TField(Instance); + if PropName = 'ASBOOLEAN' then + _TField.AsBoolean := Value + else if PropName = 'ASCURRENCY' then + _TField.AsCurrency := Value + else if PropName = 'ASDATETIME' then + _TField.AsDateTime := Value + else if PropName = 'ASFLOAT' then + _TField.AsFloat := Value + else if PropName = 'ASINTEGER' then + _TField.AsInteger := Value + else if PropName = 'ASSTRING' then + _TField.AsString := Value + else if PropName = 'ASVARIANT' then + _TField.AsVariant := Value + else if PropName = 'VALUE' then + _TField.Value := Value + else if PropName = 'SIZE' then + _TField.Size := Value + end + else if ClassType = TDataSet then + begin + _TDataSet := TDataSet(Instance); + if PropName = 'FILTER' then + _TDataSet.Filter := Value + else if PropName = 'FILTERED' then + _TDataSet.Filtered := Value + else if PropName = 'FILTEROPTIONS' then + _TDataSet.FilterOptions := IntToFilterOptions(Value) + else if PropName = 'ACTIVE' then + _TDataSet.Active := Value + end + else if ClassType = TParam then + begin + _TParam := TParam(Instance); + if PropName = 'ASBOOLEAN' then + _TParam.AsBoolean := Value + else if PropName = 'ASCURRENCY' then + _TParam.AsCurrency := Value + else if PropName = 'ASDATETIME' then + _TParam.AsDateTime := Value + else if PropName = 'ASFLOAT' then + _TParam.AsFloat := Value + else if PropName = 'ASINTEGER' then + _TParam.AsInteger := Value + else if PropName = 'ASDATE' then + _TParam.AsDate := Value + else if PropName = 'ASTIME' then + _TParam.AsTime := Value + else if PropName = 'ASSTRING' then + _TParam.AsString := Value + else if PropName = 'BOUND' then + _TParam.Bound := Value + else if PropName = 'TEXT' then + _TParam.Text := Value + end +end; + + +initialization +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsDBRTTI, TControl); +{$ENDIF} + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/fs_idialogsrtti.pas b/FastScript/fs_idialogsrtti.pas new file mode 100644 index 0000000..6f9a406 --- /dev/null +++ b/FastScript/fs_idialogsrtti.pas @@ -0,0 +1,167 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Dialogs.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_idialogsrtti; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_iinterpreter, fs_iclassesrtti +{$IFDEF DELPHI16} +, System.UITypes +{$ENDIF} +{$IFDEF CLX} +, QDialogs +{$ELSE} +, Dialogs +{$ENDIF} +{$IFDEF Delphi16} + , System.Types +{$ENDIF} +{$IFDEF DELPHI16}, Controls{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsDialogsRTTI = class(TComponent); // fake component + + +implementation + +type +{$IFDEF CLX} + THackDialog = class(TDialog); +{$ELSE} + THackDialog = class(TCommonDialog); +{$ENDIF} + + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + public + constructor Create(AScript: TfsScript); override; + end; + +type + TWordSet = set of 0..15; + PWordSet = ^TWordSet; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +var + dlg: String; +begin + inherited Create(AScript); + with AScript do + begin + AddEnumSet('TOpenOptions', 'ofReadOnly, ofOverwritePrompt, ofHideReadOnly,' + + 'ofNoChangeDir, ofShowHelp, ofNoValidate, ofAllowMultiSelect,' + + 'ofExtensionDifferent, ofPathMustExist, ofFileMustExist, ofCreatePrompt,' + + 'ofShareAware, ofNoReadOnlyReturn, ofNoTestFileCreate, ofNoNetworkButton,' + + 'ofNoLongNames, ofOldStyleDialog, ofNoDereferenceLinks, ofEnableIncludeNotify,' + + 'ofEnableSizing'); + AddEnum('TFileEditStyle', 'fsEdit, fsComboBox'); + AddEnumSet('TColorDialogOptions', 'cdFullOpen, cdPreventFullOpen, cdShowHelp,' + + 'cdSolidColor, cdAnyColor'); + AddEnumSet('TFontDialogOptions', 'fdAnsiOnly, fdTrueTypeOnly, fdEffects,' + + 'fdFixedPitchOnly, fdForceFontExist, fdNoFaceSel, fdNoOEMFonts,' + + 'fdNoSimulations, fdNoSizeSel, fdNoStyleSel, fdNoVectorFonts,' + + 'fdShowHelp, fdWysiwyg, fdLimitSize, fdScalableOnly, fdApplyButton'); + AddEnum('TFontDialogDevice', 'fdScreen, fdPrinter, fdBoth'); + AddEnum('TPrintRange', 'prAllPages, prSelection, prPageNums'); + AddEnumSet('TPrintDialogOptions', 'poPrintToFile, poPageNums, poSelection,' + + 'poWarning, poHelp, poDisablePrintToFile'); +{$IFNDEF CLX} + AddEnum('TMsgDlgType', 'mtWarning, mtError, mtInformation, mtConfirmation, mtCustom'); + AddEnumSet('TMsgDlgButtons', 'mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, ' + + 'mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp'); +{$ELSE} + AddEnum('TMsgDlgType', 'mtCustom, mtInformation, mtWarning, mtError, mtConfirmation'); + AddEnumSet('TMsgDlgButtons', 'mbNone, mbOk, mbCancel, mbYes, mbNo, mbAbort, ' + + 'mbRetry, mbIgnore'); +{$ENDIF} + +{$IFDEF CLX} + dlg := 'TDialog'; + with AddClass(TDialog, 'TComponent') do +{$ELSE} + dlg := 'TCommonDialog'; + with AddClass(TCommonDialog, 'TComponent') do +{$ENDIF} + AddMethod('function Execute: Boolean', CallMethod); + AddClass(TOpenDialog, dlg); + AddClass(TSaveDialog, dlg); + AddClass(TColorDialog, dlg); + AddClass(TFontDialog, dlg); +{$IFNDEF CLX} + {$IFNDEF FPC} + // todo: wait lazarus 1.0 TPrintDialog is targeted in Mantis to 1.0 + AddClass(TPrintDialog, dlg); + AddClass(TPrinterSetupDialog, dlg); + {$ENDIF} +{$ENDIF} + AddMethod('function MessageDlg(Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer', CallMethod, 'ctOther'); + AddMethod('function InputBox(ACaption, APrompt, ADefault: string): string', CallMethod, 'ctOther'); + AddMethod('function InputQuery(ACaption, APrompt: string; var Value: string): Boolean', CallMethod, 'ctOther'); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + s: String; + b: TMsgDlgButtons; +begin + Result := 0; + +{$IFDEF CLX} + if ClassType = TDialog then +{$ELSE} + if ClassType = TCommonDialog then +{$ENDIF} + begin + if MethodName = 'EXECUTE' then + Result := THackDialog(Instance).Execute + end + else if MethodName = 'INPUTBOX' then + Result := InputBox(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'INPUTQUERY' then + begin + s := Caller.Params[2]; + Result := InputQuery(Caller.Params[0], Caller.Params[1], s); + Caller.Params[2] := s; + end + else if MethodName = 'MESSAGEDLG' then + begin + Word(PWordSet(@b)^) := Caller.Params[2]; + Result := MessageDlg(Caller.Params[0], Caller.Params[1], b, Caller.Params[3]); + end +end; + + +initialization +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsDialogsRTTI, TControl); +{$ENDIF} + fsRTTIModules.Add(TFunctions); + + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. \ No newline at end of file diff --git a/FastScript/fs_idisp.pas b/FastScript/fs_idisp.pas new file mode 100644 index 0000000..a361d8a --- /dev/null +++ b/FastScript/fs_idisp.pas @@ -0,0 +1,136 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ OLE dispatch module } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_idisp; + +interface + +{$I fs.inc} + +uses + Windows, Classes, SysUtils, ActiveX, ComObj, fs_iinterpreter +{$IFDEF Delphi6} +, Variants +{$ENDIF}; + + +type + TfsOLEHelper = class(TfsCustomHelper) + private + function DispatchInvoke(const ParamArray: Variant; ParamCount: Integer; + Flags: Word): Variant; + protected + procedure SetValue(const Value: Variant); override; + function GetValue: Variant; override; + public + constructor Create(const AName: String); + end; + + +implementation + + +constructor TfsOLEHelper.Create(const AName: String); +begin + inherited Create(AName, fvtVariant, ''); +end; + +function TfsOLEHelper.DispatchInvoke(const ParamArray: Variant; ParamCount: Integer; + Flags: Word): Variant; +const + DispIDArgs: Longint = DISPID_PROPERTYPUT; +var + DispId: TDispId; + Params: TDISPPARAMS; + pName: WideString; + ExcepMess: WideString; + Args: array[0..63] of Variant; + i: Integer; + PResult: PVariant; + Status: Integer; + ExcepInfo: TExcepInfo; +begin + ExcepMess := ''; + pName := WideString(Name); + IDispatch(ParentValue).GetIDsOfNames(GUID_NULL, @pName, 1, GetThreadLocale, @DispId); + + for i := 0 to ParamCount - 1 do + Args[i] := ParamArray[ParamCount - i - 1]; + + Params.rgvarg := @Args; + Params.rgdispidNamedArgs := nil; + Params.cArgs := ParamCount; + Params.cNamedArgs := 0; + if (Flags = DISPATCH_PROPERTYPUT) or (Flags = DISPATCH_PROPERTYPUTREF) then + begin + Params.rgdispidNamedArgs := @DispIDArgs; + Params.cNamedArgs := 1; + end; + + if NeedResult and (Flags <> DISPATCH_PROPERTYPUT) and (Flags <> DISPATCH_PROPERTYPUTREF) then + PResult := @Result else + PResult := nil; + if PResult <> nil then + VarClear(PResult^); + if (Flags = DISPATCH_METHOD) {and (ParamCount = 0)} and (PResult <> nil) then + Flags := DISPATCH_METHOD or DISPATCH_PROPERTYGET; + + Status := IDispatch(ParentValue).Invoke(DispId, GUID_NULL, 0, + Flags, Params, PResult, @ExcepInfo, nil); + if Status <> 0 then + begin + if ExcepInfo.bstrSource <> '' then + ExcepMess := #13+#10 + 'Source :: '+ ExcepInfo.bstrSource; + if ExcepInfo.bstrDescription <> '' then + ExcepMess := ExcepMess + #13#10 + 'Description :: '+ ExcepInfo.bstrDescription; + if ExcepInfo.bstrHelpFile <> '' then + ExcepMess := ExcepMess + #13#10 + 'Help File :: '+ ExcepInfo.bstrHelpFile; +{$IFDEF Delphi12} + raise Exception.Create('OLE error ' + IntToHex(Status, 8) + ': ' + + String(Name) + ': ' + SysErrorMessage(Status) + ExcepMess); +{$ELSE} + raise Exception.Create('OLE error ' + IntToHex(Status, 8) + ': ' + + Name + ': ' + SysErrorMessage(Status) + ExcepMess); +{$ENDIF} + end; +end; + +procedure TfsOLEHelper.SetValue(const Value: Variant); +var + i: Integer; + v: Variant; + Flag: Word; +begin + v := VarArrayCreate([0, Count], varVariant); + for i := 0 to Count - 1 do + v[i] := Params[i].Value; + v[Count] := Value; + Flag := DISPATCH_PROPERTYPUT; + if VarType(Value) = varDispatch then + Flag := DISPATCH_PROPERTYPUTREF; + DispatchInvoke(v, Count + 1, Flag); + ParentValue := Null; +end; + +function TfsOLEHelper.GetValue: Variant; +var + i: Integer; + v: Variant; +begin + v := VarArrayCreate([0, Count - 1], varVariant); + for i := 0 to Count - 1 do + v[i] := Params[i].Value; + + Result := DispatchInvoke(v, Count, DISPATCH_METHOD); + ParentValue := Null; +end; + +end. diff --git a/FastScript/fs_ievents.pas b/FastScript/fs_ievents.pas new file mode 100644 index 0000000..310d117 --- /dev/null +++ b/FastScript/fs_ievents.pas @@ -0,0 +1,201 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Standard events } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_ievents; + +interface + +{$i fs.inc} + +uses SysUtils, Classes, fs_iinterpreter +{$IFDEF CLX} +, QControls, QForms +{$ELSE} +, Controls, Forms +{$ENDIF}; + +type + TfsNotifyEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject); + function GetMethod: Pointer; override; + end; + + TfsMouseEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); + function GetMethod: Pointer; override; + end; + + TfsMouseMoveEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; Shift: TShiftState; X, Y: Integer); + function GetMethod: Pointer; override; + end; + + TfsKeyEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var Key: Word; Shift: TShiftState); + function GetMethod: Pointer; override; + end; + + TfsKeyPressEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var Key: Char); + function GetMethod: Pointer; override; + end; + + TfsCloseEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var Action: TCloseAction); + function GetMethod: Pointer; override; + end; + + TfsCloseQueryEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var CanClose: Boolean); + function GetMethod: Pointer; override; + end; + + TfsCanResizeEvent = class(TfsCustomEvent) + public + procedure DoEvent(Sender: TObject; var NewWidth, NewHeight: Integer; + var Resize: Boolean); + function GetMethod: Pointer; override; + end; + + +implementation + + +type + TByteSet = set of 0..7; + PByteSet = ^TByteSet; + + +{ TfsNotifyEvent } + +procedure TfsNotifyEvent.DoEvent(Sender: TObject); +begin + CallHandler([Sender]); +end; + +function TfsNotifyEvent.GetMethod: Pointer; +begin + Result := @TfsNotifyEvent.DoEvent; +end; + +{ TfsMouseEvent } + +procedure TfsMouseEvent.DoEvent(Sender: TObject; Button: TMouseButton; + Shift: TShiftState; X, Y: Integer); +var + b: Byte; +begin + b := Byte(PByteSet(@Shift)^); + CallHandler([Sender, Integer(Button), b, X, Y]); +end; + +function TfsMouseEvent.GetMethod: Pointer; +begin + Result := @TfsMouseEvent.DoEvent; +end; + +{ TfsMouseMoveEvent } + +procedure TfsMouseMoveEvent.DoEvent(Sender: TObject; Shift: TShiftState; X, + Y: Integer); +var + b: Byte; +begin + b := Byte(PByteSet(@Shift)^); + CallHandler([Sender, b, X, Y]); +end; + +function TfsMouseMoveEvent.GetMethod: Pointer; +begin + Result := @TfsMouseMoveEvent.DoEvent; +end; + +{ TfsKeyEvent } + +procedure TfsKeyEvent.DoEvent(Sender: TObject; var Key: Word; + Shift: TShiftState); +var + b: Byte; +begin + b := Byte(PByteSet(@Shift)^); + CallHandler([Sender, Key, b]); + Key := Handler.Params[1].Value; +end; + +function TfsKeyEvent.GetMethod: Pointer; +begin + Result := @TfsKeyEvent.DoEvent; +end; + +{ TfsKeyPressEvent } + +procedure TfsKeyPressEvent.DoEvent(Sender: TObject; var Key: Char); +begin + CallHandler([Sender, Key]); + Key := String(Handler.Params[1].Value)[1]; +end; + +function TfsKeyPressEvent.GetMethod: Pointer; +begin + Result := @TfsKeyPressEvent.DoEvent; +end; + +{ TfsCloseEvent } + +procedure TfsCloseEvent.DoEvent(Sender: TObject; var Action: TCloseAction); +begin + CallHandler([Sender, Integer(Action)]); + Action := Handler.Params[1].Value; +end; + +function TfsCloseEvent.GetMethod: Pointer; +begin + Result := @TfsCloseEvent.DoEvent; +end; + +{ TfsCloseQueryEvent } + +procedure TfsCloseQueryEvent.DoEvent(Sender: TObject; var CanClose: Boolean); +begin + CallHandler([Sender, CanClose]); + CanClose := Handler.Params[1].Value; +end; + +function TfsCloseQueryEvent.GetMethod: Pointer; +begin + Result := @TfsCloseQueryEvent.DoEvent; +end; + +{ TfsCanResizeEvent } + +procedure TfsCanResizeEvent.DoEvent(Sender: TObject; var NewWidth, + NewHeight: Integer; var Resize: Boolean); +begin + CallHandler([Sender, NewWidth, NewHeight, Resize]); + NewWidth := Handler.Params[1].Value; + NewHeight := Handler.Params[2].Value; + Resize := Handler.Params[3].Value; +end; + +function TfsCanResizeEvent.GetMethod: Pointer; +begin + Result := @TfsCanResizeEvent.DoEvent; +end; + +end. \ No newline at end of file diff --git a/FastScript/fs_iexpression.pas b/FastScript/fs_iexpression.pas new file mode 100644 index 0000000..bc7cfdd --- /dev/null +++ b/FastScript/fs_iexpression.pas @@ -0,0 +1,957 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Expression parser } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +//VCL uses section +{$IFNDEF FMX} +unit fs_iexpression; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_iinterpreter +{$IFDEF Delphi6} +, Variants +{$ENDIF}; +{$ELSE} +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, System.Variants; +{$ENDIF} + + +type + { List of operators } + + TfsOperatorType = (opNone, opGreat, opLess, opLessEq, opGreatEq, opNonEq, opEq, + opPlus, opMinus, opOr, opXor, opMul, opDivFloat, opDivInt, opMod, opAnd, + opShl, opShr, opLeftBracket, opRightBracket, opNot, opUnMinus, opIn, opIs); + +{ TfsExpression class holds a list of operands and operators. + List is represented in the tree form. + Call to methods AddXXX puts an expression element to the list. + Call to function Value calculates and returns the expression value } + + TfsExpressionNode = class(TfsCustomVariable) + private + FLeft, FRight, FParent: TfsExpressionNode; + procedure AddNode(Node: TfsExpressionNode); + procedure RemoveNode(Node: TfsExpressionNode); + public + destructor Destroy; override; + function Priority: Integer; virtual; abstract; + end; + + TfsOperandNode = class(TfsExpressionNode) + public + constructor Create(const AValue: Variant); + function Priority: Integer; override; + end; + + TfsOperatorNode = class(TfsExpressionNode) + private + FOp: TfsOperatorType; + FOptimizeInt: Boolean; + FOptimizeBool: Boolean; + public + constructor Create(Op: TfsOperatorType); + function Priority: Integer; override; + end; + + TfsDesignatorNode = class(TfsOperandNode) + private + FDesignator: TfsDesignator; + FVar: TfsCustomVariable; + protected + function GetValue: Variant; override; + public + constructor Create(ADesignator: TfsDesignator); + destructor Destroy; override; + end; + + TfsSetNode = class(TfsOperandNode) + private + FSetExpression: TfsSetExpression; + protected + function GetValue: Variant; override; + public + constructor Create(ASet: TfsSetExpression); + destructor Destroy; override; + end; + + TfsExpression = class(TfsCustomExpression) + private + FCurNode: TfsExpressionNode; + FNode: TfsExpressionNode; + FScript: TfsScript; + FSource: String; + procedure AddOperand(Node: TfsExpressionNode); + protected + function GetValue: Variant; override; + procedure SetValue(const Value: Variant); override; + public + constructor Create(Script: TfsScript); + destructor Destroy; override; + procedure AddConst(const AValue: Variant); + procedure AddConstWithType(const AValue: Variant; aTyp: TfsVarType); + procedure AddDesignator(ADesignator: TfsDesignator); + procedure AddOperator(const Op: String); + procedure AddSet(ASet: TfsSetExpression); + + function Finalize: String; + function Optimize(Designator: TfsDesignator): String; + function SingleItem: TfsCustomVariable; + + property Source: String read FSource write FSource; + end; + + +implementation + +//VCL uses section +{$IFNDEF FMX} +uses fs_itools; +//FMX uses section +{$ELSE} +uses FMX.fs_itools; +{$ENDIF} + +type + TNoneNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TGreatNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TLessNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TLessEqNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TGreatEqNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TNonEqNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TEqNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TPlusNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TStrCatNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TMinusNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TOrNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TXorNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TMulNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TDivFloatNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TDivIntNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TModNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TAndNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TShlNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TShrNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TLeftBracketNode = class(TfsOperatorNode); + + TRightBracketNode = class(TfsOperatorNode); + + TNotNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TUnMinusNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TInNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + TIsNode = class(TfsOperatorNode) + protected + function GetValue: Variant; override; + end; + + +function TNoneNode.GetValue: Variant; +begin + Result := FLeft.Value; +end; + +function TGreatNode.GetValue: Variant; +begin + Result := FLeft.Value; + Result := Result > FRight.Value; +end; + +function TLessNode.GetValue: Variant; +begin + Result := FLeft.Value; + Result := Result < FRight.Value; +end; + +function TLessEqNode.GetValue: Variant; +begin + Result := FLeft.Value; + Result := Result <= FRight.Value; +end; + +function TGreatEqNode.GetValue: Variant; +begin + Result := FLeft.Value; + Result := Result >= FRight.Value; +end; + +function TNonEqNode.GetValue: Variant; +begin + Result := FLeft.Value; + Result := Result <> FRight.Value; +end; + +function TEqNode.GetValue: Variant; +begin + Result := FLeft.Value; + Result := Result = FRight.Value; +end; + +function TPlusNode.GetValue: Variant; +begin + Result := FLeft.Value; + {$IFDEF FPC} + if TVarData(Result).Vtype = varEmpty then + Result := 0; + {$ENDIF} + Result := Result + FRight.Value; +end; + +function TStrCatNode.GetValue: Variant; +begin + Result := FLeft.Value; + if (TVarData(Result).VType = varString){$IFDEF Delphi12} or (TVarData(Result).VType = varUString){$ENDIF} then + Result := VarToStr(Result) + VarToStr(FRight.Value) else + Result := Result + FRight.Value; +end; + +function TMinusNode.GetValue: Variant; +begin + Result := FLeft.Value; + if FOptimizeInt then + Result := frxInteger(Result) - frxInteger(FRight.Value) + else + begin + {$IFDEF FPC} + if TVarData(Result).Vtype = varEmpty then + Result := 0; + {$ENDIF} + Result := Result - FRight.Value; + end; +end; + +function TOrNode.GetValue: Variant; +begin + Result := FLeft.Value; + + if FOptimizeBool then + begin + if Boolean(Result) = False then + Result := FRight.Value; + end + else + Result := Result or FRight.Value; +end; + +function TXorNode.GetValue: Variant; +begin + Result := FLeft.Value; + Result := Result xor FRight.Value; +end; + +function TMulNode.GetValue: Variant; +begin + Result := FLeft.Value; + if FOptimizeInt then + Result := frxInteger(Result) * frxInteger(FRight.Value) + else + begin + {$IFDEF FPC} + if TVarData(Result).Vtype = varEmpty then + Result := 0; + {$ENDIF} + Result := Result * FRight.Value; + end; +end; + +function TDivFloatNode.GetValue: Variant; +begin + Result := FLeft.Value; + {$IFDEF FPC} + if TVarData(Result).Vtype = varEmpty then + Result := 0; + {$ENDIF} + Result := Result / FRight.Value; +end; + +function TDivIntNode.GetValue: Variant; +begin + Result := FLeft.Value; + if FOptimizeInt then + Result := frxInteger(Result) div frxInteger(FRight.Value) + else + begin + {$IFDEF FPC} + if TVarData(Result).Vtype = varEmpty then + Result := 0; + {$ENDIF} + Result := Result div FRight.Value; + end; +end; + +function TModNode.GetValue: Variant; +begin + Result := FLeft.Value; + if FOptimizeInt then + Result := frxInteger(Result) mod frxInteger(FRight.Value) + else + begin + {$IFDEF FPC} + if TVarData(Result).Vtype = varEmpty then + Result := 0; + {$ENDIF} + Result := Result mod FRight.Value; + end; +end; + +function TAndNode.GetValue: Variant; +begin + Result := FLeft.Value; + if FOptimizeBool then + begin + if Boolean(Result) = True then + Result := FRight.Value; + end + else + Result := Result and FRight.Value; +end; + +function TShlNode.GetValue: Variant; +begin + Result := FLeft.Value; + Result := Result shl FRight.Value; +end; + +function TShrNode.GetValue: Variant; +begin + Result := FLeft.Value; + Result := Result shr FRight.Value; +end; + +function TNotNode.GetValue: Variant; +begin + Result := not FLeft.Value; +end; + +function TUnMinusNode.GetValue: Variant; +begin + Result := -FLeft.Value; +end; + +function TInNode.GetValue: Variant; +var + i: Integer; + ar, val, selfVal: Variant; + Count: Integer; +begin + if FRight is TfsSetNode then + Result := TfsSetNode(FRight).FSetExpression.Check(FLeft.Value) + else + begin + Result := False; + ar := FRight.Value; + Count := VarArrayHighBound(ar, 1); + selfVal := FLeft.Value; + + i := 0; + while i <= Count do + begin + val := ar[i]; + Result := selfVal = val; + if (i < Count - 1) and (ar[i + 1] = Null) and not Result then { subrange } + begin + Result := (selfVal >= val) and (selfVal <= ar[i + 2]); + Inc(i, 2); + end; + + if Result then break; + Inc(i); + end; + end; +end; + +function TIsNode.GetValue: Variant; +begin + Result := TObject(frxInteger(FLeft.Value)) is + TfsClassVariable(TfsDesignatorNode(FRight).FDesignator[0].Ref).ClassRef; +end; + + +{ TfsExpressionNode } + +destructor TfsExpressionNode.Destroy; +begin + FLeft.Free; + FRight.Free; + inherited; +end; + +procedure TfsExpressionNode.AddNode(Node: TfsExpressionNode); +begin + if FLeft = nil then + FLeft := Node + else if FRight = nil then + FRight := Node; + if Node <> nil then + Node.FParent := Self; +end; + +procedure TfsExpressionNode.RemoveNode(Node: TfsExpressionNode); +begin + if FLeft = Node then + FLeft := nil + else if FRight = Node then + FRight := nil; +end; + + +{ TfsOperandNode } + +constructor TfsOperandNode.Create(const AValue: Variant); +var + t: TfsVarType; +begin +{$IFDEF CPUX64} + inherited Create('', fvtInt64, ''); +{$ELSE} + inherited Create('', fvtInt, ''); +{$ENDIF} + Value := AValue; + + t := fvtInt; + if TVarData(AValue).VType = varBoolean then + t := fvtBool + else if TVarData(AValue).VType in [varSingle, varDouble, varCurrency] then + t := fvtFloat +{$IFDEF FS_INT64} + else if (TVarData(AValue).VType = varInt64) then + t := fvtInt64 +{$ENDIF} + else if (TVarData(AValue).VType = varOleStr) or + (TVarData(AValue).VType = varString){$IFDEF Delphi12} or (TVarData(AValue).VType = varUString){$ENDIF} then + t := fvtString; + + Typ := t; +end; + +function TfsOperandNode.Priority: Integer; +begin + Result := 0; +end; + + +{ TfsOperatorNode } + +constructor TfsOperatorNode.Create(Op: TfsOperatorType); +begin +{$IFDEF CPUX64} + inherited Create('', fvtInt64, ''); +{$ELSE} + inherited Create('', fvtInt, ''); +{$ENDIF} + FOp := Op; +end; + +function TfsOperatorNode.Priority: Integer; +begin + case FOp of + opNone: + Result := 7; + opLeftBracket: + Result := 6; + opRightBracket: + Result := 5; + opGreat, opLess, opGreatEq, opLessEq, opNonEq, opEq, opIn, opIs: + Result := 4; + opPlus, opMinus, opOr, opXor: + Result := 3; + opMul, opDivFloat, opDivInt, opMod, opAnd, opShr, opShl: + Result := 2; + opNot, opUnMinus: + Result := 1; + else + Result := 0; + end; +end; + + +{ TfsDesignatorNode } + +constructor TfsDesignatorNode.Create(ADesignator: TfsDesignator); +begin + inherited Create(0); + FDesignator := ADesignator; + Typ := ADesignator.Typ; + TypeName := ADesignator.TypeName; + if FDesignator is TfsVariableDesignator then + FVar := FDesignator.RefItem else + FVar := FDesignator; +end; + +destructor TfsDesignatorNode.Destroy; +begin + FDesignator.Free; + inherited; +end; + +function TfsDesignatorNode.GetValue: Variant; +begin + Result := FVar.Value; +end; + + +{ TfsSetNode } + +constructor TfsSetNode.Create(ASet: TfsSetExpression); +begin + inherited Create(0); + FSetExpression := ASet; + Typ := fvtVariant; +end; + +destructor TfsSetNode.Destroy; +begin + FSetExpression.Free; + inherited; +end; + +function TfsSetNode.GetValue: Variant; +begin + Result := FSetExpression.Value; +end; + + +{ TfsExpression } + +constructor TfsExpression.Create(Script: TfsScript); +begin +{$IFDEF CPUX64} + inherited Create('', fvtInt64, ''); +{$ELSE} + inherited Create('', fvtInt, ''); +{$ENDIF} + FNode := TNoneNode.Create(opNone); + FCurNode := FNode; + FScript := Script; +end; + +destructor TfsExpression.Destroy; +begin + FNode.Free; + inherited; +end; + +function TfsExpression.GetValue: Variant; +begin + Result := FNode.Value; +end; + +procedure TfsExpression.AddOperand(Node: TfsExpressionNode); +begin + FCurNode.AddNode(Node); + FCurNode := Node; +end; + +procedure TfsExpression.AddOperator(const Op: String); +var + Node: TfsExpressionNode; + n, n1: TfsExpressionNode; + + function CreateOperatorNode(s: String): TfsOperatorNode; + begin + s := AnsiUpperCase(s); + if s = ' ' then + Result := TNoneNode.Create(opNone) + else if s = '>' then + Result := TGreatNode.Create(opGreat) + else if s = '<' then + Result := TLessNode.Create(opLess) + else if s = '<=' then + Result := TLessEqNode.Create(opLessEq) + else if s = '>=' then + Result := TGreatEqNode.Create(opGreatEq) + else if s = '<>' then + Result := TNonEqNode.Create(opNonEq) + else if s = '=' then + Result := TEqNode.Create(opEq) + else if s = '+' then + Result := TPlusNode.Create(opPlus) + else if s = 'STRCAT' then + Result := TStrCatNode.Create(opPlus) + else if s = '-' then + Result := TMinusNode.Create(opMinus) + else if s = 'OR' then + Result := TOrNode.Create(opOr) + else if s = 'XOR' then + Result := TXorNode.Create(opXor) + else if s = '*' then + Result := TMulNode.Create(opMul) + else if s = '/' then + Result := TDivFloatNode.Create(opDivFloat) + else if s = 'DIV' then + Result := TDivIntNode.Create(opDivInt) + else if s = 'MOD' then + Result := TModNode.Create(opMod) + else if s = 'AND' then + Result := TAndNode.Create(opAnd) + else if s = 'SHL' then + Result := TShlNode.Create(opShl) + else if s = 'SHR' then + Result := TShrNode.Create(opShr) + else if s = '(' then + Result := TLeftBracketNode.Create(opLeftBracket) + else if s = ')' then + Result := TRightBracketNode.Create(opRightBracket) + else if s = 'NOT' then + Result := TNotNode.Create(opNot) + else if s = 'UNMINUS' then + Result := TUnMinusNode.Create(opUnMinus) + else if s = 'IN' then + Result := TInNode.Create(opIn) + else if s = 'IS' then + Result := TIsNode.Create(opIs) + else + Result := nil; + end; + +begin + Node := CreateOperatorNode(Op); + Node.SourcePos := SourcePos; + + if (Op = '(') or (Op = 'unminus') or (Op = 'not') then + AddOperand(Node) + else if Op = ')' then + begin + n := FCurNode; + while n.Priority <= Node.Priority do + n := n.FParent; + + n.FParent.RemoveNode(n); + n.FParent.AddNode(n.FLeft); + + Node.Free; + Node := n.FLeft; + n.FLeft := nil; + n.Free; + end + else if FCurNode = FNode then + FNode.AddNode(Node) + else + begin + n := FCurNode; + n1 := nil; + if FCurNode.Priority <> 6 then + begin + n := FCurNode.FParent; + n1 := FCurNode; + end; + + while n.Priority <= Node.Priority do + begin + n1 := n; + n := n.FParent; + end; + + n.RemoveNode(n1); + n.AddNode(Node); + Node.AddNode(n1); + end; + + FCurNode := Node; +end; + +procedure TfsExpression.AddConst(const AValue: Variant); +var + Node: TfsOperandNode; +begin + Node := TfsOperandNode.Create(AValue); + Node.SourcePos := SourcePos; + AddOperand(Node); +end; + +procedure TfsExpression.AddConstWithType(const AValue: Variant; + aTyp: TfsVarType); +begin + AddConst(AValue); + if aTyp = fvtClass then + FCurNode.Typ := fvtVariant; +end; + +procedure TfsExpression.AddDesignator(ADesignator: TfsDesignator); +var + Node: TfsDesignatorNode; +begin + Node := TfsDesignatorNode.Create(ADesignator); + Node.SourcePos := SourcePos; + AddOperand(Node); +end; + +procedure TfsExpression.AddSet(ASet: TfsSetExpression); +var + Node: TfsSetNode; +begin + Node := TfsSetNode.Create(ASet); + Node.SourcePos := SourcePos; + AddOperand(Node); +end; + +function TfsExpression.Finalize: String; +var + ErrorPos: String; + TypeRec: TfsTypeRec; + + function GetType(Item: TfsExpressionNode): TfsTypeRec; + var + Typ1, Typ2: TfsTypeRec; + op: TfsOperatorType; + Error: Boolean; + begin + if Item = nil then + Result.Typ := fvtVariant + else if Item is TfsOperandNode then + begin + Result.Typ := Item.Typ; + Result.TypeName := Item.TypeName; + end + else + begin + Typ1 := GetType(Item.FLeft); + Typ2 := GetType(Item.FRight); +// if (Typ1.Typ = fvtInt) and (Typ2.Typ = fvtInt) then +// TfsOperatorNode(Item).FOptimizeInt := True; + if (Typ1.Typ = fvtBool) and (Typ2.Typ = fvtBool) then + TfsOperatorNode(Item).FOptimizeBool := True; + + op := TfsOperatorNode(Item).FOp; + + if (op = opIs) and (Typ1.Typ = fvtClass) and (Typ2.Typ = fvtClass) then + Error := False + else + begin + { check types compatibility } + Error := not TypesCompatible(Typ1, Typ2, FScript); + { check operators applicability } + if not Error then + case Typ1.Typ of + fvtBool: + Error := not (op in [opNonEq, opEq, opOr, opXor, opAnd, opNot]); + fvtChar, fvtString: + Error := not (op in [opGreat, opLess, opLessEq, opGreatEq, opNonEq, opEq, opPlus, opIn]); + fvtClass, fvtArray: + Error := not (op in [opNonEq, opEq]); + end; + end; + + if not Error then + begin + Result := Typ1; + { if one type is Float, resulting type is float too } + if [Typ1.Typ] + [Typ2.Typ] = [fvtInt, fvtFloat] then + Result.Typ := fvtFloat; + { case int / int = float } + if (Typ1.Typ = fvtInt) and (Typ2.Typ = fvtInt) and (op = opDivFloat) then + Result.Typ := fvtFloat; +{$IFDEF FS_INT64} + if [Typ1.Typ] + [Typ2.Typ] = [fvtInt64, fvtFloat] then + Result.Typ := fvtFloat; + { case int / int = float } + if ((Typ1.Typ = fvtInt64) or (Typ1.Typ = fvtInt)) + and ((Typ2.Typ = fvtInt64) or (Typ2.Typ = fvtInt64)) and (op = opDivFloat) then + Result.Typ := fvtFloat; +{$ENDIF} + { result of comparing two types is always boolean } + if op in [opGreat, opLess, opLessEq, opGreatEq, opNonEq, opEq, opIn, opIs] then + Result.Typ := fvtBool; + end + else if ErrorPos = '' then + ErrorPos := Item.SourcePos; + + Item.Typ := Result.Typ; + end; + end; + +begin + { remove the empty root node } + FCurNode := FNode.FLeft; + FNode.RemoveNode(FCurNode); + FNode.Free; + FNode := FCurNode; + + { check and get the expression type } + ErrorPos := ''; + TypeRec := GetType(FNode); + Typ := TypeRec.Typ; + TypeName := TypeRec.TypeName; + Result := ErrorPos; + + { expression is assignable if it has only one node of type "Variable" } + if not ((FNode is TfsDesignatorNode) and not + (TfsDesignatorNode(FNode).FDesignator.IsReadOnly)) then + IsReadOnly := True; +end; + +procedure TfsExpression.SetValue(const Value: Variant); +begin + if not IsReadOnly then + TfsDesignatorNode(FNode).FDesignator.Value := Value; +end; + +function TfsExpression.Optimize(Designator: TfsDesignator): String; +var + Op: TfsOperatorType; +begin + Result := ' '; + + if not (Designator is TfsVariableDesignator) or + not (FNode is TfsOperatorNode) then Exit; + + Op := TfsOperatorNode(FNode).FOp; + if not (Op in [opPlus, opMinus, opDivFloat, opMul]) then Exit; + + { optimize a := a op b statement } + if (FNode.FLeft is TfsDesignatorNode) and + (TfsDesignatorNode(FNode.FLeft).FDesignator is TfsVariableDesignator) and + (TfsDesignatorNode(FNode.FLeft).FDesignator.RefItem = Designator.RefItem) then + begin + FCurNode := FNode.FRight; + FNode.RemoveNode(FCurNode); + FNode.Free; + FNode := FCurNode; + + if Op = opPlus then + Result := '+' + else if Op = opMinus then + Result := '-' + else if Op = opDivFloat then + Result := '/' + else if Op = opMul then + Result := '*'; + end + { optimize a := b op a statement } + else if (FNode.FRight is TfsDesignatorNode) and + (TfsDesignatorNode(FNode.FRight).FDesignator is TfsVariableDesignator) and + (TfsDesignatorNode(FNode.FRight).FDesignator.RefItem = Designator.RefItem) and + (Op in [opPlus, opMul]) and + not (Designator.RefItem.Typ in [fvtString, fvtVariant]) then + begin + FCurNode := FNode.FLeft; + FNode.RemoveNode(FCurNode); + FNode.Free; + FNode := FCurNode; + + if Op = opPlus then + Result := '+' + else if Op = opMul then + Result := '*'; + end; +end; + +function TfsExpression.SingleItem: TfsCustomVariable; +begin + { if expression contains only one item, returns reference to it } + Result := nil; + + if FNode is TfsDesignatorNode then + begin + if TfsDesignatorNode(FNode).FDesignator is TfsVariableDesignator then + Result := TfsDesignatorNode(FNode).FDesignator.RefItem else + Result := TfsDesignatorNode(FNode).FDesignator; + end + else if FNode is TfsOperandNode then + Result := FNode; +end; + +end. diff --git a/FastScript/fs_iextctrlsrtti.pas b/FastScript/fs_iextctrlsrtti.pas new file mode 100644 index 0000000..4de9bc2 --- /dev/null +++ b/FastScript/fs_iextctrlsrtti.pas @@ -0,0 +1,434 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ ExtCtrls } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_iextctrlsrtti; + +interface + +{$i fs.inc} + +uses SysUtils, Classes, fs_iinterpreter, fs_ievents, fs_iformsrtti +{$IFDEF DELPHI16} +, System.Types +{$ENDIF} +{$IFDEF CLX} +, QExtCtrls, QButtons, QCheckLst, QComCtrls +{$ELSE} +, ExtCtrls, Buttons, CheckLst, ComCtrls +{$ENDIF} +{$IFDEF DELPHI16}, Controls{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsExtCtrlsRTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddEnum('TShapeType', 'stRectangle, stSquare, stRoundRect, stRoundSquare,' + + 'stEllipse, stCircle'); + AddEnum('TBevelStyle', 'bsLowered, bsRaised'); + AddEnum('TBevelShape', 'bsBox, bsFrame, bsTopLine, bsBottomLine, bsLeftLine,' + + 'bsRightLine, bsSpacer'); + AddEnum('TResizeStyle', 'rsNone, rsLine, rsUpdate, rsPattern'); + AddEnum('TButtonLayout', 'blGlyphLeft, blGlyphRight, blGlyphTop, blGlyphBottom'); + AddEnum('TButtonState', 'bsUp, bsDisabled, bsDown, bsExclusive'); + AddEnum('TButtonStyle', 'bsAutoDetect, bsWin31, bsNew'); + AddEnum('TBitBtnKind', 'bkCustom, bkOK, bkCancel, bkHelp, bkYes, bkNo,' + + 'bkClose, bkAbort, bkRetry, bkIgnore, bkAll'); + AddType('TNumGlyphs', fvtInt); + AddEnum('TTabPosition', 'tpTop, tpBottom, tpLeft, tpRight'); + AddEnum('TTabStyle', 'tsTabs, tsButtons, tsFlatButtons'); + AddEnum('TStatusPanelStyle', 'psText, psOwnerDraw'); + AddEnum('TStatusPanelBevel', 'pbNone, pbLowered, pbRaised'); + AddEnum('TSortType', 'stNone, stData, stText, stBoth'); + AddEnum('TTrackBarOrientation', 'trHorizontal, trVertical'); + AddEnum('TTickMark', 'tmBottomRight, tmTopLeft, tmBoth'); + AddEnum('TTickStyle', 'tsNone, tsAuto, tsManual'); + AddEnum('TProgressBarOrientation', 'pbHorizontal, pbVertical'); + AddEnum('TIconArrangement', 'iaTop, iaLeft'); + AddEnum('TListArrangement', 'arAlignBottom, arAlignLeft, arAlignRight,' + + 'arAlignTop, arDefault, arSnapToGrid'); + AddEnum('TViewStyle', 'vsIcon, vsSmallIcon, vsList, vsReport'); + AddEnum('TToolButtonStyle', 'tbsButton, tbsCheck, tbsDropDown, tbsSeparator, tbsDivider'); + AddEnum('TDateTimeKind', 'dtkDate, dtkTime'); + AddEnum('TDTDateMode', 'dmComboBox, dmUpDown'); + AddEnum('TDTDateFormat', 'dfShort, dfLong'); + AddEnum('TDTCalAlignment', 'dtaLeft, dtaRight'); + AddEnum('TCalDayOfWeek', 'dowMonday, dowTuesday, dowWednesday, dowThursday,' + + 'dowFriday, dowSaturday, dowSunday, dowLocaleDefault'); + + AddClass(TShape, 'TGraphicControl'); + with AddClass(TPaintBox, 'TGraphicControl') do + AddEvent('OnPaint', TfsNotifyEvent); + AddClass(TImage, 'TGraphicControl'); + AddClass(TBevel, 'TGraphicControl'); + with AddClass(TTimer, 'TComponent') do + AddEvent('OnTimer', TfsNotifyEvent); + AddClass(TPanel, 'TCustomControl'); + AddClass(TSplitter, 'TGraphicControl'); + AddClass(TBitBtn, 'TButton'); + AddClass(TSpeedButton, 'TGraphicControl'); + with AddClass(TCheckListBox, 'TCustomListBox') do + AddIndexProperty('Checked', 'Integer', 'Boolean', CallMethod); + AddClass(TTabControl, 'TWinControl'); + with AddClass(TTabSheet, 'TWinControl') do + AddProperty('PageControl', 'TPageControl', GetProp, SetProp); + with AddClass(TPageControl, 'TWinControl') do + begin + AddMethod('procedure SelectNextPage(GoForward: Boolean)', CallMethod); + AddProperty('PageCount', 'Integer', GetProp, nil); + AddIndexProperty('Pages', 'Integer', 'TTabSheet', CallMethod, True); + end; + AddClass(TStatusPanel, 'TPersistent'); + with AddClass(TStatusPanels, 'TPersistent') do + begin + AddMethod('function Add: TStatusPanel', CallMethod); + AddIndexProperty('Items', 'Integer', 'TStatusPanel', CallMethod, True); + end; + AddClass(TStatusBar, 'TWinControl'); + with AddClass(TTreeNode, 'TPersistent') do + begin + AddMethod('procedure Delete', CallMethod); + AddMethod('function EditText: Boolean', CallMethod); + AddProperty('Count', 'Integer', GetProp, nil); + AddProperty('Data', 'Pointer', GetProp, SetProp); + AddProperty('ImageIndex', 'Integer', GetProp, SetProp); + AddProperty('SelectedIndex', 'Integer', GetProp, SetProp); + AddProperty('StateIndex', 'Integer', GetProp, SetProp); + AddProperty('Text', 'String', GetProp, SetProp); + end; + with AddClass(TTreeNodes, 'TPersistent') do + begin + AddMethod('function Add(Node: TTreeNode; const S: string): TTreeNode', CallMethod); + AddMethod('function AddChild(Node: TTreeNode; const S: string): TTreeNode', CallMethod); + AddMethod('procedure BeginUpdate', CallMethod); + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure Delete(Node: TTreeNode)', CallMethod); + AddMethod('procedure EndUpdate', CallMethod); + AddProperty('Count', 'Integer', GetProp, nil); + AddDefaultProperty('Item', 'Integer', 'TTreeNode', CallMethod, True); + end; + with AddClass(TTreeView, 'TWinControl') do + begin + AddMethod('procedure FullCollapse', CallMethod); + AddMethod('procedure FullExpand', CallMethod); + AddProperty('Items', 'TTreeNodes', GetProp, nil); + AddProperty('Selected', 'TTreeNode', GetProp, SetProp); + AddProperty('TopItem', 'TTreeNode', GetProp, SetProp); + end; + AddClass(TTrackBar, 'TWinControl'); + AddClass(TProgressBar, 'TWinControl'); + AddClass(TListColumn, 'TPersistent'); + with AddClass(TListColumns, 'TPersistent') do + begin + AddMethod('function Add: TListColumn', CallMethod); + AddDefaultProperty('Items', 'Integer', 'TListColumn', CallMethod, True); + end; + with AddClass(TListItem, 'TPersistent') do + begin + AddMethod('procedure Delete', CallMethod); + AddMethod('function EditCaption: Boolean', CallMethod); + AddProperty('Caption', 'String', GetProp, SetProp); + AddProperty('Checked', 'Boolean', GetProp, SetProp); + AddProperty('Data', 'Pointer', GetProp, SetProp); + AddProperty('ImageIndex', 'Integer', GetProp, SetProp); + AddProperty('Selected', 'Boolean', GetProp, SetProp); + AddProperty('StateIndex', 'Integer', GetProp, SetProp); + AddProperty('SubItems', 'TStrings', GetProp, SetProp); + end; + with AddClass(TListItems, 'TPersistent') do + begin + AddMethod('function Add: TListItem', CallMethod); + AddMethod('procedure BeginUpdate', CallMethod); + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure Delete(Index: Integer)', CallMethod); + AddMethod('procedure EndUpdate', CallMethod); + AddProperty('Count', 'Integer', GetProp, nil); + AddDefaultProperty('Item', 'Integer', 'TListItem', CallMethod, True); + end; +{$IFNDEF FPC} + AddClass(TIconOptions, 'TPersistent'); +{$ENDIF} + AddClass(TListView, 'TWinControl'); + AddClass(TToolButton, 'TGraphicControl'); + AddClass(TToolBar, 'TWinControl'); +{$IFNDEF CLX} + {$IFNDEF FPC} + AddClass(TMonthCalColors, 'TPersistent'); + AddClass(TDateTimePicker, 'TWinControl'); + AddClass(TMonthCalendar, 'TWinControl'); + AddClass(TCustomRichEdit, 'TWinControl'); + AddClass(TRichEdit, 'TCustomRichEdit'); + {$ENDIF} +{$ENDIF} + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + + if ClassType = TCheckListBox then + begin + if MethodName = 'CHECKED.GET' then + Result := TCheckListBox(Instance).Checked[Caller.Params[0]] + else if MethodName = 'CHECKED.SET' then + TCheckListBox(Instance).Checked[Caller.Params[0]] := Caller.Params[1] + end + else if ClassType = TPageControl then + begin + if MethodName = 'SELECTNEXTPAGE' then + TPageControl(Instance).SelectNextPage(Caller.Params[0]) + else if MethodName = 'PAGES.GET' then + Result := frxInteger(TPageControl(Instance).Pages[Caller.Params[0]]) + end + else if ClassType = TStatusPanels then + begin + if MethodName = 'ADD' then + Result := frxInteger(TStatusPanels(Instance).Add) + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(TStatusPanels(Instance).Items[Caller.Params[0]]) + end + else if ClassType = TTreeNode then + begin + if MethodName = 'DELETE' then + TTreeNode(Instance).Delete + else if MethodName = 'EDITTEXT' then + Result := TTreeNode(Instance).EditText + end + else if ClassType = TTreeNodes then + begin + if MethodName = 'ADD' then + Result := frxInteger(TTreeNodes(Instance).Add(TTreeNode(frxInteger(Caller.Params[0])), + Caller.Params[1])) + else if MethodName = 'ADDCHILD' then + Result := frxInteger(TTreeNodes(Instance).AddChild(TTreeNode(frxInteger(Caller.Params[0])), + Caller.Params[1])) + else if MethodName = 'BEGINUPDATE' then + TTreeNodes(Instance).BeginUpdate + else if MethodName = 'CLEAR' then + TTreeNodes(Instance).Clear + else if MethodName = 'DELETE' then + TTreeNodes(Instance).Delete(TTreeNode(frxInteger(Caller.Params[0]))) + else if MethodName = 'ENDUPDATE' then + TTreeNodes(Instance).EndUpdate + else if MethodName = 'ITEM.GET' then + Result := frxInteger(TTreeNodes(Instance).Item[Caller.Params[0]]) + end + else if ClassType = TTreeView then + begin + if MethodName = 'FULLCOLLAPSE' then + TTreeView(Instance).FullCollapse + else if MethodName = 'FULLEXPAND' then + TTreeView(Instance).FullExpand + end + else if ClassType = TListColumns then + begin + if MethodName = 'ADD' then + Result := frxInteger(TListColumns(Instance).Add) + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(TListColumns(Instance).Items[Caller.Params[0]]) + end + else if ClassType = TListItem then + begin + if MethodName = 'DELETE' then + TListItem(Instance).Delete +{$IFNDEF CLX} + {$IFNDEF FPC} + else if MethodName = 'EDITCAPTION' then + Result := TListItem(Instance).EditCaption + {$ENDIF} +{$ENDIF} + end + else if ClassType = TListItems then + begin + if MethodName = 'ADD' then + Result := frxInteger(TListItems(Instance).Add) +{$IFNDEF FPC} + else if MethodName = 'BEGINUPDATE' then + TListItems(Instance).BeginUpdate +{$ENDIF} + else if MethodName = 'CLEAR' then + TListItems(Instance).Clear + else if MethodName = 'DELETE' then + TListItems(Instance).Delete(Caller.Params[0]) +{$IFNDEF FPC} + else if MethodName = 'ENDUPDATE' then + TListItems(Instance).EndUpdate +{$ENDIF} + else if MethodName = 'ITEM.GET' then + Result := frxInteger(TListItems(Instance).Item[Caller.Params[0]]) + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TPageControl then + begin + if PropName = 'PAGECOUNT' then + Result := TPageControl(Instance).PageCount + end + else if ClassType = TTabSheet then + begin + if PropName = 'PAGECONTROL' then + Result := frxInteger(TTabSheet(Instance).PageControl) + end + else if ClassType = TTreeNode then + begin + if PropName = 'COUNT' then + Result := TTreeNode(Instance).Count + else if PropName = 'DATA' then + Result := frxInteger(TTreeNode(Instance).Data) + else if PropName = 'IMAGEINDEX' then + Result := TTreeNode(Instance).ImageIndex + else if PropName = 'SELECTEDINDEX' then + Result := TTreeNode(Instance).SelectedIndex +{$IFNDEF CLX} + else if PropName = 'STATEINDEX' then + Result := TTreeNode(Instance).StateIndex +{$ENDIF} + else if PropName = 'TEXT' then + Result := TTreeNode(Instance).Text + end + else if ClassType = TTreeNodes then + begin + if PropName = 'COUNT' then + Result := TTreeNodes(Instance).Count + end + else if ClassType = TTreeView then + begin + if PropName = 'ITEMS' then + Result := frxInteger(TTreeView(Instance).Items) + else if PropName = 'SELECTED' then + Result := frxInteger(TTreeView(Instance).Selected) + else if PropName = 'TOPITEM' then + Result := frxInteger(TTreeView(Instance).TopItem) + end + else if ClassType = TListItem then + begin + if PropName = 'CAPTION' then + Result := TListItem(Instance).Caption + else if PropName = 'CHECKED' then + Result := TListItem(Instance).Checked + else if PropName = 'DATA' then + Result := frxInteger(TListItem(Instance).Data) + else if PropName = 'IMAGEINDEX' then + Result := TListItem(Instance).ImageIndex + else if PropName = 'SELECTED' then + Result := TListItem(Instance).Selected +{$IFNDEF CLX} + {$IFNDEF FPC} + else if PropName = 'STATEINDEX' then + Result := TListItem(Instance).StateIndex + {$ENDIF} +{$ENDIF} + else if PropName = 'SUBITEMS' then + Result := frxInteger(TListItem(Instance).SubItems) + end + else if ClassType = TListItems then + begin + if PropName = 'COUNT' then + Result := TListItems(Instance).Count + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TTabSheet then + begin + if PropName = 'PAGECONTROL' then + TTabSheet(Instance).PageControl := TPageControl(frxInteger(Value)) + end + else if ClassType = TTreeNode then + begin + if PropName = 'DATA' then + TTreeNode(Instance).Data := Pointer(frxInteger(Value)) + else if PropName = 'IMAGEINDEX' then + TTreeNode(Instance).ImageIndex := frxInteger(Value) + else if PropName = 'SELECTEDINDEX' then + TTreeNode(Instance).SelectedIndex := Value +{$IFNDEF CLX} + else if PropName = 'STATEINDEX' then + TTreeNode(Instance).StateIndex := Value +{$ENDIF} + else if PropName = 'TEXT' then + TTreeNode(Instance).Text := Value + end + else if ClassType = TTreeView then + begin + if PropName = 'SELECTED' then + TTreeView(Instance).Selected := TTreeNode(frxInteger(Value)) + else if PropName = 'TOPITEM' then + TTreeView(Instance).TopItem := TTreeNode(frxInteger(Value)) + end + else if ClassType = TListItem then + begin + if PropName = 'CAPTION' then + TListItem(Instance).Caption := Value + else if PropName = 'CHECKED' then + TListItem(Instance).Checked := Value + else if PropName = 'DATA' then + TListItem(Instance).Data := Pointer(frxInteger(Value)) + else if PropName = 'IMAGEINDEX' then + TListItem(Instance).ImageIndex := Integer(Value) + else if PropName = 'SELECTED' then + TListItem(Instance).Selected := Value +{$IFNDEF CLX} + {$IFNDEF FPC} + else if PropName = 'STATEINDEX' then + TListItem(Instance).StateIndex := Value + {$ENDIF} +{$ENDIF} + else if PropName = 'SUBITEMS' then + TListItem(Instance).SubItems := TStrings(frxInteger(Value)) + end +end; + + +initialization +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsExtCtrlsRTTI, TControl); +{$ENDIF} + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/fs_ifdreg.dcr b/FastScript/fs_ifdreg.dcr new file mode 100644 index 0000000..2d43261 Binary files /dev/null and b/FastScript/fs_ifdreg.dcr differ diff --git a/FastScript/fs_ifdreg.pas b/FastScript/fs_ifdreg.pas new file mode 100644 index 0000000..6778e38 --- /dev/null +++ b/FastScript/fs_ifdreg.pas @@ -0,0 +1,33 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2019 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_ifdreg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + Classes, DesignIntf, Controls, fs_ifdrtti; + +{-----------------------------------------------------------------------} + +procedure Register; +begin + RegisterComponents('FastScript', [TfsFDRTTI]); +end; + +end. diff --git a/FastScript/fs_ifdrtti.pas b/FastScript/fs_ifdrtti.pas new file mode 100644 index 0000000..0b76bb0 --- /dev/null +++ b/FastScript/fs_ifdrtti.pas @@ -0,0 +1,391 @@ +{**********************************************} +{ } +{ FastScript v1.9 } +{ FireDac classes and functions } +{ } +{ (c) 2003-2014 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{ Copyright (c) 2018 by Stalker SoftWare } +{ } +{ } +{**********************************************} + +unit fs_iFDRTTI; + +interface + +{$i fs.inc} +{$IF CompilerVersion <= 24} //XE3 or older + {$DEFINE ANYDAC} +{$IFEND} +uses + SysUtils, Classes, DB, Types, Controls, fs_iinterpreter, fs_itools, fs_idbrtti, + {$IFDEF ANYDAC} + uADCompClient, uADStanOption, uADCompDataSet, uADStanParam; + {$ELSE} + FireDAC.DatS, FireDAC.Comp.DataSet, FireDAC.Comp.Client, FireDAC.Stan.Param; + {$ENDIF} + + + +type +{$IFDEF ANYDAC} + TFDDataSetLocateOptions = TADDataSetLocateOptions; + TFDCopyDataSetOptions = TADCopyDataSetOptions; +{$ENDIF} + +{$i frxPlatformsAttribute.inc} + TfsFDRTTI = class(TComponent); // fake component + + function IntToFDDataSetLocateOptions(i :Integer) :TFDDataSetLocateOptions; forward; + function IntToFDCopyDataSetOptions(i :Integer) :TFDCopyDataSetOptions; forward; + +implementation + +type +{$IFDEF ANYDAC} + TFDCustomConnection = TADCustomConnection; + TFDConnection = TADConnection; + TFDParam = TADParam; + TFDMacro = TADMacro; + TFDDataset = TADDataset; + TFDTable = TADTable; + TFDQuery = TADQuery; + TFDMemTable = TADMemTable; + TFDStoredProc = TADStoredProc; + TFDAdaptedDataSet = TADAdaptedDataset; + TFDRdbmsDataSet = TADRdbmsDataSet; + TFDManager = TADManager; + TFDBlobStream = TADBlobStream; +{$ENDIF} + TfsFDRTTIFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + +{ TfsFDRTTIFunctions } + +{-------------------------------------------------------------------------------} +constructor TfsFDRTTIFunctions.Create(AScript: TfsScript); +begin + + inherited Create(AScript); + + with AScript do begin + + AddClass(TFDManager, 'TComponent'); + + with AddClass(TFDBlobStream, 'TMemoryStream') do begin + AddConstructor('constructor Create(Field :TBlobField; Mode :TBlobStreamMode)', CallMethod); + AddMethod('procedure LoadFromFile(const FileName :String)', CallMethod); + AddMethod('procedure LoadFromStream(Stream :TStream)', CallMethod); + AddMethod('procedure SaveToStream(Stream :TStream)', CallMethod); + AddMethod('procedure SaveToFile(const FileName :String)', CallMethod); + end; { with } + + with AddClass(TFDConnection, 'TComponent') do begin + AddMethod('procedure StartTransaction', CallMethod); + AddMethod('procedure Commit', CallMethod); + AddMethod('procedure Rollback', CallMethod); + AddProperty('InTransaction', 'Boolean', GetProp, nil); + end; { with } + + AddEnumSet('TFDDataSetLocateOptions' ,'lxoCaseInsensitive, lxoPartialKey, lxoFromCurrent, lxoBackward, lxoCheckOnly, lxoNoFetchAll'); + AddEnumSet('TFDCopyDataSetOptions' ,'coStructure, coCalcFields, coIndexesReset, coIndexesCopy, coConstraintsReset, coConstraintsCopy, ' + + 'coAggregatesReset, coAggregatesCopy, coRestart, coAppend, coEdit, ' + {$IFDEF Delphi22} 'coDelete, ' + {$ENDIF} 'coRefresh'); + + with AddClass(TFDDataSet, 'TDataSet') do begin + AddMethod('function LocateEx(const AKeyFields :String; const AKeyValues :Variant; AOptions :TFDDataSetLocateOptions) :Boolean', CallMethod); + AddMethod('function LocateExpr(const AExpression :String; AOptions :TFDDataSetLocateOptions) :Boolean', CallMethod); + AddMethod('procedure FetchAll', CallMethod); + AddMethod('function CreateBlobStream(Field :TField; Mode :TBlobStreamMode) :TStream', CallMethod); + AddMethod('function FindField(const FieldName :String) :TField', CallMethod); + AddMethod('procedure CopyDataSet(ASource :TDataset; AOptions :TFDCopyDataSetOptions)', CallMethod); + AddMethod('procedure SetFDData(ASource :TFDDataSet)', CallMethod); + AddProperty('RecNo', 'LongInt', GetProp, SetProp); + AddProperty('RecordCount', 'LongInt', GetProp, nil); + AddProperty('FieldDefs', 'TFieldDefs', GetProp, SetProp); + end; { with } + + AddClass(TFDAdaptedDataSet, 'TFDDataSet'); + AddClass(TFDRdbmsDataSet, 'TFDAdaptedDataSet'); + AddClass(TFDParam, 'TCollectionItem'); + AddClass(TFDMacro, 'TCollectionItem'); + + with AddClass(TFDQuery, 'TFDRdbmsDataSet') do begin + AddMethod('procedure ExecSQL', CallMethod); + AddMethod('function ParamByName(const Value :String) :TFDParam', CallMethod); + AddMethod('procedure Prepare', CallMethod); + AddMethod('function MacroByName(const Value :String) :TFDMacro', CallMethod); + AddMethod('function OpenOrExecute: Boolean', CallMethod); {added by fduenas} + AddProperty('ParamCount', 'Word', GetProp, nil); + AddProperty('MacroCount', 'Word', GetProp, nil); + end; { with } + + with AddClass(TFDMemTable, 'TFDAdaptedDataSet') do begin + AddMethod('procedure CreateDataSet', CallMethod); + AddMethod('procedure Refresh', CallMethod); + end; { with } + + with AddClass(TFDStoredProc, 'TFDRdbmsDataSet') do begin + AddMethod('procedure ExecProc', CallMethod); + AddMethod('function ParamByName(const Value :string) :TFDParam', CallMethod); + AddMethod('procedure Prepare', CallMethod); + AddMethod('function OpenOrExecute: Boolean', CallMethod); {added by fduenas} + AddMethod('function ExecFunc: Variant', CallMethod); {added by fduenas} + AddProperty('ParamCount', 'Word', GetProp, nil); + end; + + end; { with } + +end; { Create } + +{-------------------------------------------------------------------------------} +function TfsFDRTTIFunctions.CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String; Caller: TfsMethodHelper): Variant; +begin + + Result := 0; + + if ClassType = TFDBlobStream then begin + + if MethodName = 'CREATE' then + Result := frxInteger(TFDBlobStream.Create(TBlobField(frxInteger(Caller.Params[0])), Caller.Params[1])) + else + if MethodName = 'LOADFROMFILE' then + TFDBlobStream(Instance).LoadFromFile(Caller.Params[0]) + else + if MethodName = 'LOADFROMSTREAM' then + TFDBlobStream(Instance).LoadFromStream(TStream(frxInteger(Caller.Params[0]))) + else + if MethodName = 'SAVETOFILE' then + TFDBlobStream(Instance).SaveToFile(Caller.Params[0]) + else + if MethodName = 'SAVETOSTREAM' then + TFDBlobStream(Instance).SaveToStream(TStream(frxInteger(Caller.Params[0]))) + + end else + if ClassType = TFDConnection then begin + + if MethodName = 'STARTTRANSACTION' then + TFDConnection(Instance).StartTransaction + else + if MethodName = 'COMMIT' then + TFDConnection(Instance).Commit + else + if MethodName = 'ROLLBACK' then + TFDConnection(Instance).Rollback + + end else + if ClassType = TFDDataSet then begin + + if MethodName = 'LOCATEEX' then + Result := TFDDataSet(Instance).LocateEx(Caller.Params[0], Caller.Params[1], IntToFDDataSetLocateOptions(Caller.Params[2])) + else + if MethodName = 'LOCATEEXPR' then + Result := TFDDataSet(Instance).LocateEx(Caller.Params[0], IntToFDDataSetLocateOptions(Caller.Params[1])) + else + if MethodName = 'FETCHALL' then + TFDDataSet(Instance).FetchAll + else + if MethodName = 'CREATEBLOBSTREAM' then + Result := frxInteger(TFDDataSet(Instance).CreateBlobStream(TField(frxInteger(Caller.Params[0])), Caller.Params[1])) + else + if MethodName = 'FINDFIELD' then + Result := frxInteger(TFDDataSet(Instance).FindField(Caller.Params[0])) + else + if MethodName = 'COPYDATASET' then + TFDDataSet(Instance).CopyDataSet(TDataSet(frxInteger(Caller.Params[0])), IntToFDCopyDataSetOptions(Caller.Params[1])) + else + if MethodName = 'SETFDDATA' then + TFDDataSet(Instance).Data := TFDDataSet(frxInteger(Caller.Params[0])).Data; + + end else + if ClassType = TFDQuery then begin + + if MethodName = 'EXECSQL' then + TFDQuery(Instance).ExecSQL + else + if MethodName = 'PARAMBYNAME' then + Result := frxInteger(TFDQuery(Instance).ParamByName(Caller.Params[0])) + else + if MethodName = 'PREPARE' then + TFDQuery(Instance).Prepare + else + if MethodName = 'MACROBYNAME' then + Result := frxInteger(TFDQuery(Instance).MacroByName(Caller.Params[0])) + else + if MethodName = 'OPENOREXECUTE' then + Result := TFDQuery(Instance).OpenOrExecute; {added by fduenas} + + end else + if ClassType = TFDMemTable then begin + + if MethodName = 'CREATEDATASET' then + TFDMemTable(Instance).CreateDataSet() + else + if MethodName = 'REFRESH' then + TFDMemTable(Instance).Refresh() + + end else + if ClassType = TFDStoredProc then begin + + if MethodName = 'EXECPROC' then + TFDStoredProc(Instance).ExecProc + else + if MethodName = 'PARAMBYNAME' then + Result := frxInteger(TFDStoredProc(Instance).ParamByName(Caller.Params[0])) + else + if MethodName = 'PREPARE' then + TFDStoredProc(Instance).Prepare + else + if MethodName = 'OPENOREXECUTE' then + Result := TFDStoredProc(Instance).OpenOrExecute {added by fduenas} + else + if MethodName = 'EXECFUNC' then + Result := TFDStoredProc(Instance).ExecFunc; {added by fduenas} + + end; { if } + +end; { CallMethod } + +{-------------------------------------------------------------------------------} +function TfsFDRTTIFunctions.GetProp(Instance: TObject; ClassType: TClass; const PropName: String): Variant; +begin + + Result := 0; + + if ClassType = TFDConnection then begin + + if PropName = 'INTRANSACTION' then + Result := TFDConnection(Instance).InTransaction + + end else + if ClassType = TFDDataSet then begin + + if PropName = 'RECNO' then + Result := TFDDataSet(Instance).RecNo + else + if PropName = 'RECORDCOUNT' then + Result := TFDDataSet(Instance).RecordCount + + end else + if ClassType = TFDQuery then begin + + if PropName = 'PARAMCOUNT' then + Result := TFDQuery(Instance).ParamCount + else + if PropName = 'MacroCount' then + Result := TFDQuery(Instance).MacroCount + + end; { if } + +end; { GetProp } + +{-------------------------------------------------------------------------------} +procedure TfsFDRTTIFunctions.SetProp(Instance: TObject; ClassType: TClass; const PropName: String; Value: Variant); +begin + + if ClassType = TFDDataSet then begin + + if PropName = 'RECNO' then + TFDDataSet(Instance).RecNo := Value + + end; { if } + +end; { SetProp } + +{-------------------------------------------------------------------------------} +function IntToFDDataSetLocateOptions(i :Integer) :TFDDataSetLocateOptions; +begin + + Result := []; + + if (i and 1) <> 0 then + Result := Result + [lxoCaseInsensitive]; + + if (i and 2) <> 0 then + Result := Result + [lxoPartialKey]; + + if (i and 4) <> 0 then + Result := Result + [lxoFromCurrent]; + + if (i and 8) <> 0 then + Result := Result + [lxoBackward]; + + if (i and 16) <> 0 then + Result := Result + [lxoCheckOnly]; + + if (i and 32) <> 0 then + Result := Result + [lxoNoFetchAll]; + +end; { IntToFDDataSetLocateOptions } + +{-------------------------------------------------------------------------------} +function IntToFDCopyDataSetOptions(i :Integer) :TFDCopyDataSetOptions; +begin + + Result := []; + + if (i and 1) <> 0 then + Result := Result + [coStructure]; + + if (i and 2) <> 0 then + Result := Result + [coCalcFields]; + + if (i and 4) <> 0 then + Result := Result + [coIndexesReset]; + + if (i and 8) <> 0 then + Result := Result + [coIndexesCopy]; + + if (i and 16) <> 0 then + Result := Result + [coConstraintsReset]; + + if (i and 32) <> 0 then + Result := Result + [coConstraintsCopy]; + + if (i and 64) <> 0 then + Result := Result + [coAggregatesReset]; + + if (i and 128) <> 0 then + Result := Result + [coAggregatesCopy]; + + if (i and 256) <> 0 then + Result := Result + [coRestart]; + + if (i and 512) <> 0 then + Result := Result + [coAppend]; + + if (i and 1024) <> 0 then + Result := Result + [coEdit]; +{$IFDEF Delphi22} + if (i and 2048) <> 0 then + Result := Result + [coDelete]; + + if (i and 4096) <> 0 then + Result := Result + [coRefresh]; +{$ELSE} + if (i and 2048) <> 0 then + Result := Result + [coRefresh]; +{$ENDIF} + +end; { IntToFDCopyDataSetOptions } + +initialization +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsFDRTTI, TControl); +{$ENDIF} + fsRTTIModules.Add(TfsFDRTTIFunctions); + +finalization + if fsRTTIModules <> nil then + fsRTTIModules.Remove(TfsFDRTTIFunctions); + +end. diff --git a/FastScript/fs_iformsrtti.pas b/FastScript/fs_iformsrtti.pas new file mode 100644 index 0000000..ddfe5da --- /dev/null +++ b/FastScript/fs_iformsrtti.pas @@ -0,0 +1,439 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Forms and StdCtrls } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_iformsrtti; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_iinterpreter, fs_ievents, fs_iclassesrtti, + fs_igraphicsrtti +{$IFDEF CLX} + , QControls, QForms, QStdCtrls +{$ELSE} + {$IFNDEF FPC} + , Windows + {$ELSE} + , LCLType, Buttons + {$ENDIF} + , Controls, Forms, StdCtrls +{$ENDIF} +{$IFDEF Delphi16} + , System.Types +{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsFormsRTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddConst('mrNone', 'Integer', mrNone); + AddConst('mrOk', 'Integer', mrOk); + AddConst('mrCancel', 'Integer', mrCancel); + AddConst('mrAbort', 'Integer', mrAbort); + AddConst('mrRetry', 'Integer', mrRetry); + AddConst('mrIgnore', 'Integer', mrIgnore); + AddConst('mrYes', 'Integer', mrYes); + AddConst('mrNo', 'Integer', mrNo); + AddConst('mrAll', 'Integer', mrAll); + AddConst('mrNoToAll', 'Integer', mrNoToAll); + AddConst('mrYesToAll', 'Integer', mrYesToAll); + + AddConst('crDefault', 'Integer', crDefault); + AddConst('crNone', 'Integer', crNone); + AddConst('crArrow', 'Integer', crArrow); + AddConst('crCross', 'Integer', crCross); + AddConst('crIBeam', 'Integer', crIBeam); + AddConst('crSize', 'Integer', crSize); + AddConst('crSizeNESW', 'Integer', crSizeNESW); + AddConst('crSizeNS', 'Integer', crSizeNS); + AddConst('crSizeNWSE', 'Integer', crSizeNWSE); + AddConst('crSizeWE', 'Integer', crSizeWE); + AddConst('crUpArrow', 'Integer', crUpArrow); + AddConst('crHourGlass', 'Integer', crHourGlass); + AddConst('crDrag', 'Integer', crDrag); + AddConst('crNoDrop', 'Integer', crNoDrop); + AddConst('crHSplit', 'Integer', crHSplit); + AddConst('crVSplit', 'Integer', crVSplit); + AddConst('crMultiDrag', 'Integer', crMultiDrag); + AddConst('crSQLWait', 'Integer', crSQLWait); + AddConst('crNo', 'Integer', crNo); + AddConst('crAppStart', 'Integer', crAppStart); + AddConst('crHelp', 'Integer', crHelp); + AddConst('crHandPoint', 'Integer', crHandPoint); + AddConst('crSizeAll', 'Integer', crSizeAll); + +{$IFDEF CLX} + AddConst('bsNone', 'Integer', fbsNone); + AddConst('bsSingle', 'Integer', fbsSingle); + AddConst('bsSizeable', 'Integer', fbsSizeable); + AddConst('bsDialog', 'Integer', fbsDialog); + AddConst('bsToolWindow', 'Integer', fbsToolWindow); + AddConst('bsSizeToolWin', 'Integer', fbsSizeToolWin); +{$ELSE} + AddConst('bsNone', 'Integer', bsNone); + AddConst('bsSingle', 'Integer', bsSingle); + AddConst('bsSizeable', 'Integer', bsSizeable); + AddConst('bsDialog', 'Integer', bsDialog); + AddConst('bsToolWindow', 'Integer', bsToolWindow); + AddConst('bsSizeToolWin', 'Integer', bsSizeToolWin); +{$ENDIF} + +{$IFNDEF CLX} + AddConst('VK_RBUTTON', 'Integer', VK_RBUTTON); + AddConst('VK_CANCEL', 'Integer', VK_CANCEL); + AddConst('VK_MBUTTON', 'Integer', VK_MBUTTON); + AddConst('VK_BACK', 'Integer', VK_BACK);//Backspace key + AddConst('VK_TAB', 'Integer', VK_TAB);//Tab key + AddConst('VK_RETURN', 'Integer', VK_RETURN);//Enter key + AddConst('VK_SHIFT', 'Integer', VK_SHIFT);//Shift key + AddConst('VK_CONTROL', 'Integer', VK_CONTROL);//Ctrl key + AddConst('VK_MENU', 'Integer', VK_MENU);//Alt key + AddConst('VK_PAUSE', 'Integer', VK_PAUSE);//Pause key + AddConst('VK_CAPITAL', 'Integer', VK_CAPITAL);//Caps Lock key + AddConst('VK_ESCAPE', 'Integer', VK_ESCAPE);//Esc key + AddConst('VK_SPACE', 'Integer', VK_SPACE);//Space bar + AddConst('VK_PRIOR', 'Integer', VK_PRIOR);//Page Up key + AddConst('VK_NEXT', 'Integer', VK_NEXT);// Page Down key + AddConst('VK_END', 'Integer', VK_END);// End key + AddConst('VK_HOME', 'Integer', VK_HOME);// Home key + AddConst('VK_LEFT', 'Integer', VK_LEFT);// Left Arrow key + AddConst('VK_UP', 'Integer', VK_UP);// Up Arrow key + AddConst('VK_RIGHT', 'Integer', VK_RIGHT);// Right Arrow key + AddConst('VK_DOWN', 'Integer', VK_DOWN);// Down Arrow key + AddConst('VK_INSERT', 'Integer', VK_INSERT);// Insert key + AddConst('VK_DELETE', 'Integer', VK_DELETE);// Delete key + AddConst('VK_HELP', 'Integer', VK_HELP);// Help key + AddConst('VK_LWIN', 'Integer', VK_LWIN);// Left Windows key (Microsoft keyboard) + AddConst('VK_RWIN', 'Integer', VK_RWIN);// Right Windows key (Microsoft keyboard) + AddConst('VK_APPS', 'Integer', VK_APPS);// Applications key (Microsoft keyboard) + AddConst('VK_NUMPAD0', 'Integer', VK_NUMPAD0);// 0 key (numeric keypad) + AddConst('VK_NUMPAD1', 'Integer', VK_NUMPAD1);// 1 key (numeric keypad) + AddConst('VK_NUMPAD2', 'Integer', VK_NUMPAD2);// 2 key (numeric keypad) + AddConst('VK_NUMPAD3', 'Integer', VK_NUMPAD3);// 3 key (numeric keypad) + AddConst('VK_NUMPAD4', 'Integer', VK_NUMPAD4);// 4 key (numeric keypad) + AddConst('VK_NUMPAD5', 'Integer', VK_NUMPAD5);// 5 key (numeric keypad) + AddConst('VK_NUMPAD6', 'Integer', VK_NUMPAD6);// 6 key (numeric keypad) + AddConst('VK_NUMPAD7', 'Integer', VK_NUMPAD7);// 7 key (numeric keypad) + AddConst('VK_NUMPAD8', 'Integer', VK_NUMPAD8);// 8 key (numeric keypad) + AddConst('VK_NUMPAD9', 'Integer', VK_NUMPAD9);// 9 key (numeric keypad) + AddConst('VK_MULTIPLY', 'Integer', VK_MULTIPLY);// Multiply key (numeric keypad) + AddConst('VK_ADD', 'Integer', VK_ADD);// Add key (numeric keypad) + AddConst('VK_SEPARATOR', 'Integer', VK_SEPARATOR);// Separator key (numeric keypad) + AddConst('VK_SUBTRACT', 'Integer', VK_SUBTRACT);// Subtract key (numeric keypad) + AddConst('VK_DECIMAL', 'Integer', VK_DECIMAL);// Decimal key (numeric keypad) + AddConst('VK_DIVIDE', 'Integer', VK_DIVIDE);// Divide key (numeric keypad) + AddConst('VK_F1', 'Integer', VK_F1);// F1 key + AddConst('VK_F2', 'Integer', VK_F2);// F2 key + AddConst('VK_F3', 'Integer', VK_F3);// F3 key + AddConst('VK_F4', 'Integer', VK_F4);// F4 key + AddConst('VK_F5', 'Integer', VK_F5);// F5 key + AddConst('VK_F6', 'Integer', VK_F6);// F6 key + AddConst('VK_F7', 'Integer', VK_F7);// F7 key + AddConst('VK_F8', 'Integer', VK_F8);// F8 key + AddConst('VK_F9', 'Integer', VK_F9);// F9 key + AddConst('VK_F10', 'Integer', VK_F10);// F10 key + AddConst('VK_F11', 'Integer', VK_F11);// F11 key + AddConst('VK_F12', 'Integer', VK_F12);// F12 key + AddConst('VK_NUMLOCK', 'Integer', VK_NUMLOCK);// Num Lock key + AddConst('VK_SCROLL', 'Integer', VK_SCROLL);// Scroll Lock key +{$ENDIF} + + AddConst('crDefault', 'Integer', crDefault); + AddConst('crNone', 'Integer', crNone); + AddConst('crArrow', 'Integer', crArrow); + AddConst('crCross', 'Integer', crCross); + AddConst('crIBeam', 'Integer', crIBeam); + AddConst('crSize', 'Integer', crSize); + AddConst('crSizeNESW', 'Integer', crSizeNESW); + AddConst('crSizeNS', 'Integer', crSizeNS); + AddConst('crSizeNWSE', 'Integer', crSizeNWSE); + AddConst('crSizeWE', 'Integer', crSizeWE); + AddConst('crUpArrow', 'Integer', crUpArrow); + AddConst('crHourGlass', 'Integer', crHourGlass); + AddConst('crDrag', 'Integer', crDrag); + AddConst('crNoDrop', 'Integer', crNoDrop); + AddConst('crHSplit', 'Integer', crHSplit); + AddConst('crVSplit', 'Integer', crVSplit); + AddConst('crMultiDrag', 'Integer', crMultiDrag); + AddConst('crSQLWait', 'Integer', crSQLWait); + AddConst('crNo', 'Integer', crNo); + AddConst('crAppStart', 'Integer', crAppStart); + AddConst('crHelp', 'Integer', crHelp); + AddConst('crHandPoint', 'Integer', crHandPoint); + AddConst('crSizeAll', 'Integer', crSizeAll); + + AddType('TFormBorderStyle', fvtInt); + AddType('TBorderStyle', fvtInt); + AddType('TAlignment', fvtInt); + AddType('TLeftRight', fvtInt); + AddConst('taLeftJustify', 'Integer', taLeftJustify); + AddConst('taRightJustify', 'Integer', taRightJustify); + AddConst('taCenter', 'Integer', taCenter); + + AddEnumSet('TShiftState', 'ssShift, ssAlt, ssCtrl, ssLeft, ssRight, ssMiddle, ssDouble'); +// AddEnum('TAlignment', 'taLeftJustify, taRightJustify, taCenter'); + AddEnum('TAlign', 'alNone, alTop, alBottom, alLeft, alRight, alClient'); + AddEnum('TMouseButton', 'mbLeft, mbRight, mbMiddle'); + AddEnumSet('TAnchors', 'akLeft, akTop, akRight, akBottom'); + AddEnum('TBevelCut', 'bvNone, bvLowered, bvRaised, bvSpace'); + AddEnum('TTextLayout', 'tlTop, tlCenter, tlBottom'); + AddEnum('TEditCharCase', 'ecNormal, ecUpperCase, ecLowerCase'); + AddEnum('TScrollStyle', 'ssNone, ssHorizontal, ssVertical, ssBoth'); + AddEnum('TComboBoxStyle', 'csDropDown, csSimple, csDropDownList, csOwnerDrawFixed, csOwnerDrawVariable'); + AddEnum('TCheckBoxState', 'cbUnchecked, cbChecked, cbGrayed'); + AddEnum('TListBoxStyle', 'lbStandard, lbOwnerDrawFixed, lbOwnerDrawVariable'); + AddEnum('TWindowState', 'wsNormal, wsMinimized, wsMaximized'); + AddEnum('TFormStyle', 'fsNormal, fsMDIChild, fsMDIForm, fsStayOnTop'); + AddEnumSet('TBorderIcons', 'biSystemMenu, biMinimize, biMaximize, biHelp'); + AddEnum('TPosition', 'poDesigned, poDefault, poDefaultPosOnly, poDefaultSizeOnly, poScreenCenter, poDesktopCenter'); + AddEnum('TCloseAction', 'caNone, caHide, caFree, caMinimize'); + + with AddClass(TControl, 'TComponent') do + begin + AddProperty('Parent', 'TWinControl', GetProp, SetProp); + AddMethod('procedure Hide', CallMethod); + AddMethod('procedure Show', CallMethod); + AddMethod('procedure SetBounds(ALeft, ATop, AWidth, AHeight: Integer)', CallMethod); + AddEvent('OnCanResize', TfsCanResizeEvent); + AddEvent('OnClick', TfsNotifyEvent); + AddEvent('OnDblClick', TfsNotifyEvent); + AddEvent('OnMouseDown', TfsMouseEvent); + AddEvent('OnMouseMove', TfsMouseMoveEvent); + AddEvent('OnMouseUp', TfsMouseEvent); + AddEvent('OnResize', TfsNotifyEvent); + end; + with AddClass(TWinControl, 'TControl') do + begin + AddMethod('procedure SetFocus', CallMethod); + AddMethod('procedure Invalidate', CallMethod); + AddEvent('OnEnter', TfsNotifyEvent); + AddEvent('OnExit', TfsNotifyEvent); + AddEvent('OnKeyDown', TfsKeyEvent); + AddEvent('OnKeyPress', TfsKeyPressEvent); + AddEvent('OnKeyUp', TfsKeyEvent); + end; + AddClass(TCustomControl, 'TWinControl'); + AddClass(TGraphicControl, 'TControl'); + AddClass(TGroupBox, 'TWinControl'); + AddClass(TLabel, 'TControl'); + AddClass(TEdit, 'TWinControl'); + AddClass(TMemo, 'TWinControl'); + with AddClass(TCustomComboBox, 'TWinControl') do + begin + AddProperty('DroppedDown', 'Boolean', GetProp, SetProp); + AddProperty('ItemIndex', 'Integer', GetProp, SetProp); + AddEvent('OnChange', TfsNotifyEvent); + AddEvent('OnDropDown', TfsNotifyEvent); + AddEvent('OnCloseUp', TfsNotifyEvent); + end; + AddClass(TComboBox, 'TCustomComboBox'); + AddClass(TButton, 'TWinControl'); + AddClass(TCheckBox, 'TWinControl'); + AddClass(TRadioButton, 'TWinControl'); + with AddClass(TCustomListBox, 'TWinControl') do + begin + AddProperty('ItemIndex', 'Integer', GetProp, SetProp); + AddProperty('SelCount', 'Integer', GetProp, nil); + AddIndexProperty('Selected', 'Integer', 'Boolean', CallMethod); + end; + AddClass(TListBox, 'TCustomListBox'); + AddClass(TControlScrollBar, 'TPersistent'); + AddClass(TScrollingWinControl, 'TWinControl'); + AddClass(TScrollBox, 'TScrollingWinControl'); + with AddClass(TCustomForm, 'TScrollingWinControl') do + begin + AddMethod('procedure Close', CallMethod); + AddMethod('procedure Hide', CallMethod); + AddMethod('procedure Show', CallMethod); + AddMethod('function ShowModal: Integer', CallMethod); + AddEvent('OnActivate', TfsNotifyEvent); + AddEvent('OnClose', TfsCloseEvent); + AddEvent('OnCloseQuery', TfsCloseQueryEvent); + AddEvent('OnCreate', TfsNotifyEvent); + AddEvent('OnDestroy', TfsNotifyEvent); + AddEvent('OnDeactivate', TfsNotifyEvent); + AddEvent('OnHide', TfsNotifyEvent); + AddEvent('OnPaint', TfsNotifyEvent); + AddEvent('OnShow', TfsNotifyEvent); + AddProperty('Canvas', 'TCanvas', GetProp, nil); + AddProperty('ModalResult', 'Integer', GetProp, SetProp); + end; + AddClass(TForm, 'TCustomForm'); + AddClass(TDataModule, 'TComponent'); + with AddClass(TApplication, 'TComponent') do + begin + AddMethod('procedure Minimize', CallMethod); + AddMethod('procedure ProcessMessages', CallMethod); + AddMethod('procedure Restore', CallMethod); + AddProperty('ExeName', 'String', GetProp, nil); + end; + AddObject('Application', Application); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + Form: TCustomForm; +begin + Result := 0; + + if ClassType = TControl then + begin + if MethodName = 'HIDE' then + TControl(Instance).Hide + else if MethodName = 'SHOW' then + TControl(Instance).Show + else if MethodName = 'SETBOUNDS' then + TControl(Instance).SetBounds(Caller.Params[0], Caller.Params[1], Caller.Params[2], Caller.Params[3]) + end + else if ClassType = TWinControl then + begin + if MethodName = 'SETFOCUS' then + TWinControl(Instance).SetFocus + else if MethodName = 'INVALIDATE' then + TWinControl(Instance).Invalidate; + end + else if ClassType = TCustomListBox then + begin + if MethodName = 'SELECTED.GET' then + Result := TCustomListBox(Instance).Selected[Caller.Params[0]] + else if MethodName = 'SELECTED.SET' then + TCustomListBox(Instance).Selected[Caller.Params[0]] := Caller.Params[1] + end + else if ClassType = TCustomForm then + begin + Form := TCustomForm(Instance); + if MethodName = 'CLOSE' then + Form.Close + else if MethodName = 'HIDE' then + Form.Hide + else if MethodName = 'SHOW' then + Form.Show + else if MethodName = 'SHOWMODAL' then + Result := Form.ShowModal; + end + else if ClassType = TApplication then + begin + if MethodName = 'MINIMIZE' then + TApplication(Instance).Minimize + else if MethodName = 'PROCESSMESSAGES' then + TApplication(Instance).ProcessMessages + else if MethodName = 'RESTORE' then + TApplication(Instance).Restore + end +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TControl then + begin + if PropName = 'PARENT' then + Result := frxInteger(TControl(Instance).Parent) + end + else if ClassType = TCustomComboBox then + begin + if PropName = 'DROPPEDDOWN' then + Result := TCustomComboBox(Instance).DroppedDown + else if PropName = 'ITEMINDEX' then + Result := TCustomComboBox(Instance).ItemIndex + end + else if ClassType = TCustomListBox then + begin + if PropName = 'SELCOUNT' then + Result := TCustomListBox(Instance).SelCount + else if PropName = 'ITEMINDEX' then + Result := TCustomListBox(Instance).ItemIndex + end + else if ClassType = TCustomForm then + begin + if PropName = 'MODALRESULT' then + Result := TCustomForm(Instance).ModalResult + else if PropName = 'CANVAS' then + Result := frxInteger(TCustomForm(Instance).Canvas) + end + else if ClassType = TApplication then + begin + if PropName = 'EXENAME' then + Result := TApplication(Instance).ExeName + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TControl then + begin + if PropName = 'PARENT' then + TControl(Instance).Parent := TWinControl(frxInteger(Value)) + end + else if ClassType = TCustomComboBox then + begin + if PropName = 'DROPPEDDOWN' then + TCustomComboBox(Instance).DroppedDown := Value + else if PropName = 'ITEMINDEX' then + TCustomComboBox(Instance).ItemIndex := Value + end + else if ClassType = TCustomListBox then + begin + if PropName = 'ITEMINDEX' then + TCustomListBox(Instance).ItemIndex := Value + end + else if ClassType = TCustomForm then + begin + if PropName = 'MODALRESULT' then + TCustomForm(Instance).ModalResult := Value + end +end; + + +initialization +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsFormsRTTI, TControl); +{$ENDIF} + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/fs_igraphicsrtti.pas b/FastScript/fs_igraphicsrtti.pas new file mode 100644 index 0000000..6e6c627 --- /dev/null +++ b/FastScript/fs_igraphicsrtti.pas @@ -0,0 +1,262 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Graphics.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_igraphicsrtti; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_iinterpreter, fs_iclassesrtti{$IFDEF DELPHI16}, Controls{$ENDIF} +{$IFDEF CLX} +, QGraphics +{$ELSE} +, Graphics +{$ENDIF} +{$IFDEF Delphi16} + , System.Types +{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsGraphicsRTTI = class(TComponent); // fake component + + +implementation + +type + THackGraphic = class(TGraphic) + end; + + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); + procedure GetColorProc(const Name: String); + public + constructor Create(AScript: TfsScript); override; + end; + + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + GetColorValues(GetColorProc); +{$IFDEF FPC} + AddEnumSet('TFontStyles', 'fsBold, fsItalic, fsStrikeout, fsUnderline'); +{$ELSE} + AddEnumSet('TFontStyles', 'fsBold, fsItalic, fsUnderline, fsStrikeout'); +{$ENDIF} + AddEnum('TFontPitch', 'fpDefault, fpVariable, fpFixed'); + AddEnum('TPenStyle', 'psSolid, psDash, psDot, psDashDot, psDashDotDot, psClear, psInsideFrame'); + AddEnum('TPenMode', 'pmBlack, pmWhite, pmNop, pmNot, pmCopy, pmNotCopy, pmMergePenNot, ' + + 'pmMaskPenNot, pmMergeNotPen, pmMaskNotPen, pmMerge, pmNotMerge, pmMask, pmNotMask, pmXor, pmNotXor'); + AddEnum('TBrushStyle', 'bsSolid, bsClear, bsHorizontal, bsVertical, ' + + 'bsFDiagonal, bsBDiagonal, bsCross, bsDiagCross'); + + with AddClass(TFont, 'TPersistent') do + AddConstructor('constructor Create', CallMethod); + with AddClass(TPen, 'TPersistent') do + AddConstructor('constructor Create', CallMethod); + with AddClass(TBrush, 'TPersistent') do + AddConstructor('constructor Create', CallMethod); + with AddClass(TCanvas, 'TPersistent') do + begin + AddConstructor('constructor Create', CallMethod); + AddMethod('procedure Draw(X, Y: Integer; Graphic: TGraphic)', CallMethod); + AddMethod('procedure Ellipse(X1, Y1, X2, Y2: Integer)', CallMethod); + AddMethod('procedure LineTo(X, Y: Integer)', CallMethod); + AddMethod('procedure MoveTo(X, Y: Integer)', CallMethod); + AddMethod('procedure Rectangle(X1, Y1, X2, Y2: Integer)', CallMethod); + AddMethod('procedure RoundRect(X1, Y1, X2, Y2, X3, Y3: Integer)', CallMethod); + AddMethod('procedure StretchDraw(X1, Y1, X2, Y2: Integer; Graphic: TGraphic)', CallMethod); + AddMethod('function TextHeight(const Text: string): Integer', CallMethod); + AddMethod('procedure TextOut(X, Y: Integer; const Text: string)', CallMethod); + AddMethod('function TextWidth(const Text: string): Integer', CallMethod); +{$IFNDEF CLX} + AddIndexProperty('Pixels', 'Integer, Integer', 'TColor', CallMethod); +{$ENDIF} + end; + with AddClass(TGraphic, 'TPersistent') do + begin + AddConstructor('constructor Create', CallMethod); + AddMethod('procedure LoadFromFile(const Filename: string)', CallMethod); + AddMethod('procedure SaveToFile(const Filename: string)', CallMethod); + AddProperty('Height', 'Integer', GetProp, SetProp); + AddProperty('Width', 'Integer', GetProp, SetProp); + end; + with AddClass(TPicture, 'TPersistent') do + begin + AddMethod('procedure LoadFromFile(const Filename: string)', CallMethod); + AddMethod('procedure SaveToFile(const Filename: string)', CallMethod); + AddProperty('Height', 'Integer', GetProp, nil); + AddProperty('Width', 'Integer', GetProp, nil); + end; +{$IFNDEF CROSS_COMPILE} + AddClass(TMetafile, 'TGraphic'); + with AddClass(TMetafileCanvas, 'TCanvas') do + AddConstructor('constructor Create(AMetafile: TMetafile; ReferenceDevice: Integer)', CallMethod); +{$ENDIF} + with AddClass(TBitmap, 'TGraphic') do + AddProperty('Canvas', 'TCanvas', GetProp); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant; +var + _Canvas: TCanvas; +begin + Result := 0; + + if ClassType = TFont then + begin + if MethodName = 'CREATE' then + Result := frxInteger(TFont(Instance).Create) + end + else if ClassType = TPen then + begin + if MethodName = 'CREATE' then + Result := frxInteger(TPen(Instance).Create) + end + else if ClassType = TBrush then + begin + if MethodName = 'CREATE' then + Result := frxInteger(TBrush(Instance).Create) + end + else if ClassType = TCanvas then + begin + _Canvas := TCanvas(Instance); + + if MethodName = 'CREATE' then + Result := frxInteger(TCanvas(Instance).Create) + else if MethodName = 'DRAW' then + _Canvas.Draw(Caller.Params[0], Caller.Params[1], TGraphic(frxInteger(Caller.Params[2]))) + else if MethodName = 'ELLIPSE' then + _Canvas.Ellipse(Caller.Params[0], Caller.Params[1], Caller.Params[2], Caller.Params[3]) + else if MethodName = 'LINETO' then + _Canvas.LineTo(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'MOVETO' then + _Canvas.MoveTo(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'RECTANGLE' then + _Canvas.Rectangle(Caller.Params[0], Caller.Params[1], Caller.Params[2], Caller.Params[3]) + else if MethodName = 'ROUNDRECT' then + _Canvas.RoundRect(Caller.Params[0], Caller.Params[1], Caller.Params[2], Caller.Params[3], Caller.Params[4], Caller.Params[5]) + else if MethodName = 'STRETCHDRAW' then + _Canvas.StretchDraw(Rect(Caller.Params[0], Caller.Params[1], Caller.Params[2], Caller.Params[3]), TGraphic(frxInteger(Caller.Params[4]))) + else if MethodName = 'TEXTHEIGHT' then + Result := _Canvas.TextHeight(Caller.Params[0]) + else if MethodName = 'TEXTOUT' then + _Canvas.TextOut(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'TEXTWIDTH' then + Result := _Canvas.TextWidth(Caller.Params[0]) +{$IFNDEF CLX} + else if MethodName = 'PIXELS.GET' then + Result := _Canvas.Pixels[Caller.Params[0], Caller.Params[1]] + else if MethodName = 'PIXELS.SET' then + _Canvas.Pixels[Caller.Params[0], Caller.Params[1]] := Caller.Params[2] +{$ENDIF} + end + else if ClassType = TGraphic then + begin + if MethodName = 'CREATE' then + Result := frxInteger(THackGraphic(Instance).Create) + else if MethodName = 'LOADFROMFILE' then + TGraphic(Instance).LoadFromFile(Caller.Params[0]) + else if MethodName = 'SAVETOFILE' then + TGraphic(Instance).SaveToFile(Caller.Params[0]) + end + else if ClassType = TPicture then + begin + if MethodName = 'LOADFROMFILE' then + TPicture(Instance).LoadFromFile(Caller.Params[0]) + else if MethodName = 'SAVETOFILE' then + TPicture(Instance).SaveToFile(Caller.Params[0]) + end +{$IFNDEF CROSS_COMPILE} + else if ClassType = TMetafileCanvas then + begin + if MethodName = 'CREATE' then + Result := frxInteger(TMetafileCanvas(Instance).Create(TMetafile(frxInteger(Caller.Params[0])), Caller.Params[1])) + end +{$ENDIF} +end; + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; + const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TGraphic then + begin + if PropName = 'HEIGHT' then + Result := TGraphic(Instance).Height + else if PropName = 'WIDTH' then + Result := TGraphic(Instance).Width + end + else if ClassType = TPicture then + begin + if PropName = 'HEIGHT' then + Result := TPicture(Instance).Height + else if PropName = 'WIDTH' then + Result := TPicture(Instance).Width + end + else if ClassType = TBitmap then + begin + if PropName = 'CANVAS' then + Result := frxInteger(TBitmap(Instance).Canvas) + end +end; + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant); +begin + if ClassType = TGraphic then + begin + if PropName = 'HEIGHT' then + TGraphic(Instance).Height := Value + else if PropName = 'WIDTH' then + TGraphic(Instance).Width := Value + end +end; + +procedure TFunctions.GetColorProc(const Name: String); +var + c: Integer; +begin + IdentToColor(Name, c); + Script.AddConst(Name, 'Integer', c); +end; + + +initialization +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsGraphicsRTTI, TControl); +{$ENDIF} + fsRTTIModules.Add(TFunctions); + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/fs_iibxreg.pas b/FastScript/fs_iibxreg.pas new file mode 100644 index 0000000..69c1428 --- /dev/null +++ b/FastScript/fs_iibxreg.pas @@ -0,0 +1,58 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Registration unit } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_iibxreg; + +{$i fs.inc} + +interface + + +procedure Register; + +implementation + +uses + Classes +{$IFNDEF FPC} + {$IFNDEF Delphi6} +, DsgnIntf +{$ELSE} +{$IFDEF DELPHI16} +, Controls +{$ENDIF} +, DesignIntf +{$ENDIF} +{$ELSE} +,PropEdits, LazarusPackageIntf, LResources +{$ENDIF} +, fs_iibxrtti; + + + + +{-----------------------------------------------------------------------} + +procedure Register; +begin +{$IFDEF DELPHI16} + //GroupDescendentsWith(TfsIBXRTTI, TControl); +{$ENDIF} + RegisterComponents('FastScript', [TfsIBXRTTI]); +end; + +initialization +{$IFDEF FPC} + {$INCLUDE fs_ireg.lrs} +{$ENDIF} + + +end. diff --git a/FastScript/fs_iibxrtti.pas b/FastScript/fs_iibxrtti.pas new file mode 100644 index 0000000..78c7372 --- /dev/null +++ b/FastScript/fs_iibxrtti.pas @@ -0,0 +1,127 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ IBX classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +unit fs_iibxrtti; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_iinterpreter, fs_itools, fs_idbrtti, db +{$IFDEF DELPHI20} + , IBX.ibdatabase, IBX.IBCustomDataSet, IBX.IBQuery, IBX.IBTable, IBX.IBStoredProc +{$ELSE} + , ibdatabase, IBCustomDataSet, IBQuery, IBTable, IBStoredProc +{$ENDIF} +{$IFDEF DELPHI16}, Controls, System.Types{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsIBXRTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class (TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; const MethodName: + String; Caller: TfsMethodHelper): Variant; + function RecordCount(Instance: TObject; ClassType: TClass; const PropName: + String): Variant; + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + with AScript do + begin + AddClass(TIBDataBase, 'TComponent'); + + with AddClass(TIBTransaction, 'TComponent') do + begin + AddMethod('procedure Commit', CallMethod); + AddMethod('procedure RollBack', CallMethod); + AddMethod('procedure StartTransaction', CallMethod); + end; + + AddClass(TIBCustomDataSet, 'TDataSet'); + AddClass(TIBTable, 'TIBCustomDataSet'); + with AddClass(TIBQuery, 'TIBCustomDataSet') do + begin + AddMethod('procedure ExecSQL', CallMethod); + AddMethod('procedure FetchAll', CallMethod); + AddProperty('RecordCount', 'Integer',RecordCount, nil); + end; + with AddClass(TIBStoredProc, 'TIBCustomDataSet') do + AddMethod('procedure ExecProc', CallMethod); + end; +end; + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; const + MethodName: String; Caller: TfsMethodHelper): Variant; +begin + Result := 0; + + if ClassType = TIBQuery then + begin + if MethodName = 'EXECSQL' then + TIBQuery(Instance).ExecSQL + else + if MethodName = 'FETCHALL' then + TIBQuery(Instance).FETCHALL; + end + else + if ClassType = TIBStoredProc then + begin + if MethodName = 'EXECPROC' then + TIBStoredProc(Instance).ExecProc + end + else + if(ClassType = TIBTransaction) AND (MethodName = 'COMMIT') then + TIBTransaction(Instance).Commit + else + if (ClassType = TIBTransaction) AND (MethodName = 'ROLLBACK') then + TIBTransaction(Instance).RollBack + else + if(ClassType = TIBTransaction) AND (MethodName = 'STARTTRANSACTION') then + TIBTransaction(Instance).StartTransaction; + +end; + +function TFunctions.RecordCount(Instance: TObject; ClassType: TClass; const + PropName: String): Variant; +begin + Result:=0; + if (ClassType = TIBQuery) AND (PropName = 'RECORDCOUNT') then + Result:=TIBQuery(Instance).RecordCount; + +end; + + +initialization +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsIBXRTTI, TControl); +{$ENDIF} + fsRTTIModules.Add(TFunctions); + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/fs_iilparser.pas b/FastScript/fs_iilparser.pas new file mode 100644 index 0000000..16e5bdf --- /dev/null +++ b/FastScript/fs_iilparser.pas @@ -0,0 +1,2059 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Intermediate Language parser } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +//VCL uses section +{$IFNDEF FMX} +unit fs_iilparser; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_iinterpreter, fs_iparser, fs_iexpression, fs_xml +{$IFDEF Delphi6} +, Variants +{$ENDIF}; +{$ELSE} +interface + +{$i fmx.inc} +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_iinterpreter, FMX.fs_iparser, FMX.fs_iexpression, FMX.fs_xml, System.Variants; +{$ENDIF} + + +type + TfsEmitOp = (emNone, emCreate, emFree); + +{ TfsILParser performs the syntax analyze of source code. Source code + can be on ANY language. Grammars are stored in the XML file and + can be easily changed to support any structured language. Currently + supported languages are Pascal, C++, Basic and Java subsets. + + The result of the analyze (function MakeScript) is the output XML script + (called Intermediate Language). This output processed by the ParseILScript + method. This method creates the program structure (defined in the + fs_Interpreter unit) and fills it by the data } + + TfsILParser = class(TObject) + private + FErrorPos: String; + FGrammar: TfsXMLDocument; + FILScript: TfsXMLDocument; + FLangName: String; + FNeedDeclareVars: Boolean; + FParser: TfsParser; + FProgram: TfsScript; + FProgRoot: TfsXMLItem; + FRoot: TfsXMLItem; + FUnitName: String; + FUsesList: TStrings; + FWithList: TStringList; + function PropPos(xi: TfsXMLItem): String; + procedure ErrorPos(xi: TfsXMLItem); + procedure CheckIdent(Prog: TfsScript; const Name: String); + function FindClass(const TypeName: String): TfsClassVariable; + procedure CheckTypeCompatibility(Var1, Var2: TfsCustomVariable); + function FindVar(Prog: TfsScript; const Name: String): TfsCustomVariable; + function FindType(s: String): TfsVarType; + function CreateVar(xi: TfsXMLItem; Prog: TfsScript; const Name: String; + Statement: TfsStatement = nil; CreateParam: Boolean = False; + IsVarParam: Boolean = False): TfsCustomVariable; + function DoSet(xi: TfsXMLItem; Prog: TfsScript): TfsSetExpression; + function DoExpression(xi: TfsXMLItem; Prog: TfsScript): TfsExpression; + procedure DoUses(xi: TfsXMLItem; Prog: TfsScript); + procedure DoVar(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoConst(xi: TfsXMLItem; Prog: TfsScript); + procedure DoParameters(xi: TfsXMLItem; v: TfsProcVariable); + procedure DoProc1(xi: TfsXMLItem; Prog: TfsScript); + procedure DoProc2(xi: TfsXMLItem; Prog: TfsScript); + procedure DoFunc1(xi: TfsXMLItem; Prog: TfsScript); + procedure DoFunc2(xi: TfsXMLItem; Prog: TfsScript); + procedure DoAssign(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoCall(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoIf(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoFor(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoVbFor(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoCppFor(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoWhile(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoRepeat(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoCase(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoTry(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoBreak(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoContinue(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoExit(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoReturn(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoWith(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoDelete(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoCompoundStmt(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoStmt(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); + procedure DoProgram(xi: TfsXMLItem; Prog: TfsScript); + public + constructor Create(AProgram: TfsScript); + destructor Destroy; override; + + procedure SelectLanguage(const LangName: String); + { convert the input script to the Intermediate Language } + function MakeILScript(const Text: String): Boolean; + { parse IL } + procedure ParseILScript; + { this method is needed here to implement late-binding } + function DoDesignator(xi: TfsXMLItem; Prog: TfsScript; + EmitOp: TfsEmitOp = emNone): TfsDesignator; + property ILScript: TfsXMLDocument read FILScript; + end; + + +implementation +//VCL uses section +{$IFNDEF FMX} +uses fs_itools, fs_iconst +{$IFDEF CROSS_COMPILE} +, Types +{$ELSE} +, Windows +{$ENDIF} +{$IFDEF OLE} +, fs_idisp +{$ENDIF}; +//FMX uses section +{$ELSE} +uses FMX.fs_itools, FMX.fs_iconst, System.Types, FMX.Types +{$IFDEF OLE} +, fs_idisp +{$ENDIF}; +{$ENDIF} + + +{ TfsILParser } + +constructor TfsILParser.Create(AProgram: TfsScript); +begin + FNeedDeclareVars := True; + FProgram := AProgram; + FGrammar := TfsXMLDocument.Create; + FILScript := TfsXMLDocument.Create; + FParser := TfsParser.Create; + FUsesList := TStringList.Create; + FWithList := TStringList.Create; +end; + +destructor TfsILParser.Destroy; +begin + FGrammar.Free; + FILScript.Free; + FParser.Free; + FUsesList.Free; + FWithList.Free; + inherited; +end; + +procedure TfsILParser.SelectLanguage(const LangName: String); +var + i: Integer; + Name, PropText: String; + xi: TfsXMLItem; + ParserRoot: TfsXMLItem; + ss: TStringStream; +begin + FParser.Clear; + FLangName := LangName; + ss := TStringStream.Create(fsGetLanguage(LangName)); + try + FGrammar.LoadFromStream(ss); + finally + ss.Free; + end; + + FRoot := FGrammar.Root; + ParserRoot := FRoot.FindItem('parser'); + + xi := ParserRoot.FindItem('keywords'); + for i := 0 to xi.Count - 1 do + FParser.Keywords.Add(xi[i].Name); + for i := 0 to ParserRoot.Count - 1 do + begin + Name := LowerCase(ParserRoot[i].Name); + PropText := ParserRoot[i].Prop['text']; + if Name = 'identchars' then + FParser.ConstructCharset(PropText) + else if Name = 'commentline1' then + FParser.CommentLine1 := PropText + else if Name = 'commentline2' then + FParser.CommentLine2 := PropText + else if Name = 'commentblock1' then + FParser.CommentBlock1 := PropText + else if Name = 'commentblock2' then + FParser.CommentBlock2 := PropText + else if Name = 'stringquotes' then + FParser.StringQuotes := PropText + else if Name = 'hexsequence' then + FParser.HexSequence := PropText + else if Name = 'specstrchar' then + begin + if PropText = '1' then + FParser.SpecStrChar := true; + end + else if Name = 'declarevars' then + begin + if PropText = '0' then + FNeedDeclareVars := False; + end + else if Name = 'skipeol' then + begin + if PropText = '0' then + FParser.SkipEOL := False; + end + else if Name = 'skipchar' then + FParser.SkipChar := PropText + else if Name = 'casesensitive' then + begin + if PropText = '1' then + FParser.CaseSensitive := True; + end + end; + + if FProgram.ExtendedCharset then + for i := 128 to 255 do + FParser.IdentifierCharset := FParser.IdentifierCharset + [Chr(i)]; +end; + +function TfsILParser.MakeILScript(const Text: String): Boolean; +var + FList: TStrings; + FStream: TStream; + FErrorMsg: String; + FErrorPos: String; + FTermError: Boolean; + i: Integer; + + function Run(xi: TfsXMLItem): Boolean; + var + i, j, ParsPos, ParsPos1, LoopPos, ListPos: Integer; + s, NodeName, Token, PropText, PropAdd, PropAddText, PropNode: String; + Completed, TopLevelNode, Flag: Boolean; + const + PathD = {$IFDEF MSWINDOWS} '\'; {$ELSE} '/'; {$ENDIF} + procedure DoInclude(const Name: String); + var + sl: TStringList; + p: TfsILParser; + ss: TStringStream; + s, UnitPath: String; + idx: Integer; + begin + if FUsesList.IndexOf(Name) <> -1 then + Exit; + FUsesList.Add(Name); + sl := TStringList.Create; + try + if Assigned(FProgram.OnGetUnit) then + begin + s := ''; + FProgram.OnGetUnit(FProgram, Name, s); + sl.Text := s; + end + else + begin + UnitPath := ''; + for idx := 0 to FProgram.IncludePath.Count - 1 do + begin + UnitPath := FProgram.IncludePath[idx]; + if (UnitPath <> '') and (PathD <> UnitPath[Length(UnitPath)]) then + UnitPath := UnitPath + PathD; + if FileExists(UnitPath + Name) then + break; + end; + sl.LoadFromFile(UnitPath + Name); + end; + + p := TfsILParser.Create(FProgram); + p.FUnitName := Name; + ss := TStringStream.Create(''{$IFDEF Delphi12},TEncoding.UTF8{$ENDIF}); + try + s := ''; + if sl.Count > 0 then + begin + p.SelectLanguage(FLangName); + p.FUsesList.Assign(FUsesList); + if p.MakeILScript(sl.Text) then + begin + FUsesList.Assign(p.FUsesList); + p.ILScript.SaveToStream(ss); + s := ss.DataString; + Delete(s, 1, Pos('?>', s) + 1); + end + else + begin + FErrorMsg := FProgram.ErrorMsg; + FErrorPos := FProgram.ErrorPos; + if FProgram.ErrorUnit = '' then + FProgram.ErrorUnit := Name; + end; + end; + + FList.Insert(ListPos, ''); + FList.Insert(ListPos, s); + FList.Insert(ListPos, ''); + Inc(ListPos, 3); + finally + p.Free; + ss.Free; + end; + finally + sl.Free; + end; + end; + + procedure CheckPropNode(Flag: Boolean); + var + i, ParsPos1: Integer; + s: String; + begin + if CompareText(PropNode, 'uses') = 0 then + begin + while FList.Count > ListPos do + begin + s := FList[FList.Count - 1]; + i := Pos('text="', s); + Delete(s, 1, i + 5); + i := Pos('" ', s); + Delete(s, i, 255); + DoInclude(Copy(s, 2, Length(s) - 2)); + FList.Delete(FList.Count - 1); + end; + end + else if PropNode <> '' then + if Flag then + begin + ParsPos1 := FParser.Position; + FParser.Position := ParsPos; + FParser.SkipSpaces; + + s := '<' + PropNode + ' pos="' + FParser.GetXYPosition + '"'; + FParser.Position := ParsPos1; + + if PropNode = 'expr' then + s := s + ' pos1="' + FParser.GetXYPosition + '"'; + s := s + '>'; + + FList.Insert(ListPos, s); + FList.Add(''); + end + else + begin + while FList.Count > ListPos do + FList.Delete(FList.Count - 1); + end; + end; + + procedure AddError(xi: TfsXMLItem); + var + PropErr: String; + xi1: TfsXMLItem; + begin + PropErr := xi.Prop['err']; + if (PropErr <> '') and (FErrorMsg = '') then + begin + xi1 := FRoot.FindItem('parser'); + xi1 := xi1.FindItem('errors'); + FErrorMsg := xi1.FindItem(PropErr).Prop['text']; + FParser.Position := ParsPos; + FParser.SkipSpaces; + FErrorPos := FParser.GetXYPosition; + FTermError := xi.Prop['term'] = '1'; + end; + end; + + begin + Result := True; + ParsPos := FParser.Position; + ListPos := FList.Count; + NodeName := AnsiLowerCase(xi.Name); + PropText := AnsiLowerCase(xi.Prop['text']); + PropNode := LowerCase(xi.Prop['node']); + TopLevelNode := xi.Parent = FRoot; + + Completed := False; + Flag := False; + Token := ''; + + if TopLevelNode then + Completed := True + else if NodeName = 'char' then + begin + if xi.Prop['skip'] <> '0' then + FParser.SkipSpaces; + Token := FParser.GetChar; + Flag := True; + end + else if NodeName = 'keyword' then + begin + Token := FParser.GetWord; + Flag := True; + end + else if NodeName = 'ident' then + begin + Token := FParser.GetIdent; + Flag := True; + end + else if NodeName = 'number' then + begin + Token := FParser.GetNumber; + Flag := True; + end + else if NodeName = 'string' then + begin + Token := FParser.GetString; + Flag := True; + end + else if NodeName = 'frstring' then + begin + Token := FParser.GetFRString; + s := FParser.GetXYPosition; + FList.Add(''); + FList.Add(''); + FList.Add(''); + FList.Add(''); + FList.Add(''); + FList.Add(''); + Flag := True; + end + else if NodeName = 'eol' then + Completed := FParser.GetEOL + else if NodeName = 'sequence' then + Completed := True + else if (NodeName = 'switch') or (NodeName = 'optionalswitch') then + begin + Completed := True; + + for i := 0 to xi.Count - 1 do + begin + Completed := Run(xi[i]); + if Completed then + break; + end; + + if not Completed then + if NodeName <> 'optionalswitch' then + begin + Result := False; + AddError(xi); + end; + Exit; + end + else if (NodeName = 'loop') or (NodeName = 'optionalloop') then + begin + j := 0; + repeat + Inc(j); + Flag := False; + LoopPos := FParser.Position; + + for i := 0 to xi.Count - 1 do + begin + Result := Run(xi[i]); + if not Result then + begin + Flag := True; + break; + end; + end; + + { try loop delimiter } + ParsPos1 := FParser.Position; + if Result and (PropText <> '') then + begin + FParser.SkipSpaces; + if FParser.GetChar <> PropText then + begin + FParser.Position := ParsPos1; + Flag := True; + end; + end; + + { avoid infinity loop } + if FParser.Position = LoopPos then + Flag := True; + until Flag; + + { at least one loop was succesful } + if j > 1 then + begin + { special case - now implemented only in "case" statement } + if (xi.Prop['skip'] = '1') or FTermError then + FErrorMsg := ''; + FParser.Position := ParsPos1; + Result := True; + end; + + if NodeName = 'optionalloop' then + begin + if not Result then + FParser.Position := ParsPos; + Result := True; + end; + Exit; + end + else if NodeName = 'optional' then + begin + for i := 0 to xi.Count - 1 do + if not Run(xi[i]) then + begin + FParser.Position := ParsPos; + break; + end; + Exit; + end + else + begin + j := FRoot.Find(NodeName); + if j = -1 then + raise Exception.Create(SInvalidLanguage); + + Completed := Run(FRoot[j]); + end; + + if Flag then + begin + if FParser.CaseSensitive then + Completed := (Token <> '') and + ((PropText = '') or (Token = PropText)) + else + Completed := (Token <> '') and + ((PropText = '') or (AnsiCompareText(Token, PropText) = 0)); + end; + + if not Completed then + begin + Result := False; + AddError(xi); + end + else + begin + if not TopLevelNode then + CheckPropNode(True); + + PropAdd := xi.Prop['add']; + PropAddText := xi.Prop['addtext']; + if PropAdd <> '' then + begin + if PropAddText = '' then + s := Token else + s := PropAddText; + FList.Add('<' + PropAdd + ' text="' + StrToXML(s) + '" pos="' + + FParser.GetXYPosition + '"/>'); + end; + + for i := 0 to xi.Count - 1 do + begin + Result := Run(xi[i]); + if not Result then + break; + end; + end; + + if not Result then + FParser.Position := ParsPos; + if TopLevelNode then + CheckPropNode(Result); + end; + +begin + FList := TStringList.Create; + FErrorMsg := ''; + FErrorPos := ''; + Result := False; + + try + FParser.Text := Text; + + i := 1; + if FParser.GetChar = '#' then + begin + if CompareText(FParser.GetIdent, 'language') = 0 then + begin + i := FParser.Position; +{$IFDEF Windows} + while (i <= Length(Text)) and (Text[i] <> #13) do +{$ELSE} + while (i <= Length(Text)) and (Text[i] <> #10) do +{$ENDIF} + Inc(i); + SelectLanguage(Trim(Copy(Text, FParser.Position, i - FParser.Position))); + Inc(i, 2); + end; + end; + FParser.Position := i; + + if Run(FRoot.FindItem('program')) and (FErrorMsg = '') then + begin + FErrorMsg := ''; + FErrorPos := ''; + FStream := TMemoryStream.Create; + try + FList.Insert(0, ''); + FList.Insert(1, ''); + FList.Add(''); + FList.SaveToStream(FStream{$IFDEF Delphi12}, TEncoding.UTF8{$ENDIF}); +{$IFDEF Delphi12} + FStream.Position := 3; +{$ELSE} + FStream.Position := 0; +{$ENDIF} + FILScript.LoadFromStream(FStream); + FILScript.Root.Add.Assign(FRoot.FindItem('types')); +// uncomment the following lines to see what is IL script +// FILScript.AutoIndent := True; +// FILScript.SaveToFile(ExtractFilePath(ParamStr(0)) + 'out.xml'); + Result := True; + finally + FStream.Free; + end; + end; + + FProgram.ErrorPos := FErrorPos; + FProgram.ErrorMsg := FErrorMsg; + finally + FList.Free; + end; +end; + +procedure TfsILParser.ParseILScript; +begin + FWithList.Clear; + FProgram.ErrorUnit := ''; + FUnitName := ''; + FUsesList.Clear; + try + DoProgram(FILScript.Root, FProgram); + FProgram.ErrorPos := ''; + except + on e: Exception do + begin + FProgram.ErrorMsg := e.Message; + FProgram.ErrorPos := FErrorPos; + FProgram.ErrorUnit := FUnitName; + end; + end; +end; + +function TfsILParser.PropPos(xi: TfsXMLItem): String; +begin + Result := xi.Prop['pos']; +end; + +procedure TfsILParser.ErrorPos(xi: TfsXMLItem); +begin + FErrorPos := PropPos(xi); +end; + +procedure TfsILParser.CheckIdent(Prog: TfsScript; const Name: String); +begin + if Prog.FindLocal(Name) <> nil then + raise Exception.Create(SIdRedeclared + '''' + Name + ''''); +end; + +function TfsILParser.FindClass(const TypeName: String): TfsClassVariable; +begin + Result := FProgram.FindClass(TypeName); + if Result = nil then + raise Exception.Create(SUnknownType + '''' + TypeName + ''''); +end; + +procedure TfsILParser.CheckTypeCompatibility(Var1, Var2: TfsCustomVariable); +begin + if not AssignCompatible(Var1, Var2, FProgram) then + raise Exception.Create(SIncompatibleTypes + ': ''' + Var1.GetFullTypeName + + ''', ''' + Var2.GetFullTypeName + ''''); +end; + +function TfsILParser.FindVar(Prog: TfsScript; const Name: String): TfsCustomVariable; +begin + Result := Prog.Find(Name); + if Result = nil then + if not FNeedDeclareVars then + begin + Result := TfsVariable.Create(Name, fvtVariant, ''); + FProgram.Add(Name, Result); + end + else + raise Exception.Create(SIdUndeclared + '''' + Name + ''''); +end; + +function TfsILParser.FindType(s: String): TfsVarType; +var + xi: TfsXMLItem; +begin + xi := FProgRoot.FindItem('types'); + if xi.Find(s) <> -1 then + s := xi[xi.Find(s)].Prop['type'] + else + begin + xi := FGrammar.Root.FindItem('types'); + if xi.Find(s) <> -1 then + s := xi[xi.Find(s)].Prop['type'] + end; + Result := StrToVarType(s, FProgram); + if Result = fvtClass then + FindClass(s); +end; + +function TfsILParser.CreateVar(xi: TfsXMLItem; Prog: TfsScript; const Name: String; + Statement: TfsStatement = nil; CreateParam: Boolean = False; + IsVarParam: Boolean = False): TfsCustomVariable; +var + i, j: Integer; + Typ: TfsVarType; + TypeName: String; + RefItem: TfsCustomVariable; + InitValue: Variant; + InitItem: TfsXMLItem; + AssignStmt: TfsAssignmentStmt; + IsPascal: Boolean; + SourcePos: String; + + procedure DoArray(xi: TfsXMLItem); + var + i, n: Integer; + v: array of {$IFDEF FPC}SizeInt{$ELSE}Integer{$ENDIF}; + Expr: TfsExpression; + begin + n := xi.Count; + SetLength(v, n * 2); + + for i := 0 to n - 1 do + begin + Expr := DoExpression(xi[i][0], Prog); + v[i * 2] := Expr.Value; + Expr.Free; + + if xi[i].Count = 2 then + begin + Expr := DoExpression(xi[i][1], Prog); + v[i * 2 + 1] := Expr.Value; + Expr.Free; + end + else + begin + v[i * 2 + 1] := v[i * 2] - 1; + v[i * 2] := 0; + end; + end; + + if n = 0 then + begin + SetLength(v, 2); + v[0] := 0; + v[1] := 0; + n := 1; + end; + + InitValue := VarArrayCreate(v, varVariant); + RefItem := TfsArrayHelper.Create('', n, Typ, TypeName); + Prog.Add('', RefItem); + v := nil; + Typ := fvtArray; + end; + + procedure DoInit(xi: TfsXMLItem); + var + Expr: TfsExpression; + Temp: TfsVariable; + begin + Temp := TfsVariable.Create('', Typ, TypeName); + try + Expr := DoExpression(xi[0], Prog); + InitValue := Expr.Value; + try + CheckTypeCompatibility(Temp, Expr); + finally + Expr.Free; + end; + finally + Temp.Free; + end; + end; + +begin + RefItem := nil; + InitItem := nil; + TypeName := 'Variant'; + IsPascal := False; + SourcePos := FErrorPos; + +(* + + + + + + + + ... + + + + + + + + - type may be first (in C-like languages) or last (in Pascal-like ones) + - type may be skipped (treated as variant) + - array and init may be either skipped, or after each + - array and init may be after each + - do not handle tags - they are handled in calling part +*) + + + { find the type } + for i := 0 to xi.Count - 1 do + if CompareText(xi[i].name, 'type') = 0 then + begin + IsPascal := i <> 0; + TypeName := xi[i].Prop['text']; + ErrorPos(xi[i]); + break; + end; + + Typ := FindType(TypeName); + case Typ of + fvtInt, fvtInt64, fvtFloat, fvtClass: + InitValue := 0; + fvtBool: + InitValue := False; + fvtChar, fvtString: + InitValue := ''; + else + InitValue := Null; + end; + + { fing the tag corresponding to our variable } + for i := 0 to xi.Count - 1 do + if CompareText(xi[i].Prop['text'], Name) = 0 then + begin + { process and tags if any } + j := i + 1; + while (j < xi.Count) and (IsPascal or (CompareText(xi[j].Name, 'ident') <> 0)) do + begin + if CompareText(xi[j].Name, 'array') = 0 then + DoArray(xi[j]) + else if CompareText(xi[j].Name, 'init') = 0 then + begin + if Statement = nil then + DoInit(xi[j]); + InitItem := xi[j]; + end; + Inc(j); + end; + break; + end; + + if CreateParam then + Result := TfsParamItem.Create(Name, Typ, TypeName, InitItem <> nil, IsVarParam) + else if Typ in [fvtChar, fvtString] then + Result := TfsStringVariable.Create(Name, Typ, TypeName) else + Result := TfsVariable.Create(Name, Typ, TypeName); + + try + Result.Value := InitValue; + Result.RefItem := RefItem; + Result.SourcePos := SourcePos; + Result.SourceUnit := FUnitName; + Result.OnGetVarValue := FProgram.OnGetVarValue; + + { create init statement } + if (InitItem <> nil) and (Statement <> nil) then + begin + AssignStmt := TfsAssignmentStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(AssignStmt); + AssignStmt.Designator := TfsVariableDesignator.Create(Prog); + AssignStmt.Designator.RefItem := Result; + AssignStmt.Expression := DoExpression(InitItem[0], Prog); + CheckTypeCompatibility(Result, AssignStmt.Expression); + AssignStmt.Optimize; + end; + + except + on e: Exception do + begin + Result.Free; + raise; + end; + end; +end; +{$HINTS OFF} +function TfsILParser.DoDesignator(xi: TfsXMLItem; Prog: TfsScript; + EmitOp: TfsEmitOp = emNone): TfsDesignator; +var + i, j: Integer; + NodeName, NodeText, TypeName: String; + Expr: TfsExpression; + Item, PriorItem: TfsDesignatorItem; + ClassVar: TfsClassVariable; + StringVar: TfsStringVariable; + Typ: TfsVarType; + LateBinding, PriorIsIndex: Boolean; + NewDesignator: TfsDesignator; + PriorValue: Variant; + Component: TComponent; + + function FindInWithList(const Name: String; ResultDS: TfsDesignator; + Item: TfsDesignatorItem): Boolean; + var + i: Integer; + WithStmt: TfsWithStmt; + WithItem: TfsDesignatorItem; + ClassVar: TfsClassVariable; + xi1: TfsXMLItem; + begin + Result := False; + LateBinding := False; + for i := FWithList.Count - 1 downto 0 do + begin + { prevent checking non-local 'with' } + if Prog.FindLocal(FWithList[i]) = nil then + continue; + WithStmt := TfsWithStmt(FWithList.Objects[i]); + + if WithStmt.Variable.Typ = fvtVariant then + begin + { first check all known variables } + if Prog.Find(Name) <> nil then + Exit; + { if nothing found, create late binding information } + Item.Ref := WithStmt.Variable; + ResultDS.Finalize; + ResultDS.LateBindingXMLSource := TfsXMLItem.Create; + ResultDS.LateBindingXMLSource.Assign(xi); + xi1 := TfsXMLItem.Create; + xi1.Name := 'node'; + xi1.Text := 'text="' + FWithList[i] + '"'; + ResultDS.LateBindingXMLSource.InsertItem(0, xi1); + LateBinding := True; + Result := True; + break; + end + else + begin + ClassVar := FindClass(WithStmt.Variable.TypeName); + Item.Ref := ClassVar.Find(NodeText); + end; + + if Item.Ref <> nil then + begin + WithItem := TfsDesignatorItem.Create; + WithItem.Ref := WithStmt.Variable; + WithItem.SourcePos := Item.SourcePos; + + ResultDS.Remove(Item); + ResultDS.Add(WithItem); + ResultDS.Add(Item); + Result := True; + break; + end; + end; + end; + +{$IFDEF OLE} + procedure CreateOLEHelpers(Index: Integer); + var + i: Integer; + OLEHelper: TfsOLEHelper; + begin + for i := Index to xi.Count - 1 do + begin + ErrorPos(xi[i]); + NodeName := LowerCase(xi[i].Name); + NodeText := xi[i].Prop['text']; + + if (NodeName = 'node') and (NodeText <> '[') then + begin + Item := TfsDesignatorItem.Create; + Result.Add(Item); + Item.SourcePos := FErrorPos; + OLEHelper := TfsOLEHelper.Create(NodeText); + Prog.Add('', OLEHelper); + Item.Ref := OLEHelper; + end + else if NodeName = 'expr' then + begin + Expr := DoExpression(xi[i], Prog); + PriorItem := Result.Items[Result.Count - 1]; + PriorItem.Add(Expr); + PriorItem.Ref.Add(TfsParamItem.Create('', fvtVariant, '', False, False)); + end + end; + end; +{$ENDIF} + +begin + Result := TfsDesignator.Create(Prog); + try + + for i := 0 to xi.Count - 1 do + begin + ErrorPos(xi[i]); + NodeName := LowerCase(xi[i].Name); + NodeText := xi[i].Prop['text']; + + if NodeName = 'node' then + begin + Item := TfsDesignatorItem.Create; + Result.Add(Item); + Item.SourcePos := FErrorPos; + + if Result.Count = 1 then + begin + if not FindInWithList(NodeText, Result, Item) then + Item.Ref := FindVar(Prog, NodeText); + + { LateBinding flag turned on in the FindInWithList } + if LateBinding then + Exit; + { add .Create for cpp NEW statement, i.e convert o = new TObject + to o = TObject.Create } + if EmitOp = emCreate then + begin + if not (Item.Ref is TfsClassVariable) then + raise Exception.Create(SClassRequired); + ClassVar := TfsClassVariable(Item.Ref); + Item := TfsDesignatorItem.Create; + Result.Add(Item); + Item.Ref := ClassVar.Find('Create'); + end; + end + else + begin + PriorItem := Result.Items[Result.Count - 2]; + PriorIsIndex := (PriorItem.Ref is TfsMethodHelper) and + TfsMethodHelper(PriorItem.Ref).IndexMethod and not PriorItem.Flag; + Typ := PriorItem.Ref.Typ; + { late binding } + if (Typ = fvtVariant) and not PriorIsIndex then + begin + PriorValue := PriorItem.Ref.Value; + if VarIsNull(PriorValue) then + begin + Result.Remove(Item); + Item.Free; + Result.Finalize; + Result.LateBindingXMLSource := TfsXMLItem.Create; + Result.LateBindingXMLSource.Assign(xi); + Exit; + end + else + begin + if (TVarData(PriorValue).VType = varString) {$IFDEF Delphi12}or (TVarData(PriorValue).VType = varUString){$ENDIF} then + { accessing string elements } + Typ := fvtString + {$IFDEF OLE} + else if TVarData(PriorValue).VType = varDispatch then + begin + { calling ole } + Result.Remove(Item); + Item.Free; + CreateOLEHelpers(i); + Result.Finalize; + Exit; + end + {$ENDIF} + else if (TVarData(PriorValue).VType and varArray) = varArray then + begin + { accessing array elements } + if NodeText = '[' then { set ref to arrayhelper } + Item.Ref := FindVar(Prog, '__ArrayHelper') + else + raise Exception.Create(SIndexRequired); + continue; + end + else + begin + { accessing class items } + Typ := fvtClass; + PriorItem.Ref.TypeName := TObject(frxInteger(PriorItem.Ref.Value)).ClassName; + end; + end; + end; + + if PriorIsIndex then + begin + PriorItem.Flag := True; + Result.Remove(Item); { previous item is set up already } + Item.Free; + FErrorPos := PriorItem.SourcePos; + if NodeText <> '[' then + raise Exception.Create(SIndexRequired); + end + else if Typ = fvtString then + begin + if NodeText = '[' then { set ref to stringhelper } + Item.Ref := FindVar(Prog, '__StringHelper') + else + raise Exception.Create(SStringError); + end + else if Typ = fvtClass then + begin + TypeName := PriorItem.Ref.TypeName; + ClassVar := FindClass(TypeName); + + if NodeText = '[' then { default property } + begin + Item.Flag := True; + Item.Ref := ClassVar.DefProperty; + if Item.Ref = nil then + raise Exception.CreateFmt(SClassError, [TypeName]); + end + else { property or method } + begin + Item.Ref := ClassVar.Find(NodeText, False); + { property not found. Probably it's a form element such as button? } + if Item.Ref = nil then + begin + PriorValue := PriorItem.Ref.Value; + if ((VarIsNull(PriorValue) or (PriorValue = 0)) and not Prog.IsRunning) and Prog.UseClassLateBinding then + begin + { at compile time, we don't know anything about form elements. + So clear the designator items and use the late binding. } + Result.Remove(Item); + Item.Free; + while Result.Count > 1 do + begin + Item := Result.Items[Result.Count - 1]; + Result.Remove(Item); + Item.Free; + end; + Item := Result.Items[0]; + Result.Finalize; + Result.Typ := fvtVariant; + Result.LateBindingXMLSource := TfsXMLItem.Create; + Result.LateBindingXMLSource.Assign(xi); + Exit; + end + else + begin + { we at run time now. Try to search in the form's elements. } + if TObject(frxInteger(PriorValue)) is TComponent then + begin + Component := TComponent(frxInteger(PriorValue)).FindComponent(NodeText); + if Component <> nil then + { creates TfsComponentHelper } + Item.Ref := ClassVar.AddComponent(Component); + end; + if Item.Ref = nil then + raise Exception.Create(SIdUndeclared + '''' + NodeText + ''''); + end + end; + end; + end + else if Typ = fvtArray then { set ref to array helper } + Item.Ref := PriorItem.Ref.RefItem + else + raise Exception.Create(SArrayRequired); + end; + end + else if NodeName = 'expr' then + begin + Expr := DoExpression(xi[i], Prog); + Result.Items[Result.Count - 1].Add(Expr); + end + else if NodeName = 'addr' then { @ operator } + begin + if xi.Count <> 2 then + raise Exception.Create(SVarRequired); + + Item := TfsDesignatorItem.Create; + Result.Add(Item); + ErrorPos(xi[1]); + Item.SourcePos := FErrorPos; + + { we just return the string containing a referenced item name. For + example, var s: String; procedure B1; begin end; s := @B1 + will assign 'B1' to the s } + StringVar := TfsStringVariable.Create('', fvtString, ''); + StringVar.Value := xi[1].Prop['text']; + Prog.Add('', StringVar); + Item.Ref := StringVar; + + break; + end; + end; + + if EmitOp = emFree then + begin + PriorItem := Result.Items[Result.Count - 1]; + if (PriorItem.Ref.Typ <> fvtClass) and (PriorItem.Ref.Typ <> fvtVariant) then + raise Exception.Create(SClassRequired); + Item := TfsDesignatorItem.Create; + Result.Add(Item); + ClassVar := FindClass('TObject'); + Item.Ref := ClassVar.Find('Free'); + end; + + Result.Finalize; + if Result.Kind <> dkOther then + begin + NewDesignator := nil; + if Result.Kind = dkVariable then + NewDesignator := TfsVariableDesignator.Create(Prog) + else if Result.Kind = dkStringArray then + NewDesignator := TfsStringDesignator.Create(Prog) + else if Result.Kind = dkArray then + NewDesignator := TfsArrayDesignator.Create(Prog); + + NewDesignator.Borrow(Result); + Result.Free; + Result := NewDesignator; + end; + + for i := 0 to Result.Count - 1 do + begin + Item := Result[i]; + FErrorPos := Item.SourcePos; + if Item.Ref is TfsDesignator then continue; + + if Item.Count < Item.Ref.GetNumberOfRequiredParams then + raise Exception.Create(SNotEnoughParams) + else if Item.Count > Item.Ref.Count then + raise Exception.Create(STooManyParams) + else if Item.Count <> Item.Ref.Count then { construct the default params } + for j := Item.Count to Item.Ref.Count - 1 do + begin + Expr := TfsExpression.Create(FProgram); + Item.Add(Expr); + Expr.AddConstWithType(Item.Ref[j].DefValue, Item.Ref[j].Typ); + Expr.Finalize; + end; + + for j := 0 to Item.Count - 1 do + begin + FErrorPos := Item[j].SourcePos; + CheckTypeCompatibility(Item.Ref[j], Item[j]); + end; + end; + + except + on e: Exception do + begin + Result.Free; + raise; + end; + end; +end; +{$HINTS ON} +function TfsILParser.DoSet(xi: TfsXMLItem; Prog: TfsScript): TfsSetExpression; +var + i: Integer; + Name: String; +begin + Result := TfsSetExpression.Create('', fvtVariant, ''); + try + for i := 0 to xi.Count - 1 do + begin + Name := LowerCase(xi[i].Name); + if Name = 'expr' then + Result.Add(DoExpression(xi[i], Prog)) + else if Name = 'range' then + Result.Add(nil); + end; + + except + on e: Exception do + begin + Result.Free; + raise; + end; + end; +end; + +function TfsILParser.DoExpression(xi: TfsXMLItem; Prog: TfsScript): TfsExpression; +var + ErPos: String; + SourcePos1, SourcePos2: TPoint; + + procedure DoExpressionItems(xi: TfsXMLItem; Expression: TfsExpression); + var + i: Integer; + NodeName: String; + OpName: String; + begin + i := 0; + while i < xi.Count do + begin + ErrorPos(xi[i]); + Expression.SourcePos := FErrorPos; + NodeName := Lowercase(xi[i].Name); + OpName := xi[i].Prop['text']; + + if (NodeName = 'op') then + begin + OpName := LowerCase(OpName); + if (OpName = ')') or (i < xi.Count - 1) then + Expression.AddOperator(OpName); + end + else if (NodeName = 'number') or (NodeName = 'string') then + Expression.AddConst(ParserStringToVariant(OpName)) + else if NodeName = 'dsgn' then + Expression.AddDesignator(DoDesignator(xi[i], Prog)) + else if NodeName = 'set' then + Expression.AddSet(DoSet(xi[i], Prog)) + else if NodeName = 'new' then + Expression.AddDesignator(DoDesignator(xi[i][0], Prog, emCreate)) + else if NodeName = 'expr' then + DoExpressionItems(xi[i], Expression); + + Inc(i); + end; + end; + + function GetSource(pt1, pt2: TPoint): String; + var + i1, i2: Integer; + begin + i1 := FParser.GetPlainPosition(pt1); + i2 := FParser.GetPlainPosition(pt2); + if (i1 = -1) or (i2 = -1) then + Result := '' + else + Result := Copy(FParser.Text, i1, i2 - i1); + end; + +begin + Result := TfsExpression.Create(FProgram); + try + DoExpressionItems(xi, Result); + SourcePos1 := fsPosToPoint(PropPos(xi)); + SourcePos2 := fsPosToPoint(xi.Prop['pos1']); + Result.Source := GetSource(SourcePos1, SourcePos2); + + ErPos := Result.Finalize; + if ErPos <> '' then + begin + FErrorPos := ErPos; + raise Exception.Create(SIncompatibleTypes); + end; + + except + on e: Exception do + begin + Result.Free; + raise; + end; + end; +end; + +procedure TfsILParser.DoUses(xi: TfsXMLItem; Prog: TfsScript); +var + i: Integer; + SaveUnitName: String; + s: String; + sl: TStringList; + ms: TMemoryStream; + xd: TfsXMLDocument; +begin + SaveUnitName := FUnitName; + FUnitName := xi.Prop['unit']; + xd := nil; + + if FUsesList.IndexOf(FUnitName) <> -1 then + begin + FUnitName := SaveUnitName; + Exit; + end; + FUsesList.Add(FUnitName); + if Assigned(FProgram.OnGetILUnit) then + begin + s := ''; + FProgram.OnGetILUnit(FProgram, FUnitName, s); + if s <> '' then + begin + sl := TStringList.Create; + sl.Text := s; + + ms := TMemoryStream.Create; + sl.SaveToStream(ms); + sl.Free; + ms.Position := 0; + + xd := TfsXMLDocument.Create; + xd.LoadFromStream(ms); + ms.Free; + end; + end; + + if xd <> nil then + begin + try + DoProgram(xd.Root, Prog); + finally + xd.Free; + end; + end + else + begin + for i := 0 to xi.Count - 1 do + DoProgram(xi[i], Prog); + end; + + FUnitName := SaveUnitName; +end; + +procedure TfsILParser.DoVar(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + i: Integer; + Name: String; +begin + for i := 0 to xi.Count - 1 do + begin + ErrorPos(xi[i]); + if CompareText(xi[i].Name, 'ident') = 0 then + begin + Name := xi[i].Prop['text']; + CheckIdent(Prog, Name); + Prog.Add(Name, CreateVar(xi, Prog, Name, Statement)); + end; + end; +end; + +procedure TfsILParser.DoConst(xi: TfsXMLItem; Prog: TfsScript); +var + Name: String; + Expr: TfsExpression; + v: TfsVariable; +begin + Name := xi[0].Prop['text']; + ErrorPos(xi[0]); + CheckIdent(Prog, Name); + + Expr := DoExpression(xi[1], Prog); + v := TfsVariable.Create(Name, Expr.Typ, Expr.TypeName); + v.Value := Expr.Value; + v.IsReadOnly := True; + Expr.Free; + + Prog.Add(Name, v); +end; + +procedure TfsILParser.DoParameters(xi: TfsXMLItem; v: TfsProcVariable); +var + i: Integer; + s: String; + varParams: Boolean; + + procedure DoParam(xi: TfsXMLItem); + var + i: Integer; + Name: String; + Param: TfsParamItem; + varParam: Boolean; + begin + varParam := False; + + for i := 0 to xi.Count - 1 do + begin + ErrorPos(xi[i]); + if CompareText(xi[i].Name, 'varparam') = 0 then + varParam := True + else if CompareText(xi[i].Name, 'ident') = 0 then + begin + Name := xi[i].Prop['text']; + CheckIdent(v.Prog, Name); + Param := TfsParamItem(CreateVar(xi, v.Prog, Name, nil, True, + varParams or VarParam)); + Param.DefValue := Param.Value; + v.Add(Param); + v.Prog.Add(Name, Param); + varParam := False; + end; + end; + end; + +begin + if CompareText(xi.Name, 'parameters') <> 0 then Exit; + varParams := False; + for i := 0 to xi.Count - 1 do + begin + s := LowerCase(xi[i].Name); + if s = 'varparams' then + varParams := True + else if s = 'var' then + begin + DoParam(xi[i]); + varParams := False; + end; + end; +end; + +procedure TfsILParser.DoProc1(xi: TfsXMLItem; Prog: TfsScript); +var + i: Integer; + s, Name: String; + Proc: TfsProcVariable; +begin + ErrorPos(xi[0]); + Name := xi[0].Prop['text']; + CheckIdent(Prog, Name); + +{$IFDEF CPUX64} + Proc := TfsProcVariable.Create(Name, fvtInt64, '', Prog, False); +{$ELSE} + Proc := TfsProcVariable.Create(Name, fvtInt, '', Prog, False); +{$ENDIF} + Proc.SourcePos := PropPos(xi); + Proc.SourceUnit := FUnitName; + Prog.Add(Name, Proc); + + for i := 0 to xi.Count - 1 do + begin + s := LowerCase(xi[i].Name); + if s = 'parameters' then + DoParameters(xi[i], Proc); + end; +end; + +procedure TfsILParser.DoProc2(xi: TfsXMLItem; Prog: TfsScript); +var + Name: String; + Proc: TfsProcVariable; +begin + Name := xi[0].Prop['text']; + Proc := TfsProcVariable(FindVar(Prog, Name)); + DoProgram(xi, Proc.Prog); +end; + +procedure TfsILParser.DoFunc1(xi: TfsXMLItem; Prog: TfsScript); +var + i: Integer; + s, Name, TypeName: String; + Typ: TfsVarType; + Func: TfsProcVariable; +begin + Name := ''; + TypeName := ''; + Typ := fvtVariant; + + for i := 0 to xi.Count - 1 do + begin + ErrorPos(xi[i]); + s := LowerCase(xi[i].Name); + if s = 'type' then + begin + TypeName := xi[i].Prop['text']; + Typ := FindType(TypeName); + end + else if s = 'name' then + begin + Name := xi[i].Prop['text']; + CheckIdent(Prog, Name); + end + end; + + + Func := TfsProcVariable.Create(Name, Typ, TypeName, Prog, + CompareText(TypeName, 'void') <> 0); + Func.SourcePos := PropPos(xi); + Func.SourceUnit := FUnitName; + Prog.Add(Name, Func); + + for i := 0 to xi.Count - 1 do + begin + s := LowerCase(xi[i].Name); + if s = 'parameters' then + DoParameters(xi[i], Func); + end; +end; + +procedure TfsILParser.DoFunc2(xi: TfsXMLItem; Prog: TfsScript); +var + i: Integer; + s, Name: String; + Func: TfsProcVariable; +begin + Name := ''; + + for i := 0 to xi.Count - 1 do + begin + s := LowerCase(xi[i].Name); + if s = 'name' then + Name := xi[i].Prop['text']; + end; + + Func := TfsProcVariable(FindVar(Prog, Name)); + DoProgram(xi, Func.Prog); +end; + +procedure TfsILParser.DoAssign(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + i: Integer; + Stmt: TfsAssignmentStmt; + Designator: TfsDesignator; + Expression: TfsExpression; + Modificator: String; +begin + Designator := nil; + Expression := nil; + + try + Modificator := ' '; + Designator := DoDesignator(xi[0], Prog); + + i := 1; + if CompareText(xi[1].Name, 'modificator') = 0 then + begin + Modificator := xi[1].Prop['text']; + Inc(i); + end; + Expression := DoExpression(xi[i], Prog); + + if Designator.IsReadOnly then + raise Exception.Create(SLeftCantAssigned); + + CheckTypeCompatibility(Designator, Expression); + if Modificator = ' ' then + Modificator := Expression.Optimize(Designator); + except + on e: Exception do + begin + if Designator <> nil then + Designator.Free; + if Expression <> nil then + Expression.Free; + raise; + end; + end; + + case Modificator[1] of + '+': + Stmt := TfsAssignPlusStmt.Create(Prog, FUnitName, PropPos(xi)); + '-': + Stmt := TfsAssignMinusStmt.Create(Prog, FUnitName, PropPos(xi)); + '*': + Stmt := TfsAssignMulStmt.Create(Prog, FUnitName, PropPos(xi)); + '/': + Stmt := TfsAssignDivStmt.Create(Prog, FUnitName, PropPos(xi)); + else + Stmt := TfsAssignmentStmt.Create(Prog, FUnitName, PropPos(xi)); + end; + + Statement.Add(Stmt); + Stmt.Designator := Designator; + Stmt.Expression := Expression; + Stmt.Optimize; + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoCall(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + Stmt: TfsCallStmt; +begin + Stmt := TfsCallStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + Stmt.Designator := DoDesignator(xi[0], Prog); + if xi.Count > 1 then + begin + Stmt.Modificator := xi[1].Prop['text']; + if Stmt.Designator.IsReadOnly then + raise Exception.Create(SLeftCantAssigned); + end; + + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoIf(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + i: Integer; + s: String; + Stmt: TfsIfStmt; +begin + Stmt := TfsIfStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + Stmt.Condition := DoExpression(xi[0], Prog); + + for i := 1 to xi.Count - 1 do + begin + s := Lowercase(xi[i].Name); + if s = 'thenstmt' then + DoCompoundStmt(xi[1], Prog, Stmt) + else if s = 'elsestmt' then + DoCompoundStmt(xi[2], Prog, Stmt.ElseStmt); + end; + + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoFor(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + i: Integer; + Stmt: TfsForStmt; +begin + Stmt := TfsForStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + ErrorPos(xi[0]); + Stmt.Variable := FindVar(Prog, xi[0].Prop['text']); + if not ((Stmt.Variable is TfsVariable) and + (Stmt.Variable.Typ in [fvtInt, fvtInt64, fvtVariant, fvtFloat])) then + raise Exception.Create(SForError); + + Stmt.BeginValue := DoExpression(xi[1], Prog); + CheckTypeCompatibility(Stmt.Variable, Stmt.BeginValue); + + i := 2; + if CompareText(xi[2].Name, 'downto') = 0 then + begin + Stmt.Down := True; + Inc(i); + end; + + Stmt.EndValue := DoExpression(xi[i], Prog); + CheckTypeCompatibility(Stmt.Variable, Stmt.EndValue); + if i + 1 < xi.Count then + DoStmt(xi[i + 1], Prog, Stmt); + + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoVbFor(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + i: Integer; + Stmt: TfsVbForStmt; +begin + Stmt := TfsVbForStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + ErrorPos(xi[0]); + Stmt.Variable := FindVar(Prog, xi[0].Prop['text']); + if not ((Stmt.Variable is TfsVariable) and + (Stmt.Variable.Typ in [fvtInt, fvtInt64, fvtVariant, fvtFloat])) then + raise Exception.Create(SForError); + + Stmt.BeginValue := DoExpression(xi[1], Prog); + CheckTypeCompatibility(Stmt.Variable, Stmt.BeginValue); + + Stmt.EndValue := DoExpression(xi[2], Prog); + CheckTypeCompatibility(Stmt.Variable, Stmt.EndValue); + + i := 3; + if i < xi.Count then + if CompareText(xi[i].Name, 'expr') = 0 then + begin + Stmt.Step := DoExpression(xi[i], Prog); + CheckTypeCompatibility(Stmt.Variable, Stmt.Step); + Inc(i); + end; + + if i < xi.Count then + DoStmt(xi[i], Prog, Stmt); + + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoCppFor(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + Stmt: TfsCppForStmt; +begin + Stmt := TfsCppForStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + DoStmt(xi[0], Prog, Stmt.FirstStmt); + Stmt.Expression := DoExpression(xi[1], Prog); + DoStmt(xi[2], Prog, Stmt.SecondStmt); + DoStmt(xi[3], Prog, Stmt); + + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoWhile(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + Stmt: TfsWhileStmt; +begin + Stmt := TfsWhileStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + Stmt.Condition := DoExpression(xi[0], Prog); + if xi.Count > 1 then + DoStmt(xi[1], Prog, Stmt); + + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoRepeat(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + i, j: Integer; + Stmt: TfsRepeatStmt; +begin + Stmt := TfsRepeatStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + + j := xi.Count - 1; + if CompareText(xi[j].Name, 'inverse') = 0 then + begin + Stmt.InverseCondition := True; + Dec(j); + end; + Stmt.Condition := DoExpression(xi[j], Prog); + Dec(j); + + for i := 0 to j do + DoStmt(xi[i], Prog, Stmt); + + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoCase(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + i: Integer; + Stmt: TfsCaseStmt; + + procedure DoCaseSelector(xi: TfsXMLItem); + var + Selector: TfsCaseSelector; + begin + if (CompareText(xi.Name, 'caseselector') <> 0) or (xi.Count <> 2) then Exit; + Selector := TfsCaseSelector.Create(Prog, FUnitName, PropPos(xi)); + Stmt.Add(Selector); + + Selector.SetExpression := DoSet(xi[0], Prog); + DoStmt(xi[1], Prog, Selector); + end; + +begin + Stmt := TfsCaseStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + Stmt.Condition := DoExpression(xi[0], Prog); + + for i := 1 to xi.Count - 1 do + DoCaseSelector(xi[i]); + if CompareText(xi[xi.Count - 1].Name, 'caseselector') <> 0 then + DoStmt(xi[xi.Count - 1], Prog, Stmt.ElseStmt); + + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoTry(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + i: Integer; + Stmt: TfsTryStmt; +begin + Stmt := TfsTryStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + + for i := 0 to xi.Count - 1 do + if CompareText(xi[i].Name, 'exceptstmt') = 0 then + begin + Stmt.IsExcept := True; + DoCompoundStmt(xi[i], Prog, Stmt.ExceptStmt); + end + else if CompareText(xi[i].Name, 'finallystmt') = 0 then + DoCompoundStmt(xi[i], Prog, Stmt.ExceptStmt) + else + DoStmt(xi[i], Prog, Stmt); + + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoBreak(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + Stmt: TfsBreakStmt; +begin + Stmt := TfsBreakStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoContinue(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + Stmt: TfsContinueStmt; +begin + Stmt := TfsContinueStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoExit(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + Stmt: TfsExitStmt; +begin + Stmt := TfsExitStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoReturn(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + xi1: TfsXMLItem; +begin + if xi.Count = 1 then { "return expr" } + begin + xi1 := TfsXMLItem.Create; + xi1.Name := 'dsgn'; + xi.InsertItem(0, xi1); + with xi1.Add do + begin + Name := 'node'; + Text := 'text="Result" pos="' + xi[1].Prop['pos'] + '"'; + end; + + DoAssign(xi, Prog, Statement); + end; + + DoExit(xi, Prog, Statement); +end; + +procedure TfsILParser.DoWith(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + d: TfsDesignator; + i, n: Integer; + s: String; + v: TfsVariable; + Stmt: TfsWithStmt; + + function CreateUniqueVariable: String; + var + i: Integer; + begin + i := 0; + while (Prog.FindLocal(IntToStr(i)) <> nil) or + (FWithList.IndexOf(IntToStr(i)) <> -1) do + Inc(i); + Result := '_WithList_' + IntToStr(i); + end; + +begin + n := xi.Count - 1; + + for i := 0 to n - 1 do + begin + d := DoDesignator(xi[i], Prog); + if not ((d.Typ = fvtClass) or (d.Typ = fvtVariant)) then + begin + d.Free; + raise Exception.Create(SClassRequired); + end; + + { create local variable with unique name } + s := CreateUniqueVariable; + v := TfsVariable.Create(s, d.Typ, d.TypeName); + Prog.Add(s, v); + + Stmt := TfsWithStmt.Create(Prog, FUnitName, PropPos(xi)); + Stmt.Variable := v; + Stmt.Designator := d; + Statement.Add(Stmt); + FWithList.AddObject(s, Stmt); + end; + + DoStmt(xi[xi.Count - 1], Prog, Statement); + + for i := 0 to n - 1 do + FWithList.Delete(FWithList.Count - 1); + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoDelete(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + Stmt: TfsCallStmt; +begin + Stmt := TfsCallStmt.Create(Prog, FUnitName, PropPos(xi)); + Statement.Add(Stmt); + Stmt.Designator := DoDesignator(xi[0], Prog, emFree); + FProgram.AddCodeLine(FUnitName, PropPos(xi)); +end; + +procedure TfsILParser.DoCompoundStmt(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + i: Integer; +begin + for i := 0 to xi.Count - 1 do + DoStmt(xi[i], Prog, Statement); +end; + +procedure TfsILParser.DoStmt(xi: TfsXMLItem; Prog: TfsScript; Statement: TfsStatement); +var + s: String; +begin + s := LowerCase(xi.Name); + if s = 'assignstmt' then + DoAssign(xi, Prog, Statement) + else if s = 'callstmt' then + DoCall(xi, Prog, Statement) + else if s = 'ifstmt' then + DoIf(xi, Prog, Statement) + else if s = 'casestmt' then + DoCase(xi, Prog, Statement) + else if s = 'forstmt' then + DoFor(xi, Prog, Statement) + else if s = 'vbforstmt' then + DoVbFor(xi, Prog, Statement) + else if s = 'cppforstmt' then + DoCppFor(xi, Prog, Statement) + else if s = 'whilestmt' then + DoWhile(xi, Prog, Statement) + else if s = 'repeatstmt' then + DoRepeat(xi, Prog, Statement) + else if s = 'trystmt' then + DoTry(xi, Prog, Statement) + else if s = 'break' then + DoBreak(xi, Prog, Statement) + else if s = 'continue' then + DoContinue(xi, Prog, Statement) + else if s = 'exit' then + DoExit(xi, Prog, Statement) + else if s = 'return' then + DoReturn(xi, Prog, Statement) + else if s = 'with' then + DoWith(xi, Prog, Statement) + else if s = 'delete' then + DoDelete(xi, Prog, Statement) + else if s = 'compoundstmt' then + DoCompoundStmt(xi, Prog, Statement) + else if s = 'uses' then + DoUses(xi, Prog) + else if s = 'var' then + DoVar(xi, Prog, Statement) + else if s = 'const' then + DoConst(xi, Prog) + else if s = 'procedure' then + DoProc2(xi, Prog) + else if s = 'function' then + DoFunc2(xi, Prog) +end; + +procedure TfsILParser.DoProgram(xi: TfsXMLItem; Prog: TfsScript); +var + TempRoot: TfsXMLItem; + + procedure DoFirstPass(xi: TfsXMLItem); + var + i: Integer; + s: String; + begin + for i := 0 to xi.Count - 1 do + begin + s := LowerCase(xi[i].Name); + if s = 'compoundstmt' then + DoFirstPass(xi[i]) + else if s = 'procedure' then + DoProc1(xi[i], Prog) + else if s = 'function' then + DoFunc1(xi[i], Prog) + end; + end; + +begin + TempRoot := FProgRoot; + FProgRoot := xi; + DoFirstPass(xi); + DoCompoundStmt(xi, Prog, Prog.Statement); + FProgRoot := TempRoot; +end; + + +end. diff --git a/FastScript/fs_iinirtti.pas b/FastScript/fs_iinirtti.pas new file mode 100644 index 0000000..8ef969b --- /dev/null +++ b/FastScript/fs_iinirtti.pas @@ -0,0 +1,377 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ IniFiles.pas classes and functions } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{ Copyright (c) 2004-2007 } +{ by Stalker SoftWare } +{ } +{******************************************} + +unit fs_iinirtti; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_iinterpreter, IniFiles{$IFDEF DELPHI16}, Controls{$ENDIF} +{$IFDEF Delphi16} + , System.Types +{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsIniRTTI = class(TComponent); // fake component + + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; const PropName: String): Variant; + procedure SaveIniFileToStream(oIniFile: TCustomIniFile; oStream: TStream); + procedure LoadIniFileFromStream(oIniFile :TCustomIniFile; oStream :TStream); + procedure WriteTStrings(oIniFile: TCustomIniFile; const Section: String; Values: TStrings; IsClear :Boolean = True); + procedure ReadTStrings(oIniFile: TCustomIniFile; const Section: String; Values: TStrings; IsClear :Boolean = True); + public + constructor Create(AScript: TfsScript); override; + end; + + +{ TFunctions } + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + + with AScript do + begin + with AddClass(TCustomIniFile, 'TObject') do + begin + AddConstructor('constructor Create(const FileName: String)', CallMethod); + AddMethod('function ReadInteger(const Section, Ident: String; Default: LongInt): LongInt', CallMethod); + AddMethod('procedure WriteInteger(const Section, Ident: String; Value: LongInt)', CallMethod); + AddMethod('function ReadBool(const Section, Ident: String; Default: Boolean): Boolean', CallMethod); + AddMethod('procedure WriteBool(const Section, Ident: String; Value: Boolean)', CallMethod); + AddMethod('function ReadDate(const Section, Name: String; Default: TDateTime): TDateTime', CallMethod); + AddMethod('procedure WriteDate(const Section, Name: String; Value: TDateTime)', CallMethod); + AddMethod('function ReadDateTime(const Section, Name: String; Default: TDateTime): TDateTime', CallMethod); + AddMethod('procedure WriteDateTime(const Section, Name: String; Value: TDateTime)', CallMethod); + AddMethod('function ReadFloat(const Section, Name: String; Default: Double): Double', CallMethod); + AddMethod('procedure WriteFloat(const Section, Name: String; Value: Double)', CallMethod); + AddMethod('function ReadTime(const Section, Name: String; Default: TDateTime): TDateTime', CallMethod); + AddMethod('procedure WriteTime(const Section, Name: String; Value: TDateTime);', CallMethod); +{$IFDEF DELPHI6} + AddMethod('function ReadBinaryStream(const Section, Name: String; Value: TStream): Integer', CallMethod); + AddMethod('procedure WriteBinaryStream(const Section, Name: String; Value: TStream)', CallMethod); +{$ENDIF} + AddMethod('function SectionExists(const Section: String): Boolean', CallMethod); + AddMethod('function ValueExists(const Section, Ident: String): Boolean', CallMethod); + + AddMethod('procedure WriteTStrings(const Section :String; Value :TStrings; IsClear :Boolean = True)', CallMethod); + AddMethod('function ReadTStrings(const Section :String; Value :TStrings; IsClear :Boolean = True): String;', CallMethod); + + AddProperty('FileName', 'String', GetProp); + end; + + with AddClass(TMemIniFile, 'TCustomIniFile') do + begin + AddConstructor('constructor Create(const FileName: String)', CallMethod); + AddMethod('procedure WriteString(const Section, Ident, Value: String)', CallMethod); + AddMethod('function ReadString(const Section, Ident, Default: String): String;', CallMethod); +{$IFDEF DELPHI6} + AddMethod('procedure ReadSectionValuesEx(const Section: String; Strings: TStrings)', CallMethod); +{$ENDIF} + AddMethod('procedure DeleteKey(const Section, Ident: String)', CallMethod); + AddMethod('procedure ReadSection(const Section: String; Strings: TStrings)', CallMethod); + AddMethod('procedure ReadSections(Strings: TStrings)', CallMethod); + AddMethod('procedure ReadSectionValues(const Section: String; Strings: TStrings)', CallMethod); + AddMethod('procedure EraseSection(const Section: String)', CallMethod); + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure GetStrings(List: TStrings)', CallMethod); + AddMethod('procedure SetStrings(List: TStrings)', CallMethod); + AddMethod('procedure SaveIniFileToStream(oStream: TStream)', CallMethod); + AddMethod('procedure LoadIniFileFromStream(oStream: TStream)', CallMethod); + end; + + with AddClass(TIniFile, 'TCustomIniFile') do + begin + AddMethod('procedure WriteString(const Section, Ident, Value: String)', CallMethod); + AddMethod('function ReadString(const Section, Ident, Default: String): String;', CallMethod); +{$IFDEF DELPHI6} + AddMethod('procedure ReadSectionValuesEx(const Section: String; Strings: TStrings)', CallMethod); +{$ENDIF} + AddMethod('procedure DeleteKey(const Section, Ident: String)', CallMethod); + AddMethod('procedure ReadSection(const Section: String; Strings: TStrings)', CallMethod); + AddMethod('procedure ReadSections(Strings: TStrings)', CallMethod); + AddMethod('procedure ReadSectionValues(const Section: String; Strings: TStrings)', CallMethod); + AddMethod('procedure EraseSection(const Section: String)', CallMethod); + AddMethod('procedure SaveIniFileToStream(oStream: TStream)', CallMethod); + AddMethod('procedure LoadIniFileFromStream(oStream: TStream)', CallMethod); + end; + + end; + +end; + +{$HINTS OFF} +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; const MethodName: String; Caller: TfsMethodHelper): Variant; +var + oCustomIniFile: TCustomIniFile; + oMemIniFile: TMemIniFile; + oIniFile: TIniFile; + oList: TStrings; + nCou: Integer; + +begin + + Result := 0; + + if ClassType = TCustomIniFile then + begin + oCustomIniFile := TCustomIniFile(Instance); + if MethodName = 'CREATE' then + Result := frxInteger(oCustomIniFile.Create(Caller.Params[0])) + else if MethodName = 'WRITEINTEGER' then + oCustomIniFile.WriteInteger(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READINTEGER' then + Result := oCustomIniFile.ReadInteger(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITEBOOL' then + oCustomIniFile.WriteBool(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READBOOL' then + Result := oCustomIniFile.ReadBool(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITEDATE' then + oCustomIniFile.WriteDate(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READDATE' then + Result := oCustomIniFile.ReadDate(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITEDATETIME' then + oCustomIniFile.WriteDateTime(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READDATETIME' then + Result := oCustomIniFile.ReadDateTime(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITEFLOAT' then + oCustomIniFile.WriteFloat(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READFLOAT' then + Result := oCustomIniFile.ReadFloat(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'WRITETIME' then + oCustomIniFile.WriteTime(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READTIME' then + Result := oCustomIniFile.ReadTime(Caller.Params[0], Caller.Params[1], Caller.Params[2]) +{$IFDEF DELPHI6} + else if MethodName = 'WRITEBINARYSTREAM' then + oCustomIniFile.WriteBinaryStream(Caller.Params[0], Caller.Params[1], TStream(frxInteger(Caller.Params[2]))) + else if MethodName = 'READBINARYSTREAM' then + Result := oCustomIniFile.ReadBinaryStream(Caller.Params[0], Caller.Params[1], TStream(frxInteger(Caller.Params[2]))) +{$ENDIF} + else if MethodName = 'SECTIONEXISTS' then + Result := oCustomIniFile.SectionExists(Caller.Params[0]) + else if MethodName = 'VALUEEXISTS' then + Result := oCustomIniFile.ValueExists(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'WRITETSTRINGS' then + WriteTStrings(oCustomIniFile, Caller.Params[0], TStrings(frxInteger(Caller.Params[1])), Caller.Params[2]) + else if MethodName = 'READTSTRINGS' then + ReadTStrings(oCustomIniFile, Caller.Params[0], TStrings(frxInteger(Caller.Params[1])), Caller.Params[2]) + + end; + + if ClassType = TMemIniFile then + begin + oMemIniFile := TMemIniFile(Instance); + if MethodName = 'CREATE' then + Result := frxInteger(oMemIniFile.Create(Caller.Params[0]{$IFDEF FPC}, False{$ENDIF})) + else if MethodName = 'WRITESTRING' then + oMemIniFile.WriteString(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READSTRING' then + Result := oMemIniFile.ReadString(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'DELETEKEY' then + oMemIniFile.DeleteKey(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'READSECTION' then + oMemIniFile.ReadSection(Caller.Params[0], TStrings(frxInteger(Caller.Params[1]))) + else if MethodName = 'READSECTIONS' then + oMemIniFile.ReadSections(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'READSECTIONVALUES' then + oMemIniFile.ReadSectionValues(Caller.Params[0], TStrings(frxInteger(Caller.Params[1]))) + else if MethodName = 'ERASESECTION' then + oMemIniFile.EraseSection(Caller.Params[0]) +{$IFDEF DELPHI6} + else if MethodName = 'READSECTIONVALUESEX' then + begin + oList := TStringList.Create; + try + oMemIniFile.ReadSectionValues(Caller.Params[0], oList); + TStrings(frxInteger(Caller.Params[1])).Clear; + for nCou := 0 to oList.Count-1 do +// TStrings(frxInteger(Caller.Params[1])).Add(oList.ValueFromIndex[nCou]); + TStrings(frxInteger(Caller.Params[1])).Add(oList.Values[oList.Names[nCou]]); + finally + oList.Free; + end; + end +{$ENDIF} + else if MethodName = 'CLEAR' then + oMemIniFile.Clear + else if MethodName = 'GETSTRINGS' then + oMemIniFile.GetStrings(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'SETSTRINGS' then + oMemIniFile.SetStrings(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'SAVEINIFILETOSTREAM' then + SaveIniFileToStream(oMemIniFile, TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'LOADINIFILEFROMSTREAM' then + LoadIniFileFromStream(oMemIniFile, TStream(frxInteger(Caller.Params[0]))) + end; + + if ClassType = TIniFile then + begin + oIniFile := TIniFile(Instance); + if MethodName = 'WRITESTRING' then + oIniFile.WriteString(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'READSTRING' then + Result := oIniFile.ReadString(Caller.Params[0], Caller.Params[1], Caller.Params[2]) + else if MethodName = 'DELETEKEY' then + oIniFile.DeleteKey(Caller.Params[0], Caller.Params[1]) + else if MethodName = 'READSECTION' then + oIniFile.ReadSection(Caller.Params[0], TStrings(frxInteger(Caller.Params[1]))) + else if MethodName = 'READSECTIONS' then + oIniFile.ReadSections(TStrings(frxInteger(Caller.Params[0]))) + else if MethodName = 'READSECTIONVALUES' then + oIniFile.ReadSectionValues(Caller.Params[0], TStrings(frxInteger(Caller.Params[1]))) + else if MethodName = 'ERASESECTION' then + oIniFile.EraseSection(Caller.Params[0]) +{$IFDEF DELPHI6} + else if MethodName = 'READSECTIONVALUESEX' then + begin + oList := TStringList.Create; + try + oIniFile.ReadSectionValues(Caller.Params[0], oList); + TStrings(frxInteger(Caller.Params[1])).Clear; + for nCou := 0 to oList.Count-1 do +// TStrings(frxInteger(Caller.Params[1])).Add(oList.ValueFromIndex[nCou]); + TStrings(frxInteger(Caller.Params[1])).Add(oList.Values[oList.Names[nCou]]); + finally + oList.Free; + end; + end +{$ENDIF} + else if MethodName = 'SAVEINIFILETOSTREAM' then + SaveIniFileToStream(oIniFile, TStream(frxInteger(Caller.Params[0]))) + else if MethodName = 'LOADINIFILEFROMSTREAM' then + LoadIniFileFromStream(oIniFile, TStream(frxInteger(Caller.Params[0]))) + end; + +end; +{$HINTS ON} + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; const PropName: String): Variant; +begin + Result := 0; + + if ClassType = TCustomIniFile then + begin + if PropName = 'FILENAME' then + Result := TIniFile(Instance).FileName + end; +end; + +procedure TFunctions.SaveIniFileToStream(oIniFile :TCustomIniFile; oStream :TStream); +var + oStrings :TStrings; + +begin + + if (not Assigned(oIniFile)) or (not Assigned(oStream)) then Exit; + + if not ((oIniFile is TIniFile) or (oIniFile is TMemIniFile)) then Exit; + + oStrings:= TStringList.Create; + try + + if oIniFile is TIniFile then + oStrings.LoadFromFile(oIniFile.FileName) + else + if oIniFile is TMemIniFile then + TMemIniFile(oIniFile).GetStrings(oStrings); + + oStrings.SaveToStream(oStream); + + finally + oStrings.Free; + end; + +end; + +procedure TFunctions.LoadIniFileFromStream(oIniFile :TCustomIniFile; oStream :TStream); +var + oStrings :TStrings; + +begin + + if (not Assigned(oIniFile)) or (not Assigned(oStream)) then Exit; + + if not ((oIniFile is TIniFile) or (oIniFile is TMemIniFile)) then Exit; + + oStrings:= TStringList.Create; + try + + oStrings.LoadFromStream(oStream); + + if oIniFile is TIniFile then + oStrings.SaveToFile(oIniFile.FileName) + else + if oIniFile is TMemIniFile then + TMemIniFile(oIniFile).SetStrings(oStrings); + + finally + oStrings.Free; + end; + +end; + +procedure TFunctions.WriteTStrings(oIniFile :TCustomIniFile; const Section :String; Values :TStrings; IsClear :Boolean = True); +var + nCou :Integer; + +begin + + if IsClear then oIniFile.EraseSection(Section); + + for nCou := 0 to Values.Count-1 do + oIniFile.WriteString(Section, 'Items'+IntToStr(nCou), Values[nCou]); + + oIniFile.WriteInteger(Section, 'Count', Values.Count); + +end; + +procedure TFunctions.ReadTStrings(oIniFile :TCustomIniFile; const Section :String; Values :TStrings; IsClear :Boolean = True); +var + nCou, nCount :Integer; + +begin + + nCount := oIniFile.ReadInteger(Section, 'Count', 0); + + if IsClear then Values.Clear; + + for nCou := 0 to nCount-1 do + Values.Add(oIniFile.ReadString(Section, 'Items'+IntToStr(nCou), '')); + +end; + +initialization +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsIniRTTI, TControl); +{$ENDIF} + fsRTTIModules.Add(TFunctions); + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. diff --git a/FastScript/fs_iinterpreter.pas b/FastScript/fs_iinterpreter.pas new file mode 100644 index 0000000..916100e --- /dev/null +++ b/FastScript/fs_iinterpreter.pas @@ -0,0 +1,3547 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Main module } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +//VCL uses section +{$IFNDEF FMX} +unit fs_iinterpreter; + +interface + +{$I fs.inc} + +uses + SysUtils, Classes, fs_xml +{$IFDEF Delphi6} +, Variants +{$ENDIF} + +, SyncObjs +{$IFDEF Delphi16} + , System.Types +{$ENDIF}; +//FMX uses section +{$ELSE} +interface + +{$I fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_xml +, System.Variants +, System.SyncObjs, System.Types; +{$ENDIF} + + +type + TfsStatement = class; + TfsDesignator = class; + TfsCustomVariable = class; + TfsClassVariable = class; + TfsProcVariable = class; + TfsMethodHelper = class; + TfsPropertyHelper = class; + TfsScript = class; + TfsDesignatorItem = class; + +{ List of supported types. Actually all values are variants; types needed + only to know what kind of operations can be implemented to the variable } + + TfsVarType = (fvtInt, fvtBool, fvtFloat, fvtChar, fvtString, fvtClass, + fvtArray, fvtVariant, fvtEnum, fvtConstructor, fvtInt64); +{$IFDEF DELPHI16} + frxInteger = NativeInt; +{$ELSE} + {$IFDEF FPC} + frxInteger = PtrInt; + {$ELSE} + frxInteger = Integer; + {$ENDIF} +{$ENDIF} + + TfsTypeRec = {$IFDEF Delphi12}{$ELSE}packed{$ENDIF} record + Typ: TfsVarType; +{$IFDEF Delphi12} + TypeName: String; +{$ELSE} + TypeName: String[64]; +{$ENDIF} + end; + +{ Events for get/set non-published property values and call methods } + + TfsGetValueEvent = function(Instance: TObject; ClassType: TClass; + const PropName: String): Variant of object; + TfsSetValueEvent = procedure(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant) of object; + + TfsGetValueNewEvent = function(Instance: TObject; ClassType: TClass; + const PropName: String; Caler: TfsPropertyHelper): Variant of object; + TfsSetValueNewEvent = procedure(Instance: TObject; ClassType: TClass; + const PropName: String; Value: Variant; Caller: TfsPropertyHelper) of object; + + TfsCallMethodNewEvent = function(Instance: TObject; ClassType: TClass; + const MethodName: String; Caller: TfsMethodHelper): Variant of object; + TfsCallMethodEvent = function(Instance: TObject; ClassType: TClass; + const MethodName: String; var Params: Variant): Variant of object; + TfsRunLineEvent = procedure(Sender: TfsScript; + const UnitName, SourcePos: String) of object; + TfsGetUnitEvent = procedure(Sender: TfsScript; + const UnitName: String; var UnitText: String) of object; + TfsGetVariableValueEvent = function(VarName: String; + VarTyp: TfsVarType; OldValue: Variant): Variant of object; + +{ List of objects. Unlike TList, Destructor frees all objects in the list } + + TfsItemList = class(TObject) + protected + FItems: TList; + protected + procedure Clear; virtual; + public + constructor Create; + destructor Destroy; override; + procedure Add(Item: TObject); + function Count: Integer; + procedure Remove(Item: TObject); + end; + + +{ TfsScript represents the main script. It holds the list of local variables, + constants, procedures in the Items. Entry point is the Statement. + + There is one global object fsGlobalUnit: TfsScript that holds all information + about external classes, global variables, methods and constants. To use + such globals, pass fsGlobalUnit to the TfsScript.Create. + If you want, you can add classes/variables/methods to the TfsScript - they + will be local for it and not visible in other programs. + + To execute a program, compile it first by calling Compile method. If error + occurs, the ErrorMsg will contain the error message and ErrorPos will point + to an error position in the source text. For example: + + if not Prg.Compile then + begin + ErrorLabel.Caption := Prg.ErrorMsg; + Memo1.SetFocus; + Memo1.Perform(EM_SETSEL, Prg.ErrorPos - 1, Prg.ErrorPos - 1); + Memo1.Perform(EM_SCROLLCARET, 0, 0); + end; + + If no errors occured, call Execute method to execute the program } + +{$i frxPlatformsAttribute.inc} + + TfsScript = class(TComponent) + + private + FAddedBy: TObject; + FBreakCalled: Boolean; + FContinueCalled: Boolean; + FExitCalled: Boolean; + FErrorMsg: String; + FErrorPos: String; + FErrorUnit: String; + FExtendedCharset: Boolean; + FItems: TStringList; + FIsRunning: Boolean; + FLines: TStrings; + FMacros: TStrings; + FMainProg: Boolean; + FOnGetILUnit: TfsGetUnitEvent; + FOnGetUnit: TfsGetUnitEvent; + FOnRunLine: TfsRunLineEvent; + FOnGetVarValue: TfsGetVariableValueEvent; + FParent: TfsScript; + FProgRunning: TfsScript; + FRTTIAdded: Boolean; + FStatement: TfsStatement; + FSyntaxType: String; + FTerminated: Boolean; + FUnitLines: TStringList; + FIncludePath: TStrings; + FUseClassLateBinding: Boolean; + FEvaluteRiseError: Boolean; + FClearLocalVars: Boolean; + FLastSourcePos : String; + FProgName : String; + function GetItem(Index: Integer): TfsCustomVariable; + procedure RunLine(const UnitName, Index: String); + function GetVariables(Index: String): Variant; + procedure SetVariables(Index: String; const Value: Variant); + procedure SetLines(const Value: TStrings); + function GetProgName: String; + procedure SetProgName(const Value: String); + + public + constructor Create(AOwner: TComponent); override; + destructor Destroy; override; + procedure Add(const Name: String; Item: TObject); + procedure AddCodeLine(const UnitName, APos: String); + procedure AddRTTI; + procedure Remove(Item: TObject); + procedure RemoveItems(Owner: TObject); + procedure Clear; + procedure ClearItems(Owner: TObject); + procedure ClearRTTI; + function Count: Integer; + + { Adds a class. Example: + with AddClass(TComponent, 'TPersistent') do + begin + ... add properties and methods ... + end } + function AddClass(AClass: TClass; const Ancestor: String): TfsClassVariable; dynamic; + { Adds a constant. Example: + AddConst('pi', 'Double', 3.14159) } + procedure AddConst(const Name, Typ: String; const Value: Variant); dynamic; + { Adds an enumeration constant. Example: + AddEnum('TFontPitch', 'fpDefault, fpFixed, fpVariable') + all constants gets type fvtEnum and values 0,1,2,3.. } + procedure AddEnum(const Typ, Names: String); dynamic; + { Adds an set constant. Example: + AddEnumSet('TFontStyles', 'fsBold, fsItalic, fsUnderline') + all constants gets type fvtEnum and values 1,2,4,8,.. } + procedure AddEnumSet(const Typ, Names: String); dynamic; + { Adds a form or datamodule with all its child components } + procedure AddComponent(Form: TComponent); dynamic; + procedure AddForm(Form: TComponent); dynamic; + { Adds a method. Syntax is the same as for TfsClassVariable.AddMethod } + procedure AddMethod(const Syntax: String; CallEvent: TfsCallMethodNewEvent; + const Category: String = ''; const Description: String = ''); overload; dynamic; + procedure AddMethod(const Syntax: String; CallEvent: TfsCallMethodEvent; + const Category: String = ''; const Description: String = ''); overload; dynamic; + { Adds an external object. Example: + AddObject('Memo1', Memo1) } + procedure AddObject(const Name: String; Obj: TObject); dynamic; + { Adds a variable. Example: + AddVariable('n', 'Variant', 0) } + procedure AddVariable(const Name, Typ: String; const Value: Variant); dynamic; + { Adds a type. Example: + AddType('TDateTime', fvtFloat) } + procedure AddType(const TypeName: String; ParentType: TfsVarType); dynamic; + { Calls internal procedure or function. Example: + val := CallFunction('ScriptFunc1', VarArrayOf([2003, 3])) } + function CallFunction(const Name: String; const Params: Variant; sGlobal: Boolean = false): Variant; + function CallFunction1(const Name: String; var Params: Variant; sGlobal: Boolean = false): Variant; + function CallFunction2(const Func: TfsProcVariable; const Params: Variant): Variant; + + { Compiles the source code. Example: + Lines.Text := 'begin i := 0 end.'; + SyntaxType := 'PascalScript'; + if Compile then ... } + function Compile: Boolean; + { Executes compiled code } + procedure Execute; + { Same as if Compile then Execute. Returns False if compile failed } + function Run: Boolean; + { terminates the script } + procedure Terminate; + { Evaluates an expression (useful for debugging purposes). Example: + val := Evaluate('i+1'); } + function Evaluate(const Expression: String): Variant; + { checks whether is the line is executable } + function IsExecutableLine(LineN: Integer; const UnitName: String = ''): Boolean; + + { Generates intermediate language. You can save it and compile later + by SetILCode method } + function GetILCode(Stream: TStream): Boolean; + { Compiles intermediate language } + function SetILCode(Stream: TStream): Boolean; + + function Find(const Name: String): TfsCustomVariable; + function FindClass(const Name: String): TfsClassVariable; + function FindLocal(const Name: String): TfsCustomVariable; + + property AddedBy: TObject read FAddedBy write FAddedBy; + property ClearLocalVars: Boolean read FClearLocalVars write FClearLocalVars; + property ErrorMsg: String read FErrorMsg write FErrorMsg; + property ErrorPos: String read FErrorPos write FErrorPos; + property ErrorUnit: String read FErrorUnit write FErrorUnit; + property ExtendedCharset: Boolean read FExtendedCharset write FExtendedCharset; + property Items[Index: Integer]: TfsCustomVariable read GetItem; + property IsRunning: Boolean read FIsRunning; + property Macros: TStrings read FMacros; + property MainProg: Boolean read FMainProg write FMainProg; + property Parent: TfsScript read FParent write FParent; + property ProgRunning: TfsScript read FProgRunning; + property ProgName: String read GetProgName write SetProgName; + property Statement: TfsStatement read FStatement; + property Variables[Index: String]: Variant read GetVariables write SetVariables; + property IncludePath: TStrings read FIncludePath; + property UseClassLateBinding: Boolean read FUseClassLateBinding write FUseClassLateBinding; + property EvaluteRiseError: Boolean read FEvaluteRiseError; + published + { the source code } + property Lines: TStrings read FLines write SetLines; + { the language name } + property SyntaxType: String read FSyntaxType write FSyntaxType; + property OnGetILUnit: TfsGetUnitEvent read FOnGetILUnit write FOnGetILUnit; + property OnGetUnit: TfsGetUnitEvent read FOnGetUnit write FOnGetUnit; + property OnRunLine: TfsRunLineEvent read FOnRunLine write FOnRunLine; + property OnGetVarValue: TfsGetVariableValueEvent read FOnGetVarValue write FOnGetVarValue; + end; + + + TfsCustomExpression = class; + TfsSetExpression = class; + +{ Statements } + + TfsStatement = class(TfsItemList) + private + FProgram: TfsScript; + FSourcePos: String; + FUnitName: String; + function GetItem(Index: Integer): TfsStatement; + procedure RunLine; + public + constructor Create(AProgram: TfsScript; const UnitName, SourcePos: String); virtual; + procedure Execute; virtual; + property Items[Index: Integer]: TfsStatement read GetItem; + end; + + TfsAssignmentStmt = class(TfsStatement) + private + FDesignator: TfsDesignator; + FExpression: TfsCustomExpression; + FVar: TfsCustomVariable; + FExpr: TfsCustomVariable; + public + destructor Destroy; override; + procedure Execute; override; + procedure Optimize; + property Designator: TfsDesignator read FDesignator write FDesignator; + property Expression: TfsCustomExpression read FExpression write FExpression; + end; + + TfsAssignPlusStmt = class(TfsAssignmentStmt) + public + procedure Execute; override; + end; + + TfsAssignMinusStmt = class(TfsAssignmentStmt) + public + procedure Execute; override; + end; + + TfsAssignMulStmt = class(TfsAssignmentStmt) + public + procedure Execute; override; + end; + + TfsAssignDivStmt = class(TfsAssignmentStmt) + public + procedure Execute; override; + end; + + TfsCallStmt = class(TfsStatement) + private + FDesignator: TfsDesignator; + FModificator: String; + public + destructor Destroy; override; + procedure Execute; override; + property Designator: TfsDesignator read FDesignator write FDesignator; + property Modificator: String read FModificator write FModificator; + end; + + TfsIfStmt = class(TfsStatement) + private + FCondition: TfsCustomExpression; + FElseStmt: TfsStatement; + public + constructor Create(AProgram: TfsScript; const UnitName, SourcePos: String); override; + destructor Destroy; override; + procedure Execute; override; + property Condition: TfsCustomExpression read FCondition write FCondition; + property ElseStmt: TfsStatement read FElseStmt write FElseStmt; + end; + + TfsCaseSelector = class(TfsStatement) + private + FSetExpression: TfsSetExpression; + public + destructor Destroy; override; + function Check(const Value: Variant): Boolean; + property SetExpression: TfsSetExpression read FSetExpression write FSetExpression; + end; + + TfsCaseStmt = class(TfsStatement) + private + FCondition: TfsCustomExpression; + FElseStmt: TfsStatement; + public + constructor Create(AProgram: TfsScript; const UnitName, SourcePos: String); override; + destructor Destroy; override; + procedure Execute; override; + property Condition: TfsCustomExpression read FCondition write FCondition; + property ElseStmt: TfsStatement read FElseStmt write FElseStmt; + end; + + TfsRepeatStmt = class(TfsStatement) + private + FCondition: TfsCustomExpression; + FInverseCondition: Boolean; + public + destructor Destroy; override; + procedure Execute; override; + property Condition: TfsCustomExpression read FCondition write FCondition; + property InverseCondition: Boolean read FInverseCondition write FInverseCondition; + end; + + TfsWhileStmt = class(TfsStatement) + private + FCondition: TfsCustomExpression; + public + destructor Destroy; override; + procedure Execute; override; + property Condition: TfsCustomExpression read FCondition write FCondition; + end; + + TfsForStmt = class(TfsStatement) + private + FBeginValue: TfsCustomExpression; + FDown: Boolean; + FEndValue: TfsCustomExpression; + FVariable: TfsCustomVariable; + public + destructor Destroy; override; + procedure Execute; override; + property BeginValue: TfsCustomExpression read FBeginValue write FBeginValue; + property Down: Boolean read FDown write FDown; + property EndValue: TfsCustomExpression read FEndValue write FEndValue; + property Variable: TfsCustomVariable read FVariable write FVariable; + end; + + TfsVbForStmt = class(TfsStatement) + private + FBeginValue: TfsCustomExpression; + FEndValue: TfsCustomExpression; + FStep: TfsCustomExpression; + FVariable: TfsCustomVariable; + public + destructor Destroy; override; + procedure Execute; override; + property BeginValue: TfsCustomExpression read FBeginValue write FBeginValue; + property EndValue: TfsCustomExpression read FEndValue write FEndValue; + property Step: TfsCustomExpression read FStep write FStep; + property Variable: TfsCustomVariable read FVariable write FVariable; + end; + + TfsCppForStmt = class(TfsStatement) + private + FFirstStmt: TfsStatement; + FExpression: TfsCustomExpression; + FSecondStmt: TfsStatement; + public + constructor Create(AProgram: TfsScript; const UnitName, SourcePos: String); override; + destructor Destroy; override; + procedure Execute; override; + property FirstStmt: TfsStatement read FFirstStmt write FFirstStmt; + property Expression: TfsCustomExpression read FExpression write FExpression; + property SecondStmt: TfsStatement read FSecondStmt write FSecondStmt; + end; + + TfsTryStmt = class(TfsStatement) + private + FIsExcept: Boolean; + FExceptStmt: TfsStatement; + public + constructor Create(AProgram: TfsScript; const UnitName, SourcePos: String); override; + destructor Destroy; override; + procedure Execute; override; + property IsExcept: Boolean read FIsExcept write FIsExcept; + property ExceptStmt: TfsStatement read FExceptStmt write FExceptStmt; + end; + + TfsBreakStmt = class(TfsStatement) + public + procedure Execute; override; + end; + + TfsContinueStmt = class(TfsStatement) + public + procedure Execute; override; + end; + + TfsExitStmt = class(TfsStatement) + public + procedure Execute; override; + end; + + TfsWithStmt = class(TfsStatement) + private + FDesignator: TfsDesignator; + FVariable: TfsCustomVariable; + public + destructor Destroy; override; + procedure Execute; override; + property Designator: TfsDesignator read FDesignator write FDesignator; + property Variable: TfsCustomVariable read FVariable write FVariable; + end; + +{ TfsCustomVariable is the generic class for variables, constants, arrays, + properties, methods and procedures/functions } + + TfsParamItem = class; + + TfsCustomVariable = class(TfsItemList) + private + FAddedBy: TObject; + FIsMacro: Boolean; + FIsReadOnly: Boolean; + FName: String; + FNeedResult: Boolean; + FRefItem: TfsCustomVariable; + FSourcePos: String; + FSourceUnit: String; + FTyp: TfsVarType; + FTypeName: String; + FUppercaseName: String; + FValue: Variant; + FOnGetVarValue: TfsGetVariableValueEvent; + function GetParam(Index: Integer): TfsParamItem; + function GetPValue: PVariant; + protected + procedure SetValue(const Value: Variant); virtual; + function GetValue: Variant; virtual; + public + constructor Create(const AName: String; ATyp: TfsVarType; + const ATypeName: String); + function GetFullTypeName: String; + function GetNumberOfRequiredParams: Integer; + + property AddedBy: TObject read FAddedBy write FAddedBy; + property IsMacro: Boolean read FIsMacro write FIsMacro; + property IsReadOnly: Boolean read FIsReadOnly write FIsReadOnly; + property Name: String read FName; + property NeedResult: Boolean read FNeedResult write FNeedResult; + property Params[Index: Integer]: TfsParamItem read GetParam; default; + property PValue: PVariant read GetPValue; + property RefItem: TfsCustomVariable read FRefItem write FRefItem; + property SourcePos: String read FSourcePos write FSourcePos; + property SourceUnit: String read FSourceUnit write FSourceUnit; + property Typ: TfsVarType read FTyp write FTyp; + property TypeName: String read FTypeName write FTypeName; + property Value: Variant read GetValue write SetValue; + property OnGetVarValue: TfsGetVariableValueEvent read FOnGetVarValue write FOnGetVarValue; + end; + +{ TfsVariable represents constant or variable } + + TfsVariable = class(TfsCustomVariable) + protected + procedure SetValue(const Value: Variant); override; + function GetValue: Variant; override; + end; + + TfsTypeVariable = class(TfsCustomVariable) + end; + + TfsStringVariable = class(TfsVariable) + private + FStr: String; + protected + procedure SetValue(const Value: Variant); override; + function GetValue: Variant; override; + end; + +{ TfsParamItem describes one parameter of procedure/function/method call } + + TfsParamItem = class(TfsCustomVariable) + private + FDefValue: Variant; + FIsOptional: Boolean; + FIsVarParam: Boolean; + public + constructor Create(const AName: String; ATyp: TfsVarType; + const ATypeName: String; AIsOptional, AIsVarParam: Boolean); + property DefValue: Variant read FDefValue write FDefValue; + property IsOptional: Boolean read FIsOptional; + property IsVarParam: Boolean read FIsVarParam; + end; + +{ TfsProcVariable is a local internal procedure/function. Formal parameters + are in Params, and statement to execute is in Prog: TfsScript } + + TfsLocalVariablesHelper = class(TObject) + protected + FValue: Variant; + FVariableLink :TfsCustomVariable; + end; + + + TfsProcVariable = class(TfsCustomVariable) + private + FExecuting: Boolean; + FIsFunc: Boolean; + FProgram: TfsScript; + FVarsStack: TList; + protected + function GetValue: Variant; override; + public + constructor Create(const AName: String; ATyp: TfsVarType; + const ATypeName: String; AParent: TfsScript; AIsFunc: Boolean = True); + destructor Destroy; override; + function SaveLocalVariables: Integer; + procedure RestoreLocalVariables(StackIndex: Integer; bSkipVarParams: Boolean = False; dItem: TfsDesignatorItem = nil); + property Executing: Boolean read FExecuting; + property IsFunc: Boolean read FIsFunc; + property Prog: TfsScript read FProgram; + end; + + TfsCustomExpression = class(TfsCustomVariable) + end; + +{ TfsCustomHelper is the generic class for the "helpers". Helper is + a object that takes the data from the parent object and performs some + actions. Helpers needed for properties, methods and arrays } + + TfsCustomHelper = class(TfsCustomVariable) + private + FParentRef: TfsCustomVariable; + FParentValue: Variant; + FProgram: TfsScript; + public + property ParentRef: TfsCustomVariable read FParentRef write FParentRef; + + property ParentValue: Variant read FParentValue write FParentValue; + + property Prog: TfsScript read FProgram write FProgram; + end; + +{ TfsArrayHelper performs access to array elements } + + TfsArrayHelper = class(TfsCustomHelper) + protected + procedure SetValue(const Value: Variant); override; + function GetValue: Variant; override; + public + constructor Create(const AName: String; DimCount: Integer; Typ: TfsVarType; + const TypeName: String); + destructor Destroy; override; + end; + +{ TfsStringHelper performs access to string elements } + + TfsStringHelper = class(TfsCustomHelper) + protected + procedure SetValue(const Value: Variant); override; + function GetValue: Variant; override; + public + constructor Create; + end; + +{ TfsPropertyHelper gets/sets the property value. Object instance is + stored as Integer in the ParentValue property } + + TfsPropertyHelper = class(TfsCustomHelper) + private + FClassRef: TClass; + FIsPublished: Boolean; + FOnGetValue: TfsGetValueEvent; + FOnSetValue: TfsSetValueEvent; + FOnGetValueNew: TfsGetValueNewEvent; + FOnSetValueNew: TfsSetValueNewEvent; + protected + procedure SetValue(const Value: Variant); override; + function GetValue: Variant; override; + public + property IsPublished: Boolean read FIsPublished; + property OnGetValue: TfsGetValueEvent read FOnGetValue write FOnGetValue; + property OnSetValue: TfsSetValueEvent read FOnSetValue write FOnSetValue; + property OnGetValueNew: TfsGetValueNewEvent read FOnGetValueNew write FOnGetValueNew; + property OnSetValueNew: TfsSetValueNewEvent read FOnSetValueNew write FOnSetValueNew; + end; + +{ TfsMethodHelper gets/sets the method value. Object instance is + stored as Integer in the ParentValue property. SetValue is called + if the method represents the indexes property. } + + TfsMethodHelper = class(TfsCustomHelper) + private + FCategory: String; + FClassRef: TClass; + FDescription: String; + FIndexMethod: Boolean; + FOnCall: TfsCallMethodEvent; + FOnCallNew: TfsCallMethodNewEvent; + FSetValue: Variant; + FSyntax: String; + FVarArray: Variant; + function GetVParam(Index: Integer): Variant; + procedure SetVParam(Index: Integer; const Value: Variant); + protected + procedure SetValue(const Value: Variant); override; + function GetValue: Variant; override; + public + constructor Create(const Syntax: String; Script: TfsScript); + destructor Destroy; override; + + property Category: String read FCategory write FCategory; + property Description: String read FDescription write FDescription; + property IndexMethod: Boolean read FIndexMethod; + property Params[Index: Integer]: Variant read GetVParam write SetVParam; default; + property Syntax: String read FSyntax; + property OnCall: TfsCallMethodEvent read FOnCall write FOnCall; + property OnCallNew: TfsCallMethodNewEvent read FOnCallNew write FOnCallNew; + end; + +{ TfsComponentHelper gets the component inside an owner, e.g. Form1.Button1 } + + TfsComponentHelper = class(TfsCustomHelper) + protected + function GetValue: Variant; override; + procedure SetValue(const Value: Variant); override; + public + constructor Create(const Name: String; const ClassName: String); + end; + +{ Event helper maintains VCL events } + + TfsCustomEvent = class(TObject) + private + FHandler: TfsProcVariable; + FInstance: TObject; + protected + procedure CallHandler(Params: array of const); + public + constructor Create(AObject: TObject; AHandler: TfsProcVariable); virtual; + function GetMethod: Pointer; virtual; abstract; + property Handler: TfsProcVariable read FHandler; + property Instance: TObject read FInstance; + end; + + TfsEventClass = class of TfsCustomEvent; + + TfsEventHelper = class(TfsCustomHelper) + private + FClassRef: TClass; + FEvent: TfsEventClass; + protected + procedure SetValue(const Value: Variant); override; + function GetValue: Variant; override; + public + constructor Create(const Name: String; AEvent: TfsEventClass); + end; + +{ TfsClassVariable holds information about external class. Call to + AddXXX methods adds properties and methods items to the items list } + + TfsClassVariable = class(TfsCustomVariable) + private + FAncestor: String; + FClassRef: TClass; + FDefProperty: TfsCustomHelper; + FMembers: TfsItemList; + FProgram: TfsScript; + procedure AddPublishedProperties(AClass: TClass); + function GetMembers(Index: Integer): TfsCustomHelper; + function GetMembersCount: Integer; + protected + function GetValue: Variant; override; + public + constructor Create(AClass: TClass; const Ancestor: String); + destructor Destroy; override; + + { Adds a contructor. Example: + AddConstructor('constructor Create(AOwner: TComponent)', MyCallEvent) } + procedure AddConstructor(Syntax: String; CallEvent: TfsCallMethodNewEvent); overload; + procedure AddConstructor(Syntax: String; CallEvent: TfsCallMethodEvent); overload; + function AddComponent(c: TComponent): TfsComponentHelper ; + { Adds a property. Example: + AddProperty('Font', 'TFont', MyGetEvent, MySetEvent) } + procedure AddProperty(const Name, Typ: String; + GetEvent: TfsGetValueEvent; SetEvent: TfsSetValueEvent = nil); + procedure AddPropertyEx(const Name, Typ: String; + GetEvent: TfsGetValueNewEvent; SetEvent: TfsSetValueNewEvent = nil); + { Adds a default property. Example: + AddDefaultProperty('Cell', 'Integer,Integer', 'String', MyCallEvent) + will describe real property Cell[Index1, Index2: Integer]: String + Note: in the CallEvent you'll get the MethodName parameter + 'CELL.GET' and 'CELL.SET', not 'CELL' } + procedure AddDefaultProperty(const Name, Params, Typ: String; + CallEvent: TfsCallMethodNewEvent; AReadOnly: Boolean = False); overload; + procedure AddDefaultProperty(const Name, Params, Typ: String; + CallEvent: TfsCallMethodEvent; AReadOnly: Boolean = False); overload; + { Adds an indexed property. Example and behavior are the same as + for AddDefaultProperty } + procedure AddIndexProperty(const Name, Params, Typ: String; + CallEvent: TfsCallMethodNewEvent; AReadOnly: Boolean = False); overload; + procedure AddIndexProperty(const Name, Params, Typ: String; + CallEvent: TfsCallMethodEvent; AReadOnly: Boolean = False); overload; + { Adds a method. Example: + AddMethod('function IsVisible: Boolean', MyCallEvent) } + procedure AddMethod(const Syntax: String; CallEvent: TfsCallMethodNewEvent); overload; + procedure AddMethod(const Syntax: String; CallEvent: TfsCallMethodEvent); overload; + { Adds an event. Example: + AddEvent('OnClick', TfsNotifyEvent) } + procedure AddEvent(const Name: String; AEvent: TfsEventClass); + function Find(const Name: String; IncludeComponentHelper: Boolean = True): TfsCustomHelper; + + property Ancestor: String read FAncestor; + property ClassRef: TClass read FClassRef; + property DefProperty: TfsCustomHelper read FDefProperty; + property Members[Index: Integer]: TfsCustomHelper read GetMembers; + property MembersCount: Integer read GetMembersCount; + end; + +{ TfsDesignator holds the parts of function/procedure/variable/method/property + calls. Items are of type TfsDesignatorItem. + For example, Table1.FieldByName('N').AsString[1] will be represented as + items[0]: name 'Table1', no params + items[1]: name 'FieldByName', 1 param: 'N' + items[2]: name 'AsString', no params + items[3]: name '[', 1 param: '1' + Call to Value calculates and returns the designator value } + + TfsDesignatorKind = (dkOther, dkVariable, dkStringArray, dkArray); + + TfsDesignatorItem = class(TfsItemList) + private + FFlag: Boolean; { needed for index methods } + FRef: TfsCustomVariable; + FSourcePos: String; + function GetItem(Index: Integer): TfsCustomExpression; + public + property Items[Index: Integer]: TfsCustomExpression read GetItem; default; + property Flag: Boolean read FFlag write FFlag; + property Ref: TfsCustomVariable read FRef write FRef; + property SourcePos: String read FSourcePos write FSourcePos; + end; + + TfsDesignator = class(TfsCustomVariable) + private + FKind: TfsDesignatorKind; + FMainProg: TfsScript; + FProgram: TfsScript; + FRef1: TfsCustomVariable; + FRef2: TfsDesignatorItem; + FLateBindingXmlSource: TfsXMLItem; + procedure CheckLateBinding; + function DoCalc(const AValue: Variant; Flag: Boolean): Variant; + function GetItem(Index: Integer): TfsDesignatorItem; + protected + function GetValue: Variant; override; + procedure SetValue(const Value: Variant); override; + public + constructor Create(AProgram: TfsScript); + destructor Destroy; override; + procedure Borrow(ADesignator: TfsDesignator); + procedure Finalize; + property Items[Index: Integer]: TfsDesignatorItem read GetItem; default; + property Kind: TfsDesignatorKind read FKind; + property LateBindingXmlSource: TfsXMLItem read FLateBindingXmlSource + write FLateBindingXmlSource; + end; + + TfsVariableDesignator = class(TfsDesignator) + protected + function GetValue: Variant; override; + procedure SetValue(const Value: Variant); override; + end; + + TfsStringDesignator = class(TfsDesignator) + protected + function GetValue: Variant; override; + procedure SetValue(const Value: Variant); override; + end; + + TfsArrayDesignator = class(TfsDesignator) + protected + function GetValue: Variant; override; + procedure SetValue(const Value: Variant); override; + end; + +{ TfsSetExpression represents a set of values like ['_', '0'..'9'] } + + TfsSetExpression = class(TfsCustomVariable) + private + function GetItem(Index: Integer): TfsCustomExpression; + protected + function GetValue: Variant; override; + public + function Check(const Value: Variant): Boolean; + property Items[Index: Integer]: TfsCustomExpression read GetItem; + end; + + TfsRTTIModule = class(TObject) + private + FScript: TfsScript; + public + constructor Create(AScript: TfsScript); virtual; + property Script: TfsScript read FScript; + end; + + +function fsGlobalUnit: TfsScript; +function fsIsGlobalUnitExist: Boolean; +function fsRTTIModules: TList; + + +implementation +//VCL uses section +{$IFNDEF FMX} +uses + TypInfo, fs_isysrtti, fs_iexpression, fs_iparser, fs_iilparser, + fs_itools, fs_iconst +{$IFDEF DELPHI16} + , Vcl.Controls +{$ENDIF} +{$IFDEF CLX} +, QForms, QDialogs, Types +{$ELSE} + {$IFDEF FPC} + {$IFDEF NOFORMS} + // nothing + {$ELSE} + , Forms, Dialogs + {$ENDIF} + {$ELSE} + , Windows + {$IFDEF NOFORMS} + , Messages + {$ELSE} + , Forms, Dialogs + {$ENDIF} + {$ENDIF} +{$ENDIF}; +//FMX uses section +{$ELSE} +uses + System.TypInfo, FMX.fs_isysrtti, FMX.fs_iexpression, FMX.fs_iparser, FMX.fs_iilparser, + FMX.fs_itools, FMX.fs_iconst, FMX.Types + {$IFDEF NOFORMS} + , Windows, Messages + {$ELSE} + , FMX.Forms, FMX.Dialogs + {$ENDIF}; +{$ENDIF} + +var + FGlobalUnit: TfsScript = nil; + FGlobalUnitDestroyed: Boolean = False; + FRTTIModules: TList = nil; + FRTTIModulesDestroyed: Boolean = False; + + +{ TfsItemsList } + +constructor TfsItemList.Create; +begin + FItems := TList.Create; +end; + +destructor TfsItemList.Destroy; +begin + Clear; + FItems.Free; + inherited; +end; + +procedure TfsItemList.Clear; +begin + while FItems.Count > 0 do + begin + TObject(FItems[0]).Free; + FItems.Delete(0); + end; +end; + +function TfsItemList.Count: Integer; +begin + Result := FItems.Count; +end; + +procedure TfsItemList.Add(Item: TObject); +begin + FItems.Add(Item); +end; + +procedure TfsItemList.Remove(Item: TObject); +begin + FItems.Remove(Item); +end; + + +{ TfsCustomVariable } + +constructor TfsCustomVariable.Create(const AName: String; ATyp: TfsVarType; + const ATypeName: String); +begin + inherited Create; + FName := AName; + FTyp := ATyp; + FTypeName := ATypeName; + FValue := Null; + FNeedResult := True; + FUppercaseName := AnsiUppercase(FName); +end; + +function TfsCustomVariable.GetValue: Variant; +begin + Result := FValue; +end; + +procedure TfsCustomVariable.SetValue(const Value: Variant); +begin + if not FIsReadOnly then + FValue := Value; +end; + +function TfsCustomVariable.GetParam(Index: Integer): TfsParamItem; +begin + Result := FItems[Index]; +end; + +function TfsCustomVariable.GetPValue: PVariant; +begin + Result := @FValue; +end; + +function TfsCustomVariable.GetFullTypeName: String; +begin + case FTyp of + fvtInt: Result := 'Integer'; + fvtInt64: Result := 'Int64'; + fvtBool: Result := 'Boolean'; + fvtFloat: Result := 'Extended'; + fvtChar: Result := 'Char'; + fvtString: Result := 'String'; + fvtClass: Result := FTypeName; + fvtArray: Result := 'Array'; + fvtEnum: Result := FTypeName; + else + Result := 'Variant'; + end; +end; + +function TfsCustomVariable.GetNumberOfRequiredParams: Integer; +var + i: Integer; +begin + Result := 0; + for i := 0 to Count - 1 do + if not Params[i].IsOptional then + Inc(Result); +end; + + +{ TfsStringVariable } + +function TfsStringVariable.GetValue: Variant; +begin + Result := FStr; + if Assigned(FOnGetVarValue) then + begin + Result := FOnGetVarValue(FName, FTyp, FStr); + if Result = null then Result := FStr; + end; +end; + +procedure TfsStringVariable.SetValue(const Value: Variant); +begin + FStr := Value; +end; + + +{ TfsParamItem } + +constructor TfsParamItem.Create(const AName: String; ATyp: TfsVarType; + const ATypeName: String; AIsOptional, AIsVarParam: Boolean); +begin + inherited Create(AName, ATyp, ATypeName); + FIsOptional := AIsOptional; + FIsVarParam := AIsVarParam; + FDefValue := Null; +end; + + +{ TfsProcVariable } + +constructor TfsProcVariable.Create(const AName: String; ATyp: TfsVarType; + const ATypeName: String; AParent: TfsScript; AIsFunc: Boolean = True); +begin + inherited Create(AName, ATyp, ATypeName); + FIsReadOnly := True; + FVarsStack := TList.Create; + FIsFunc := AIsFunc; + FProgram := TfsScript.Create(nil); + FProgram.Parent := AParent; + if FProgram.Parent <> nil then + FProgram.UseClassLateBinding := FProgram.Parent.UseClassLateBinding; + if FIsFunc then + begin + FRefItem := TfsVariable.Create('Result', ATyp, ATypeName); + FProgram.Add('Result', FRefItem); + end; +end; + + + +destructor TfsProcVariable.Destroy; +var + i: Integer; +begin + { avoid destroying the param objects twice } + for i := 0 to Count - 1 do + FProgram.FItems.Delete(FProgram.FItems.IndexOfObject(Params[i])); + + FProgram.Free; + FVarsStack.Free; + inherited; +end; + +function TfsProcVariable.GetValue: Variant; +var + Temp: Boolean; + ParentProg, SaveProg: TfsScript; + i: Integer; +begin + Temp := FExecuting; + FExecuting := True; + if FIsFunc then + FRefItem.Value := Unassigned; + + ParentProg := FProgram; + SaveProg := nil; + while ParentProg <> nil do + if ParentProg.FMainProg then + begin + SaveProg := ParentProg.FProgRunning; + ParentProg.FProgRunning := FProgram; + break; + end + else + ParentProg := ParentProg.FParent; + + try +// avoid trial message +// same as FProgram.Execute + with FProgram do + begin + FExitCalled := False; + FTerminated := False; + FIsRunning := True; + FProgName := Self.FName; + try + FStatement.Execute; + finally + FExitCalled := False; + FTerminated := False; + FIsRunning := False; + FProgName := ''; + end; + end; +// + + if FIsFunc then + Result := FRefItem.Value else + Result := Null; + finally + if ParentProg <> nil then + ParentProg.FProgRunning := SaveProg; + FExecuting := Temp; + if (ParentProg <> nil) and ParentProg.FClearLocalVars then + for i := 0 to Prog.Count - 1 do + if (Prog.Items[i] is TfsVariable) and + (CompareText('Result', Prog.Items[i].Name) <> 0) +{$IFDEF DELPHI6} + and not VarIsClear(Prog.Items[i].Value) +{$ENDIF} + then + case TfsVariable(Prog.Items[i]).Typ of + fvtString: + TfsVariable(Prog.Items[i]).Value := ''; + fvtInt, fvtFloat, fvtChar: + TfsVariable(Prog.Items[i]).Value := 0; + fvtVariant: + TfsVariable(Prog.Items[i]).Value := Null; + end; + end; +end; + +function TfsProcVariable.SaveLocalVariables: Integer; +var + i: Integer; + LocalVars: TList; + StackItem: TfsLocalVariablesHelper; +begin + LocalVars := TList.Create; + FVarsStack.Add(LocalVars); + Result := FVarsStack.Count - 1; + for i := 0 to Prog.Count - 1 do + if (Prog.Items[i] is TfsVariable) or (Prog.Items[i] is TfsParamItem) then + begin + StackItem := TfsLocalVariablesHelper.Create; + StackItem.FValue := Prog.Items[i].Value; + StackItem.FVariableLink := Prog.Items[i]; + LocalVars.Add(StackItem); + end; +end; + +procedure TfsProcVariable.RestoreLocalVariables(StackIndex: Integer; bSkipVarParams: Boolean; dItem: TfsDesignatorItem); +var + i: Integer; + LocalVars: TList; + StackItem: TfsLocalVariablesHelper; + bIsVar: Boolean; + Temp1: array of Variant; +begin + if (FVarsStack.Count < StackIndex) or (StackIndex < 0) then Exit; + LocalVars := TList(FVarsStack[StackIndex]); + SetLength(Temp1, Count); + try + { save var parameters value, need when pass same variable as VAR parameter } + if Assigned(dItem) then + for i := 0 to Count - 1 do + if Params[i].IsVarParam then + Temp1[i] := Params[i].Value; + for i := 0 to LocalVars.Count - 1 do + begin + StackItem := TfsLocalVariablesHelper(LocalVars[i]); + bIsVar := TfsParamItem(StackItem.FVariableLink).FIsVarParam; + if not (bSkipVarParams and (StackItem.FVariableLink is TfsParamItem) and bIsVar) then + StackItem.FVariableLink.Value := StackItem.FValue; + StackItem.Free; + end; + if Assigned(dItem) then + for i := 0 to Count - 1 do + if Params[i].IsVarParam then + dItem[i].Value := Temp1[i]; + finally + Temp1 := nil; + LocalVars.Free; + FVarsStack.Delete(StackIndex); + end; +end; + + +{ TfsPropertyHelper } + +function TfsPropertyHelper.GetValue: Variant; +var + p: PPropInfo; + Instance: TObject; +begin + + Result := Null; + Instance := TObject(frxInteger(ParentValue)); + + if FIsPublished and Assigned(Instance) then + begin + p := GetPropInfo(Instance.ClassInfo, Name); + if p <> nil then + case p.PropType^.Kind of + tkInteger, tkSet, tkEnumeration, tkClass + {$IFDEF FPC} ,tkBool {$ENDIF}: + Result := GetOrdProp(Instance, p); +{$IFDEF FS_INT64} + tkInt64: + Result := GetInt64Prop(Instance, p); +{$ENDIF} + tkFloat: + Result := GetFloatProp(Instance, p); + +// tkString, tkLString, tkWString{$IFDEF Delphi12}, tkUString{$ENDIF}: +// Result := GetStrProp(Instance, p); + + tkChar, tkWChar: + Result := Chr(GetOrdProp(Instance, p)); + + tkVariant: + Result := GetVariantProp(Instance, p); +{$IFDEF Delphi12} + tkString, tkLString: + Result := GetAnsiStrProp(Instance, p); + tkWString, tkUString: + Result := GetUnicodeStrProp(Instance, p); +{$ELSE} + tkString, tkLString, tkWString{$ifdef FPC}, tkAString{$endif}: + Result := GetStrProp(Instance, p); +{$ENDIF} + end; + end + else if Assigned(FOnGetValue) then + Result := FOnGetValue(Instance, FClassRef, FUppercaseName) + else if Assigned(FOnGetValueNew) then + Result := FOnGetValueNew(Instance, FClassRef, FUppercaseName, Self); + + if Typ = fvtBool then + if Result = 0 then + Result := False else + Result := True; + +end; + +procedure TfsPropertyHelper.SetValue(const Value: Variant); +var + p: PPropInfo; + Instance: TObject; + IntVal: frxInteger; + Int64Val: Int64; +begin + + if IsReadOnly then Exit; + Instance := TObject(frxInteger(ParentValue)); + + + + if FIsPublished then + begin + p := GetPropInfo(Instance.ClassInfo, Name); + if p <> nil then + case p.PropType^.Kind of + tkInteger, tkSet, tkEnumeration, tkClass + {$IFDEF FPC} ,tkBool {$ENDIF}: +// {$IFDEF Delphi12}, tkInt64{$ENDIF}: + begin +{$IFNDEF Delphi4} + if VarType(Value) <> varInteger then + begin + SetSetProp(Instance, p, fsSetToString(p, Value)); + end + else +{$ENDIF} + begin + if Typ = fvtBool then + if Value = True then + IntVal := 1 else + IntVal := 0 + else +{$IFNDEF CPUX64} +{$IFDEF Delphi12} + if (VarType(Value) = varInt64) + or (VarType(Value) = varUInt64) then + begin + Int64Val := Value; + IntVal := Cardinal(Int64Rec(Int64Val).Lo); + end + else +{$ENDIF} +{$ENDIF} + IntVal := frxInteger(Value); + SetOrdProp(Instance, p, IntVal); + end; + end; +{$IFNDEF DELPHI16} +{$IFDEF FS_INT64} + tkInt64: + SetInt64Prop(Instance, p, Value); +{$ENDIF} +{$ELSE} + tkInt64: + SetInt64Prop(Instance, p, Int64(Value)); +{$ENDIF} + tkFloat: + SetFloatProp(Instance, p, Extended(Value)); + +// tkString, tkLString: +// SetStrProp(Instance, p, String(Value)); + +// tkWString{$IFDEF Delphi12}, tkUString{$ENDIF}: +// SetStrProp(Instance, p, WideString(Value)); + + tkChar, tkWChar: + SetOrdProp(Instance, p, Ord(String(Value)[1])); + + tkVariant: + SetVariantProp(Instance, p, Value); + +{$IFDEF Delphi12} + tkString, tkLString: + SetAnsiStrProp(Instance, p, AnsiString(Value)); + tkWString, tkUString: + SetUnicodeStrProp(Instance, p, WideString(Value)); +{$ELSE} + tkString, tkLString, tkWString{$ifdef FPC}, tkAString{$endif}: + SetStrProp(Instance, p, String(Value)); +{$ENDIF} + end; + end + else if Assigned(FOnSetValue) then + FOnSetValue(Instance, FClassRef, FUppercaseName, Value) + else if Assigned(FOnSetValueNew) then + FOnSetValueNew(Instance, FClassRef, FUppercaseName, Value, Self); + +end; + + +{ TfsMethodHelper } + +constructor TfsMethodHelper.Create(const Syntax: String; Script: TfsScript); +var + i: Integer; + v: TfsCustomVariable; +begin + v := ParseMethodSyntax(Syntax, Script); + inherited Create(v.Name, v.Typ, v.TypeName); + FIsReadOnly := True; + FSyntax := Syntax; + IsMacro := v.IsMacro; + + { copying params } + for i := 0 to v.Count - 1 do + Add(v.Params[i]); + while v.Count > 0 do + v.FItems.Delete(0); + v.Free; + + // FPC and Delphi do this different way. FPC implementation more honest, so + // if Count = 0 then we get exception about bad bounds + if Count > 0 then + FVarArray := VarArrayCreate([0, Count - 1], varVariant); +end; + +destructor TfsMethodHelper.Destroy; +begin + FVarArray := Null; + inherited; +end; + +function TfsMethodHelper.GetVParam(Index: Integer): Variant; +begin + if Index = Count then + Result := FSetValue + else + Result := TfsParamItem(FItems[Index]).Value; +end; + +procedure TfsMethodHelper.SetVParam(Index: Integer; const Value: Variant); +begin + TfsParamItem(FItems[Index]).Value := Value; +end; + +function TfsMethodHelper.GetValue: Variant; +var + i: Integer; + Instance: TObject; +begin + if Assigned(FOnCall) then + begin + for i := 0 to Count - 1 do + FVarArray[i] := inherited Params[i].Value; + + Instance := nil; + if not VarIsNull(ParentValue) then + Instance := TObject(frxInteger(ParentValue)); + + if FIndexMethod then + Result := FOnCall(Instance, FClassRef, FUppercaseName + '.GET', FVarArray) + else + Result := FOnCall(Instance, FClassRef, FUppercaseName, FVarArray); + for i := 0 to Count - 1 do + begin + if inherited Params[i].IsVarParam then + inherited Params[i].Value := FVarArray[i]; + FVarArray[i] := Null; + end; + end + else if Assigned(FOnCallNew) then + begin + Instance := nil; + if not VarIsNull(ParentValue) then + Instance := TObject(frxInteger(ParentValue)); + + if FIndexMethod then + Result := FOnCallNew(Instance, FClassRef, FUppercaseName + '.GET', Self) + else + Result := FOnCallNew(Instance, FClassRef, FUppercaseName, Self); + end + else + Result := 0; +end; + +procedure TfsMethodHelper.SetValue(const Value: Variant); +var + v: Variant; + i: Integer; +begin + if FIndexMethod then + if Assigned(FOnCall) then + begin + v := VarArrayCreate([0, Count], varVariant); + for i := 0 to Count - 1 do + v[i] := inherited Params[i].Value; + v[Count] := Value; + + FOnCall(TObject(frxInteger(ParentValue)), FClassRef, FUppercaseName + '.SET', v); + v := Null; + end + else if Assigned(FOnCallNew) then + begin + FSetValue := Value; + FOnCallNew(TObject(frxInteger(ParentValue)), FClassRef, FUppercaseName + '.SET', Self); + FSetValue := Null; + end; +end; + + +{ TfsComponentHelper } + +constructor TfsComponentHelper.Create(const Name: String; const ClassName: String); +begin + inherited Create(Name, fvtClass, ClassName); +end; + +function TfsComponentHelper.GetValue: Variant; +var + c: TObject; +begin + c := TObject(frxInteger(ParentValue)); + if c is TComponent then + c := TComponent(c).FindComponent(Name) + else + c := nil; + if Assigned(c) then + Result := frxInteger(c) + else + raise Exception.Create(Format(SComponentError, [Name])); +end; + +procedure TfsComponentHelper.SetValue(const Value: Variant); +begin + raise Exception.Create(Format(SComponentAssignError, [Name])); +end; + +{ TfsEventHelper } + +constructor TfsEventHelper.Create(const Name: String; AEvent: TfsEventClass); +begin + inherited Create(Name, fvtString, ''); + FEvent := AEvent; +end; + +function TfsEventHelper.GetValue: Variant; +begin + Result := ''; +end; + +procedure TfsEventHelper.SetValue(const Value: Variant); +var + Instance: TPersistent; + v: TfsCustomVariable; + e: TfsCustomEvent; + p: PPropInfo; + m: TMethod; +begin + + Instance := TPersistent(frxInteger(ParentValue)); + if VarToStr(Value) = '0' then + begin + m.Code := nil; + m.Data := nil; + end + else + begin + v := FProgram.Find(Value); + if (v = nil) or not (v is TfsProcVariable) then + raise Exception.Create(SEventError); + + e := TfsCustomEvent(FEvent.NewInstance); + e.Create(Instance, TfsProcVariable(v)); + FProgram.Add('', e); + m.Code := e.GetMethod; + m.Data := e; + end; + + p := GetPropInfo(Instance.ClassInfo, Name); + SetMethodProp(Instance, p, m); +end; + + +{ TfsClassVariable } + +constructor TfsClassVariable.Create(AClass: TClass; const Ancestor: String); +begin + inherited Create(AClass.ClassName, fvtClass, AClass.ClassName); + FMembers := TfsItemList.Create; + FAncestor := Ancestor; + FClassRef := AClass; + + AddPublishedProperties(AClass); + Add(TfsParamItem.Create('', fvtVariant, '', True, False)); +end; + +destructor TfsClassVariable.Destroy; +begin + FMembers.Free; + inherited; +end; + +function TfsClassVariable.GetMembers(Index: Integer): TfsCustomHelper; +begin + Result := FMembers.FItems[Index]; +end; + +function TfsClassVariable.GetMembersCount: Integer; +begin + Result := FMembers.Count; +end; + +procedure TfsClassVariable.AddConstructor(Syntax: String; CallEvent: TfsCallMethodEvent); +var + i: Integer; +begin + i := Pos(' ', Syntax); + Delete(Syntax, 1, i - 1); + Syntax := 'function' + Syntax + ': ' + 'Constructor'; + AddMethod(Syntax, CallEvent); +end; + +procedure TfsClassVariable.AddConstructor(Syntax: String; + CallEvent: TfsCallMethodNewEvent); +var + i: Integer; +begin + i := Pos(' ', Syntax); + Delete(Syntax, 1, i - 1); + Syntax := 'function' + Syntax + ': ' + 'Constructor'; + AddMethod(Syntax, CallEvent); +end; + +procedure TfsClassVariable.AddMethod(const Syntax: String; CallEvent: TfsCallMethodEvent); +var + m: TfsMethodHelper; +begin + m := TfsMethodHelper.Create(Syntax, FProgram); + m.FOnCall := CallEvent; + m.FClassRef := FClassRef; + FMembers.Add(m); +end; + +procedure TfsClassVariable.AddMethod(const Syntax: String; CallEvent: TfsCallMethodNewEvent); +var + m: TfsMethodHelper; +begin + m := TfsMethodHelper.Create(Syntax, FProgram); + m.FOnCallNew := CallEvent; + m.FClassRef := FClassRef; + FMembers.Add(m); +end; + +procedure TfsClassVariable.AddEvent(const Name: String; AEvent: TfsEventClass); +var + e: TfsEventHelper; +begin + e := TfsEventHelper.Create(Name, AEvent); + e.FClassRef := FClassRef; + FMembers.Add(e); +end; + +procedure TfsClassVariable.AddProperty(const Name, Typ: String; + GetEvent: TfsGetValueEvent; SetEvent: TfsSetValueEvent); +var + p: TfsPropertyHelper; +begin + p := TfsPropertyHelper.Create(Name, StrToVarType(Typ, FProgram), Typ); + p.FClassRef := FClassRef; + p.FOnGetValue := GetEvent; + p.FOnSetValue := SetEvent; + p.IsReadOnly := not Assigned(SetEvent); + FMembers.Add(p); +end; + +procedure TfsClassVariable.AddPropertyEx(const Name, Typ: String; + GetEvent: TfsGetValueNewEvent; SetEvent: TfsSetValueNewEvent); +var + p: TfsPropertyHelper; +begin + p := TfsPropertyHelper.Create(Name, StrToVarType(Typ, FProgram), Typ); + p.FClassRef := FClassRef; + p.FOnGetValueNew := GetEvent; + p.FOnSetValueNew := SetEvent; + p.IsReadOnly := not Assigned(SetEvent); + FMembers.Add(p); +end; + +procedure TfsClassVariable.AddDefaultProperty(const Name, Params, Typ: String; + CallEvent: TfsCallMethodEvent; AReadOnly: Boolean = False); +begin + AddIndexProperty(Name, Params, Typ, CallEvent, AReadOnly); + FDefProperty := Members[FMembers.Count - 1]; +end; + +procedure TfsClassVariable.AddDefaultProperty(const Name, Params, + Typ: String; CallEvent: TfsCallMethodNewEvent; AReadOnly: Boolean); +begin + AddIndexProperty(Name, Params, Typ, CallEvent, AReadOnly); + FDefProperty := Members[FMembers.Count - 1]; +end; + +procedure TfsClassVariable.AddIndexProperty(const Name, Params, + Typ: String; CallEvent: TfsCallMethodEvent; AReadOnly: Boolean = False); +var + i: Integer; + sl: TStringList; + s: String; +begin + sl := TStringList.Create; + sl.CommaText := Params; + + s := ''; + for i := 0 to sl.Count - 1 do + s := s + 'p' + IntToStr(i) + ': ' + sl[i] + '; '; + + SetLength(s, Length(s) - 2); + try + AddMethod('function ' + Name + '(' + s + '): ' + Typ, CallEvent); + with TfsMethodHelper(Members[FMembers.Count - 1]) do + begin + IsReadOnly := AReadOnly; + FIndexMethod := True; + end; + finally + sl.Free; + end; +end; + +procedure TfsClassVariable.AddIndexProperty(const Name, Params, + Typ: String; CallEvent: TfsCallMethodNewEvent; AReadOnly: Boolean); +var + i: Integer; + sl: TStringList; + s: String; +begin + sl := TStringList.Create; + sl.CommaText := Params; + + s := ''; + for i := 0 to sl.Count - 1 do + s := s + 'p' + IntToStr(i) + ': ' + sl[i] + '; '; + + SetLength(s, Length(s) - 2); + try + AddMethod('function ' + Name + '(' + s + '): ' + Typ, CallEvent); + with TfsMethodHelper(Members[FMembers.Count - 1]) do + begin + IsReadOnly := AReadOnly; + FIndexMethod := True; + end; + finally + sl.Free; + end; +end; + +function TfsClassVariable.AddComponent(c: TComponent): TfsComponentHelper; +var + Helper: TfsCustomHelper; +begin + { check if member alreeady exist } + Helper := Find(c.Name); + Result := nil; + { member has different purpose, name conflict } + if Helper is TfsComponentHelper then + Result := TfsComponentHelper(Helper); + if Assigned(Helper) then Exit; + Result := TfsComponentHelper.Create(c.Name, c.ClassName); + FMembers.Add(Result); +end; + +procedure TfsClassVariable.AddPublishedProperties(AClass: TClass); +var + TypeInfo: PTypeInfo; + PropCount: Integer; + PropList: PPropList; + i: Integer; + cl: String; + t: TfsVarType; + FClass: TClass; + p: TfsPropertyHelper; +begin + TypeInfo := AClass.ClassInfo; + if TypeInfo = nil then Exit; + + PropCount := GetPropList(TypeInfo, tkProperties, nil); + GetMem(PropList, PropCount * SizeOf(PPropInfo)); + GetPropList(TypeInfo, tkProperties, PropList); + + try + for i := 0 to PropCount - 1 do + begin + t := fvtInt; + cl := ''; + + case PropList[i].PropType^.Kind of + tkInteger: + t := fvtInt; +{$IFDEF FS_INT64} + tkInt64: + t := fvtInt64; +{$ENDIF} + tkSet: + begin + t := fvtEnum; + cl := String(PropList[i].PropType^.Name); + end; + tkEnumeration: + begin + t := fvtEnum; + cl := String(PropList[i].PropType^.Name); + if (CompareText(cl, 'Boolean') = 0) or (CompareText(cl, 'bool') = 0) then + t := fvtBool; + end; +{$ifdef FPC} + tkBool: + t := fvtBool; +{$ENDIF} + tkFloat: + t := fvtFloat; + tkChar, tkWChar: + t := fvtChar; + tkString, tkLString, tkWString{$IFDEF Delphi12}, tkUString{$ENDIF}{$ifdef FPC},tkAString{$endif}: + t := fvtString; + tkVariant: + t := fvtVariant; + tkClass: + begin + t := fvtClass; + {$IFNDEF FPC} + FClass := GetTypeData(PropList[i].PropType^).ClassType; + {$ELSE} + FClass := GetTypeData(PropList[i].PropType).ClassType; + {$ENDIF} + cl := FClass.ClassName; + end; + end; + + p := TfsPropertyHelper.Create(String(PropList[i].Name), t, cl); + p.FClassRef := FClassRef; + p.FIsPublished := True; + FMembers.Add(p); + end; + + finally + FreeMem(PropList, PropCount * SizeOf(PPropInfo)); + end; +end; + +function TfsClassVariable.Find(const Name: String; IncludeComponentHelper: Boolean = True): TfsCustomHelper; +var + cl: TfsClassVariable; + + function DoFind(const Name: String): TfsCustomHelper; + var + i: Integer; + begin + Result := nil; + for i := 0 to FMembers.Count - 1 do + if CompareText(Name, Members[i].Name) = 0 then + begin + Result := Members[i]; + Exit; + end; + end; + +begin + Result := DoFind(Name); + if Result = nil then + begin + cl := FProgram.FindClass(FAncestor); + if cl <> nil then + Result := cl.Find(Name); + end; + if not IncludeComponentHelper and (Result is TfsComponentHelper) then + Result := nil; +end; + +function TfsClassVariable.GetValue: Variant; +begin + if Params[0].Value = Null then + Result := frxInteger(FClassRef.NewInstance) else { constructor call } + Result := Params[0].Value; { typecast } + Params[0].Value := Null; +end; + + +{ TfsDesignatorItem } + +function TfsDesignatorItem.GetItem(Index: Integer): TfsCustomExpression; +begin + Result := FItems[Index]; +end; + + +{ TfsDesignator } + +constructor TfsDesignator.Create(AProgram: TfsScript); +var + ParentProg: TfsScript; +begin +{$IFDEF CPUX64} + inherited Create('', fvtInt64, ''); +{$ELSE} + inherited Create('', fvtInt, ''); +{$ENDIF} + FProgram := AProgram; + FMainProg := FProgram; + ParentProg := FProgram; + while ParentProg <> nil do + if ParentProg.FMainProg then + begin + FMainProg := ParentProg; + break; + end + else + ParentProg := ParentProg.FParent; + FProgram.UseClassLateBinding := FMainProg.UseClassLateBinding; +end; + +destructor TfsDesignator.Destroy; +begin + if FLateBindingXMLSource <> nil then + FLateBindingXMLSource.Free; + inherited; +end; + +procedure TfsDesignator.Borrow(ADesignator: TfsDesignator); +var + SaveItems: TList; +begin + SaveItems := FItems; + FItems := ADesignator.FItems; + ADesignator.FItems := SaveItems; + FKind := ADesignator.FKind; + FRef1 := ADesignator.FRef1; + FRef2 := ADesignator.FRef2; + FTyp := ADesignator.Typ; + FTypeName := ADesignator.TypeName; + FIsReadOnly := ADesignator.IsReadOnly; + RefItem := ADesignator.RefItem; +end; + +procedure TfsDesignator.Finalize; +var + Item: TfsDesignatorItem; +begin + Item := Items[Count - 1]; + FTyp := Item.Ref.Typ; + FTypeName := Item.Ref.TypeName; + if FTyp = fvtConstructor then + begin + FTyp := fvtClass; + FTypeName := Items[Count - 2].Ref.TypeName; + end; + + FIsReadOnly := Item.Ref.IsReadOnly; + + { speed optimization for access to single variable, string element or array } + if (Count = 1) and (Items[0].Ref is TfsVariable) then + begin + RefItem := Items[0].Ref; + FKind := dkVariable; + end + else if (Count = 2) and (Items[0].Ref is TfsStringVariable) then + begin + RefItem := Items[0].Ref; + FRef1 := Items[1][0]; + FKind := dkStringArray; + end + else if (Count = 2) and (Items[0].Ref is TfsVariable) and (Items[0].Ref.Typ = fvtArray) then + begin + RefItem := Items[0].Ref; + FRef1 := RefItem.RefItem; + FRef2 := Items[1]; + FKind := dkArray; + end + else + FKind := dkOther; +end; + +function TfsDesignator.GetItem(Index: Integer): TfsDesignatorItem; +begin + Result := FItems[Index]; +end; + +function TfsDesignator.DoCalc(const AValue: Variant; Flag: Boolean): Variant; +var + i, j: Integer; + Item: TfsCustomVariable; + Val: Variant; + Ref: TfsCustomVariable; + Temp1: array of Variant; + StackIndex: Integer; +begin + Ref := nil; + Val := Null; + StackIndex := -1; + for i := 0 to Count - 1 do + begin + Item := Items[i].Ref; + + if Item is TfsDesignator then { it is true for "WITH" statements } + begin + Ref := Item; + Val := Item.Value; + continue; + end; + + try + { we're trying to call the local procedure that is already executing - + i.e. we have a recursion } + if (Item is TfsProcVariable) and TfsProcVariable(Item).Executing then + StackIndex := TfsProcVariable(Item).SaveLocalVariables; + + if Item.Count > 0 then + begin + SetLength(Temp1, Item.Count); + try + { calculate params and copy param values to the temp1 array } + for j := 0 to Item.Count - 1 do + if Item.IsMacro then + Temp1[j] := TfsExpression(Items[i][j]).Source + else + Temp1[j] := Items[i][j].Value; + { copy calculated values to the item params } + for j := 0 to Item.Count - 1 do + Item.Params[j].Value := Temp1[j]; + finally + Temp1 := nil; + end; + end; + + { copy value and var reference to the helper object } + if Item is TfsCustomHelper then + begin + TfsCustomHelper(Item).ParentRef := Ref; + TfsCustomHelper(Item).ParentValue := Val; + TfsCustomHelper(Item).Prog := FProgram; + end; + + Ref := Item; + { assign a value to the last designator node if called from SetValue } + if Flag and (i = Count - 1) then + begin + Item.Value := AValue + end + else + begin + Item.NeedResult := (i <> Count - 1) or NeedResult; + Val := Item.Value; + end; + + { copy back var params } + for j := 0 to Item.Count - 1 do + if Item.Params[j].IsVarParam then + Items[i][j].Value := Item.Params[j].Value; + + finally + { restore proc variables if it was called from itself } + if (Item is TfsProcVariable) and TfsProcVariable(Item).Executing then + TfsProcVariable(Item).RestoreLocalVariables(StackIndex, False, Items[i]); + end; + end; + + Result := Val; +end; + +procedure TfsDesignator.CheckLateBinding; +var + NewDesignator: TfsDesignator; + Parser: TfsILParser; +begin + if FLateBindingXMLSource <> nil then + begin + Parser := TfsILParser.Create(FProgram); + try + NewDesignator := Parser.DoDesignator(FLateBindingXMLSource, FProgram); + Borrow(NewDesignator); + NewDesignator.Free; + finally + Parser.Free; + FLateBindingXMLSource.Free; + FLateBindingXMLSource := nil; + end; + end; +end; + +function TfsDesignator.GetValue: Variant; +begin + CheckLateBinding; + Result := DoCalc(Null, False); +end; + +procedure TfsDesignator.SetValue(const Value: Variant); +begin + CheckLateBinding; + DoCalc(Value, True); +end; + + +{ TfsVariableDesignator } + +function TfsVariableDesignator.GetValue: Variant; +begin + Result := RefItem.Value; +end; + +procedure TfsVariableDesignator.SetValue(const Value: Variant); +begin + RefItem.Value := Value; +end; + + +{ TfsStringDesignator } + +function TfsStringDesignator.GetValue: Variant; +begin + Result := TfsStringVariable(RefItem).FStr[Integer(FRef1.Value)]; +end; + +procedure TfsStringDesignator.SetValue(const Value: Variant); +begin + TfsStringVariable(RefItem).FStr[Integer(FRef1.Value)] := VarToStr(Value)[1]; +end; + + +{ TfsArrayDesignator } + +function TfsArrayDesignator.GetValue: Variant; +var + i: Integer; +begin + TfsCustomHelper(FRef1).ParentRef := RefItem; + for i := 0 to FRef2.Count - 1 do + FRef1.Params[i].Value := FRef2[i].Value; + Result := FRef1.Value; +end; + +procedure TfsArrayDesignator.SetValue(const Value: Variant); +var + i: Integer; +begin + TfsCustomHelper(FRef1).ParentRef := RefItem; + for i := 0 to FRef2.Count - 1 do + FRef1.Params[i].Value := FRef2[i].Value; + FRef1.Value := Value; +end; + + +{ TfsSetExpression } + +function TfsSetExpression.Check(const Value: Variant): Boolean; +var + i: Integer; + Expr: TfsCustomExpression; +begin + Result := False; + + (* TfsSetExpression encapsulates the set like [1,2,3..10] + In the example above we'll have the following Items: + TfsExpression {1} + TfsExpression {2} + TfsExpression {3} + nil (indicates the range ) + TfsExpression {10} *) + + i := 0; + while i < Count do + begin + Expr := Items[i]; + + if (i < Count - 1) and (Items[i + 1] = nil) then { subrange } + begin + Result := (Value >= Expr.Value) and (Value <= Items[i + 2].Value); + Inc(i, 2); + end + else + Result := Value = Expr.Value; + + if Result then break; + Inc(i); + end; +end; + +function TfsSetExpression.GetItem(Index: Integer): TfsCustomExpression; +begin + Result := FItems[Index]; +end; + +function TfsSetExpression.GetValue: Variant; +var + i: Integer; +begin + Result := VarArrayCreate([0, Count - 1], varVariant); + + for i := 0 to Count - 1 do + if Items[i] = nil then + Result[i] := Null else + Result[i] := Items[i].Value; +end; + + +{ TfsScript } + +constructor TfsScript.Create(AOwner: TComponent); +begin + inherited; + FEvaluteRiseError := False; + FItems := TStringList.Create; + FItems.Sorted := True; + FItems.Duplicates := dupAccept; + FLines := TStringList.Create; + FMacros := TStringList.Create; + FIncludePath := TStringList.Create; + FIncludePath.Add(''); + FStatement := TfsStatement.Create(Self, '', ''); + FSyntaxType := 'PascalScript'; + FUnitLines := TStringList.Create; + FUseClassLateBinding := False; +end; + +destructor TfsScript.Destroy; +begin + inherited; + Clear; + ClearRTTI; + FItems.Free; + FLines.Free; + FMacros.Free; + FIncludePath.Free; + FStatement.Free; + FUnitLines.Free; +end; + +procedure TfsScript.Add(const Name: String; Item: TObject); +begin + FItems.AddObject(Name, Item); + if Item is TfsCustomVariable then + TfsCustomVariable(Item).AddedBy := FAddedBy; +end; + +function TfsScript.Count: Integer; +begin + Result := FItems.Count; +end; + +procedure TfsScript.Remove(Item: TObject); +begin + FItems.Delete(FItems.IndexOfObject(Item)); +end; + +procedure TfsScript.Clear; +var + i: Integer; + item: TObject; +begin + i := 0; + while i < FItems.Count do + begin + item := FItems.Objects[i]; + if (item is TfsRTTIModule) or + ((item is TfsCustomVariable) and + (TfsCustomVariable(item).AddedBy = TObject(1))) then + Inc(i) + else + begin + item.Free; + FItems.Delete(i); + end; + end; + FStatement.Clear; + + + for i := 0 to FUnitLines.Count - 1 do + FUnitLines.Objects[i].Free; + + FUnitLines.Clear; + + FErrorPos := ''; + FErrorMsg := ''; + FErrorUnit := ''; +end; + +procedure TfsScript.ClearItems(Owner: TObject); +var + i: Integer; +begin + RemoveItems(Owner); + FStatement.Clear; + + for i := 0 to FUnitLines.Count - 1 do + FUnitLines.Objects[i].Free; + + FUnitLines.Clear; +end; + +procedure TfsScript.RemoveItems(Owner: TObject); +var + i: Integer; +begin + for i := Count - 1 downto 0 do + if FItems.Objects[i] is TfsCustomVariable then + if Items[i].AddedBy = Owner then + begin + Items[i].Free; + Remove(Items[i]); + end; +end; + +function TfsScript.GetItem(Index: Integer): TfsCustomVariable; +begin + Result := TfsCustomVariable(FItems.Objects[Index]); +end; + +function TfsScript.GetProgName: String; +begin + if Assigned(ProgRunning) then + Result := ProgRunning.ProgName + else + Result := FProgName; +end; + +function TfsScript.Find(const Name: String): TfsCustomVariable; +begin + Result := FindLocal(Name); + + { trying to find the identifier in all parent programs } + if (Result = nil) and (FParent <> nil) then + Result := FParent.Find(Name); +end; + +function TfsScript.FindLocal(const Name: String): TfsCustomVariable; +var + i: Integer; +begin + Result := nil; + i := FItems.IndexOf(Name); + if (i <> -1) and (FItems.Objects[i] is TfsCustomVariable) then + Result := TfsCustomVariable(FItems.Objects[i]); +end; + +function TfsScript.Compile: Boolean; +var + p: TfsILParser; +begin + Result := False; + FErrorMsg := ''; + + p := TfsILParser.Create(Self); + try + p.SelectLanguage(FSyntaxType); + if p.MakeILScript(FLines.Text) then + p.ParseILScript; + finally + p.Free; + end; + + if FErrorMsg = '' then + begin + Result := True; + FErrorPos := ''; + end +end; + +procedure TfsScript.Execute; +begin + + FExitCalled := False; + FTerminated := False; + FIsRunning := True; + FMainProg := True; + try + FStatement.Execute; + finally + FExitCalled := False; + FTerminated := False; + FIsRunning := False; + end; +end; + +function TfsScript.Run: Boolean; +begin + Result := Compile; + if Result then + Execute; +end; + +function TfsScript.GetILCode(Stream: TStream): Boolean; +var + p: TfsILParser; +begin + Result := False; + FErrorMsg := ''; + + p := TfsILParser.Create(Self); + try + p.SelectLanguage(FSyntaxType); + if p.MakeILScript(FLines.Text) then + p.ILScript.SaveToStream(Stream); + finally + p.Free; + end; + + if FErrorMsg = '' then + begin + Result := True; + FErrorPos := ''; + end; +end; + +function TfsScript.SetILCode(Stream: TStream): Boolean; +var + p: TfsILParser; +begin + Result := False; + FErrorMsg := ''; + + p := TfsILParser.Create(Self); + try + p.SelectLanguage(FSyntaxType); + p.ILScript.LoadFromStream(Stream); + p.ParseILScript; + finally + p.Free; + end; + + if FErrorMsg = '' then + begin + Result := True; + FErrorPos := ''; + end; +end; + +procedure TfsScript.AddType(const TypeName: String; ParentType: TfsVarType); +var + v: TfsTypeVariable; +begin + if Find(TypeName) <> nil then Exit; + v := TfsTypeVariable.Create(TypeName, ParentType, ''); + Add(TypeName, v); +end; + +function TfsScript.AddClass(AClass: TClass; const Ancestor: String): TfsClassVariable; +var + cl: TfsClassVariable; +begin + Result := nil; + if Find(AClass.ClassName) <> nil then Exit; + + Result := TfsClassVariable.Create(AClass, Ancestor); + Result.FProgram := Self; + Add(Result.Name, Result); + + cl := TfsClassVariable(Find(Ancestor)); + if cl <> nil then + Result.FDefProperty := cl.DefProperty; +end; + +procedure TfsScript.AddConst(const Name, Typ: String; const Value: Variant); +var + v: TfsVariable; +begin + if Find(Name) <> nil then Exit; + + v := TfsVariable.Create(Name, StrToVarType(Typ, Self), Typ); + v.Value := Value; + v.IsReadOnly := True; + Add(v.Name, v); +end; + +procedure TfsScript.AddEnum(const Typ, Names: String); +var + i: Integer; + v: TfsVariable; + sl: TStringList; +begin + v := TfsVariable.Create(Typ, fvtEnum, Typ); + Add(v.Name, v); + + sl := TStringList.Create; + sl.CommaText := Names; + + try + for i := 0 to sl.Count - 1 do + begin + v := TfsVariable.Create(Trim(sl[i]), fvtEnum, Typ); + v.Value := i; + v.IsReadOnly := True; + Add(v.Name, v); + end; + finally + sl.Free; + end; +end; + +procedure TfsScript.AddEnumSet(const Typ, Names: String); +var + i, j: Integer; + v: TfsVariable; + sl: TStringList; +begin + v := TfsVariable.Create(Typ, fvtEnum, Typ); + Add(v.Name, v); + + sl := TStringList.Create; + sl.CommaText := Names; + + try + j := 1; + for i := 0 to sl.Count - 1 do + begin + v := TfsVariable.Create(Trim(sl[i]), fvtEnum, Typ); + v.Value := j; + v.IsReadOnly := True; + Add(v.Name, v); + j := j * 2; + end; + finally + sl.Free; + end; +end; + +procedure TfsScript.AddMethod(const Syntax: String; CallEvent: TfsCallMethodEvent; + const Category: String = ''; const Description: String = ''); +var + v: TfsMethodHelper; +begin + v := TfsMethodHelper.Create(Syntax, Self); + v.FOnCall := CallEvent; + if Description = '' then + v.FDescription := v.Name else + v.FDescription := Description; + v.FCategory := Category; + Add(v.Name, v); +end; + +procedure TfsScript.AddMethod(const Syntax: String; CallEvent: TfsCallMethodNewEvent; + const Category: String = ''; const Description: String = ''); +var + v: TfsMethodHelper; +begin + v := TfsMethodHelper.Create(Syntax, Self); + v.FOnCallNew := CallEvent; + if Description = '' then + v.FDescription := v.Name else + v.FDescription := Description; + v.FCategory := Category; + Add(v.Name, v); +end; + +procedure TfsScript.AddObject(const Name: String; Obj: TObject); +begin + AddVariable(Name, Obj.ClassName, frxInteger(Obj)); +end; + +procedure TfsScript.AddVariable(const Name, Typ: String; const Value: Variant); +var + v: TfsVariable; +begin + if Find(Name) <> nil then Exit; + + v := TfsVariable.Create(Name, StrToVarType(Typ, Self), Typ); + v.Value := Value; + v.OnGetVarValue := FOnGetVarValue; + Add(v.Name, v); +end; + +procedure TfsScript.AddForm(Form: TComponent); +begin + AddComponent(Form); +end; + +procedure TfsScript.AddComponent(Form: TComponent); +{$IFNDEF NOFORMS} +var + i: Integer; + v: TfsClassVariable; +{$ENDIF} +begin +{$IFNDEF NOFORMS} + v := FindClass(Form.ClassName); + if v = nil then + begin + if Form.InheritsFrom(TForm) then + AddClass(Form.ClassType, 'TForm') + else if Form.InheritsFrom(TDataModule) then + AddClass(Form.ClassType, 'TDataModule') +{$IFNDEF FMX} +{$IFDEF Delphi5} + else if Form.InheritsFrom(TFrame) then + AddClass(Form.ClassType, 'TFrame') +{$ENDIF} +{$ENDIF} + else + Exit; + v := FindClass(Form.ClassName); + end; + + for i := 0 to Form.ComponentCount - 1 do + v.AddComponent(Form.Components[i]); + AddObject(Form.Name, Form); +{$ENDIF} +end; + +procedure TfsScript.AddRTTI; +var + i: Integer; + rtti: TfsRTTIModule; + obj: TClass; +begin + if FRTTIAdded then Exit; + + AddedBy := TObject(1); // do not clear + for i := 0 to FRTTIModules.Count - 1 do + begin + obj := TClass(FRTTIModules[i]); + rtti := TfsRTTIModule(obj.NewInstance); + rtti.Create(Self); + Add('', rtti); + end; + AddedBy := nil; + + FRTTIAdded := True; +end; + +procedure TfsScript.ClearRTTI; +var + i: Integer; + item: TObject; +begin + if not FRTTIAdded then Exit; + + i := 0; + while i < FItems.Count do + begin + item := FItems.Objects[i]; + if (item is TfsRTTIModule) or + ((item is TfsCustomVariable) and + (TfsCustomVariable(item).AddedBy = TObject(1))) then + begin + item.Free; + FItems.Delete(i); + end + else + Inc(i); + end; + + FRTTIAdded := False; +end; + +function TfsScript.CallFunction(const Name: String; const Params: Variant; sGlobal: Boolean): Variant; +var + i, StackIndex: Integer; + v: TfsCustomVariable; + p: TfsProcVariable; +begin + if sGlobal then + v := Find(Name) + else + v := FindLocal(Name); + if (v <> nil) and (v is TfsProcVariable) then + begin + p := TfsProcVariable(v); + + StackIndex := -1; + if p.Executing then + StackIndex := p.SaveLocalVariables; + try + if VarIsArray(Params) then + for i := 0 to VarArrayHighBound(Params, 1) do + p.Params[i].Value := Params[i]; + Result := p.Value; + finally + p.RestoreLocalVariables(StackIndex, True); + end; + end + else + begin + Result := Null; + end +end; + +function TfsScript.CallFunction1(const Name: String; var Params: Variant; sGlobal: Boolean): Variant; +var + i, StackIndex: Integer; + v: TfsCustomVariable; + p: TfsProcVariable; +begin + if sGlobal then + v := Find(Name) + else + v := FindLocal(Name); + if (v <> nil) and (v is TfsProcVariable) then + begin + p := TfsProcVariable(v); + + StackIndex := -1; + if p.Executing then + StackIndex := p.SaveLocalVariables; + try + if VarIsArray(Params) then + for i := 0 to VarArrayHighBound(Params, 1) do + p.Params[i].Value := Params[i]; + Result := p.Value; + if VarIsArray(Params) then + for i := 0 to VarArrayHighBound(Params, 1) do + Params[i] := p.Params[i].Value; + finally + p.RestoreLocalVariables(StackIndex, True); + end; + end + else + Result := Null; +end; + +function TfsScript.CallFunction2(const Func: TfsProcVariable; const Params: Variant): Variant; +var + i, StackIndex: Integer; +begin + if (Func <> nil) then + begin + StackIndex := -1; + if Func.Executing then + StackIndex := Func.SaveLocalVariables; + try + if VarIsArray(Params) then + for i := 0 to VarArrayHighBound(Params, 1) do + Func.Params[i].Value := Params[i]; + Result := Func.Value; + finally + Func.RestoreLocalVariables(StackIndex, True); + end; + end + else + begin + Result := Null; + end +end; + +function TfsScript.Evaluate(const Expression: String): Variant; +var + p: TfsScript; + Prog: TfsScript; + SaveEvent: TfsRunLineEvent; +begin + FEvaluteRiseError := False; + Result := Null; + if FProgRunning = nil then + p := Self else + p := FProgRunning; + + Prog := TfsScript.Create(nil); + if not p.FRTTIAdded then + Prog.AddRTTI; + Prog.Parent := p; + Prog.OnGetVarValue := p.OnGetVarValue; + SaveEvent := FOnRunLine; + FOnRunLine := nil; + try + prog.SyntaxType := SyntaxType; + if CompareText(SyntaxType, 'PascalScript') = 0 then + Prog.Lines.Text := 'function fsEvaluateFUNC: Variant; begin Result := ' + Expression + ' end; begin end.' + else if CompareText(SyntaxType, 'C++Script') = 0 then + Prog.Lines.Text := 'Variant fsEvaluateFUNC() { return ' + Expression + '; } {}' + else if CompareText(SyntaxType, 'BasicScript') = 0 then + Prog.Lines.Text := 'function fsEvaluateFUNC' + #13#10 + 'return ' + Expression + #13#10 + 'end function' + else if CompareText(SyntaxType, 'JScript') = 0 then + Prog.Lines.Text := 'function fsEvaluateFUNC() { return (' + Expression + '); }'; + if not Prog.Compile then + begin + Result := Prog.ErrorMsg; + FEvaluteRiseError := True; + end + else + Result := Prog.FindLocal('fsEvaluateFUNC').Value; + finally + Prog.Free; + FOnRunLine := SaveEvent; + end; +end; + +function TfsScript.FindClass(const Name: String): TfsClassVariable; +var + Item: TfsCustomVariable; +begin + Item := Find(Name); + if (Item <> nil) and (Item is TfsClassVariable) then + Result := TfsClassVariable(Item) else + Result := nil +end; + +procedure TfsScript.RunLine(const UnitName, Index: String); +var + p: TfsScript; +begin + p := Self; + while p <> nil do + if Assigned(p.FOnRunLine) then + begin + p.FOnRunLine(Self, UnitName, Index); + break; + end + else + p := p.FParent; +end; + +function TfsScript.GetVariables(Index: String): Variant; +var + v: TfsCustomVariable; +begin + v := Find(Index); + if v <> nil then + Result := v.Value else + Result := Null; +end; + +procedure TfsScript.SetVariables(Index: String; const Value: Variant); +var + v: TfsCustomVariable; +begin + v := Find(Index); + if v <> nil then + v.Value := Value else + AddVariable(Index, 'Variant', Value); +end; + +procedure TfsScript.SetLines(const Value: TStrings); +begin + FLines.Assign(Value); +end; + +procedure TfsScript.SetProgName(const Value: String); +begin + if Assigned(FProgRunning) then + FProgRunning.FProgName := Value + else + FProgName := Value; +end; + +procedure TfsScript.Terminate; + + procedure TerminateAll(Script: TfsScript); + var + i: Integer; + begin + Script.FExitCalled := True; + Script.FTerminated := True; + for i := 0 to Script.Count - 1 do + if Script.Items[i] is TfsProcVariable then + TerminateAll(TfsProcVariable(Script.Items[i]).Prog); + end; + +begin + TerminateAll(Self); +end; + +procedure TfsScript.AddCodeLine(const UnitName, APos: String); +var + sl: TStringList; + LineN: String; + i : Integer; +begin + i := FUnitLines.IndexOf(UnitName); + + if (i = -1) then + begin + sl := TStringList.Create; + sl.Sorted := True; + FUnitLines.AddObject(UnitName, sl); + end else + begin + sl := TStringList(FUnitLines.Objects[i]); + end; + + LineN := Copy(APos, 1, Pos(':', APos) - 1); + if sl.IndexOf(LineN) = -1 then + begin + sl.Add(LineN); + end; +end; + +function TfsScript.IsExecutableLine(LineN: Integer; const UnitName: String = ''): Boolean; +var + sl: TStringList; + i: Integer; +begin + Result := False; + + i := FUnitLines.IndexOf(UnitName); + if (i = -1) then Exit; + + sl := TStringList(FUnitLines.Objects[i]); + if sl.IndexOf(IntToStr(LineN)) <> -1 then + Result := True; +end; + + + + +{ TfsStatement } + +constructor TfsStatement.Create(AProgram: TfsScript; const UnitName, + SourcePos: String); +begin + inherited Create; + FProgram := AProgram; + FSourcePos := SourcePos; + FUnitName := UnitName; +end; + +function TfsStatement.GetItem(Index: Integer): TfsStatement; +begin + Result := FItems[Index]; +end; + +procedure TfsStatement.Execute; +var + i: Integer; +begin + FProgram.ErrorPos := ''; + for i := 0 to Count - 1 do + begin + if FProgram.FTerminated then break; + try + FProgram.FLastSourcePos := Items[i].FSourcePos; + Items[i].Execute; + except + on E: Exception do + begin + if FProgram.ErrorPos = '' then + FProgram.ErrorPos := FProgram.FLastSourcePos; + raise; + end; + end; + if FProgram.FBreakCalled or FProgram.FContinueCalled or + FProgram.FExitCalled then break; + end; +end; + +procedure TfsStatement.RunLine; +begin + FProgram.RunLine(FUnitName, FSourcePos); +end; + + +{ TfsAssignmentStmt } + +destructor TfsAssignmentStmt.Destroy; +begin + FDesignator.Free; + FExpression.Free; + inherited; +end; + +procedure TfsAssignmentStmt.Optimize; +begin + FVar := FDesignator; + FExpr := FExpression; + + if FDesignator is TfsVariableDesignator then + FVar := FDesignator.RefItem; + if TfsExpression(FExpression).SingleItem <> nil then + FExpr := TfsExpression(FExpression).SingleItem; +end; + +procedure TfsAssignmentStmt.Execute; +begin + RunLine; + if FProgram.FTerminated then Exit; + FVar.Value := FExpr.Value; +end; + +procedure TfsAssignPlusStmt.Execute; +begin + RunLine; + if FProgram.FTerminated then Exit; + FVar.Value := FVar.Value + FExpr.Value; +end; + +procedure TfsAssignMinusStmt.Execute; +begin + RunLine; + if FProgram.FTerminated then Exit; + FVar.Value := FVar.Value - FExpr.Value; +end; + +procedure TfsAssignMulStmt.Execute; +begin + RunLine; + if FProgram.FTerminated then Exit; + FVar.Value := FVar.Value * FExpr.Value; +end; + +procedure TfsAssignDivStmt.Execute; +begin + RunLine; + if FProgram.FTerminated then Exit; + FVar.Value := FVar.Value / FExpr.Value; +end; + + +{ TfsCallStmt } + +destructor TfsCallStmt.Destroy; +begin + FDesignator.Free; + inherited; +end; + +procedure TfsCallStmt.Execute; +begin + RunLine; + if FProgram.FTerminated then Exit; + if FModificator = '' then + begin + FDesignator.NeedResult := False; + FDesignator.Value; + end + else if FModificator = '+' then + FDesignator.Value := FDesignator.Value + 1 + else if FModificator = '-' then + FDesignator.Value := FDesignator.Value - 1 +end; + + +{ TfsIfStmt } + +constructor TfsIfStmt.Create(AProgram: TfsScript; const UnitName, + SourcePos: String); +begin + inherited; + FElseStmt := TfsStatement.Create(FProgram, UnitName, SourcePos); +end; + +destructor TfsIfStmt.Destroy; +begin + FCondition.Free; + FElseStmt.Free; + inherited; +end; + +procedure TfsIfStmt.Execute; +begin + RunLine; + if FProgram.FTerminated then Exit; + if Boolean(FCondition.Value) = True then + inherited Execute else + FElseStmt.Execute; +end; + + +{ TfsRepeatStmt } + +destructor TfsRepeatStmt.Destroy; +begin + FCondition.Free; + inherited; +end; + +procedure TfsRepeatStmt.Execute; +begin + RunLine; + if FProgram.FTerminated then Exit; + + repeat + inherited Execute; + if FProgram.FBreakCalled or FProgram.FExitCalled then break; + FProgram.FContinueCalled := False; + until Boolean(FCondition.Value) = not FInverseCondition; + + FProgram.FBreakCalled := False; +end; + + +{ TfsWhileStmt } + +destructor TfsWhileStmt.Destroy; +begin + FCondition.Free; + inherited; +end; + +procedure TfsWhileStmt.Execute; +begin + RunLine; + if FProgram.FTerminated then Exit; + + while Boolean(FCondition.Value) = True do + begin + inherited Execute; + if FProgram.FBreakCalled or FProgram.FExitCalled then break; + FProgram.FContinueCalled := False; + end; + + FProgram.FBreakCalled := False; +end; + + +{ TfsForStmt } + +destructor TfsForStmt.Destroy; +begin + FBeginValue.Free; + FEndValue.Free; + inherited; +end; + +procedure TfsForStmt.Execute; +var + i, bValue, eValue: Integer; +begin + try + bValue := FBeginValue.Value; + eValue := FEndValue.Value; + finally + RunLine; + end; + if FProgram.FTerminated then Exit; + + if FDown then + for i := bValue downto eValue do + begin + FVariable.FValue := i; + inherited Execute; + if FProgram.FBreakCalled or FProgram.FExitCalled then break; + FProgram.FContinueCalled := False; + end + else + for i := bValue to eValue do + begin + FVariable.FValue := i; + inherited Execute; + if FProgram.FBreakCalled or FProgram.FExitCalled then break; + FProgram.FContinueCalled := False; + end; + + FProgram.FBreakCalled := False; +end; + + +{ TfsVbForStmt } + +destructor TfsVbForStmt.Destroy; +begin + FBeginValue.Free; + FEndValue.Free; + if FStep <> nil then + FStep.Free; + inherited; +end; + +procedure TfsVbForStmt.Execute; +var + i, bValue, eValue, sValue: Variant; + Down: Boolean; +begin + bValue := FBeginValue.Value; + eValue := FEndValue.Value; + if FStep <> nil then + sValue := FStep.Value else + sValue := 1; + Down := sValue < 0; + + RunLine; + if FProgram.FTerminated then Exit; + i := bValue; + if Down then + while i >= eValue do + begin + FVariable.FValue := i; + inherited Execute; + if FProgram.FBreakCalled or FProgram.FExitCalled then break; + FProgram.FContinueCalled := False; + i := i + sValue; + end + else + while i <= eValue do + begin + FVariable.FValue := i; + inherited Execute; + if FProgram.FBreakCalled or FProgram.FExitCalled then break; + FProgram.FContinueCalled := False; + i := i + sValue; + end; + + FProgram.FBreakCalled := False; +end; + + +{ TfsCppForStmt } + +constructor TfsCppForStmt.Create(AProgram: TfsScript; const UnitName, + SourcePos: String); +begin + inherited; + FFirstStmt := TfsStatement.Create(FProgram, UnitName, SourcePos); + FSecondStmt := TfsStatement.Create(FProgram, UnitName, SourcePos); +end; + +destructor TfsCppForStmt.Destroy; +begin + FFirstStmt.Free; + FExpression.Free; + FSecondStmt.Free; + inherited; +end; + +procedure TfsCppForStmt.Execute; +begin + RunLine; + if FProgram.FTerminated then Exit; + FFirstStmt.Execute; + if FProgram.FTerminated then Exit; + while Boolean(FExpression.Value) = True do + begin + inherited Execute; + if FProgram.FBreakCalled or FProgram.FExitCalled then break; + FProgram.FContinueCalled := False; + FSecondStmt.Execute; + end; + + FProgram.FBreakCalled := False; +end; + + +{ TfsCaseSelector } + +destructor TfsCaseSelector.Destroy; +begin + FSetExpression.Free; + inherited; +end; + +function TfsCaseSelector.Check(const Value: Variant): Boolean; +begin + Result := FSetExpression.Check(Value); +end; + + +{ TfsCaseStmt } + +constructor TfsCaseStmt.Create(AProgram: TfsScript; const UnitName, + SourcePos: String); +begin + inherited; + FElseStmt := TfsStatement.Create(FProgram, UnitName, SourcePos); +end; + +destructor TfsCaseStmt.Destroy; +begin + FCondition.Free; + FElseStmt.Free; + inherited; +end; + +procedure TfsCaseStmt.Execute; +var + i: Integer; + Value: Variant; + Executed: Boolean; +begin + Value := FCondition.Value; + Executed := False; + + RunLine; + if FProgram.FTerminated then Exit; + for i := 0 to Count - 1 do + if TfsCaseSelector(Items[i]).Check(Value) then + begin + Items[i].Execute; + Executed := True; + break; + end; + + if not Executed then + FElseStmt.Execute; +end; + + +{ TfsTryStmt } + +constructor TfsTryStmt.Create(AProgram: TfsScript; const UnitName, + SourcePos: String); +begin + inherited; + FExceptStmt := TfsStatement.Create(AProgram, UnitName, SourcePos); +end; + +destructor TfsTryStmt.Destroy; +begin + FExceptStmt.Free; + inherited; +end; + +procedure TfsTryStmt.Execute; +var + SaveExitCalled: Boolean; +begin + RunLine; + if FProgram.FTerminated then Exit; + if IsExcept then + begin + try + inherited Execute; + except + on E: Exception do + begin + FProgram.SetVariables('ExceptionClassName', E.ClassName); + FProgram.SetVariables('ExceptionMessage', E.Message); + FProgram.ErrorPos := FProgram.FLastSourcePos; + ExceptStmt.Execute; + end; + end; + end + else + begin + try + inherited Execute; + finally + SaveExitCalled := FProgram.FExitCalled; + FProgram.FExitCalled := False; + ExceptStmt.Execute; + FProgram.FExitCalled := SaveExitCalled; + end + end; +end; + +{ TfsBreakStmt } + +procedure TfsBreakStmt.Execute; +begin + FProgram.FBreakCalled := True; +end; + + +{ TfsContinueStmt } + +procedure TfsContinueStmt.Execute; +begin + FProgram.FContinueCalled := True; +end; + + +{ TfsExitStmt } + +procedure TfsExitStmt.Execute; +begin + RunLine; + FProgram.FExitCalled := True; +end; + + +{ TfsWithStmt } + +destructor TfsWithStmt.Destroy; +begin + FDesignator.Free; + inherited; +end; + +procedure TfsWithStmt.Execute; +begin + inherited; + FVariable.Value := FDesignator.Value; +end; + + +{ TfsArrayHelper } + +constructor TfsArrayHelper.Create(const AName: String; DimCount: Integer; + Typ: TfsVarType; const TypeName: String); +var + i: Integer; +begin + inherited Create(AName, Typ, TypeName); + + if DimCount <> -1 then + begin + for i := 0 to DimCount - 1 do +{$IFDEF CPUX64} + Add(TfsParamItem.Create('', fvtInt64, '', False, False)); +{$ELSE} + Add(TfsParamItem.Create('', fvtInt, '', False, False)); +{$ENDIF} + end + else + for i := 0 to 2 do +{$IFDEF CPUX64} + Add(TfsParamItem.Create('', fvtInt64, '', i > 0, False)); +{$ELSE} + Add(TfsParamItem.Create('', fvtInt, '', i > 0, False)); +{$ENDIF} +end; + +destructor TfsArrayHelper.Destroy; +begin + inherited; +end; + +function TfsArrayHelper.GetValue: Variant; +var + DimCount: Integer; +begin + DimCount := VarArrayDimCount(ParentRef.PValue^); + case DimCount of + 1: Result := ParentRef.PValue^[Params[0].Value]; + 2: Result := ParentRef.PValue^[Params[0].Value, Params[1].Value]; + 3: Result := ParentRef.PValue^[Params[0].Value, Params[1].Value, Params[2].Value]; + else + Result := Null; + end; +end; + +procedure TfsArrayHelper.SetValue(const Value: Variant); +var + DimCount: Integer; +begin + DimCount := VarArrayDimCount(ParentRef.PValue^); + case DimCount of + 1: ParentRef.PValue^[Params[0].Value] := Value; + 2: ParentRef.PValue^[Params[0].Value, Params[1].Value] := Value; + 3: ParentRef.PValue^[Params[0].Value, Params[1].Value, Params[2].Value] := Value; + end; +end; + + +{ TfsStringHelper } + +constructor TfsStringHelper.Create; +begin + inherited Create('__StringHelper', fvtChar, ''); + Add(TfsParamItem.Create('', fvtInt, '', False, False)); +end; + +function TfsStringHelper.GetValue: Variant; +begin + Result := String(ParentValue)[Integer(Params[0].Value)]; +end; + +procedure TfsStringHelper.SetValue(const Value: Variant); +var + s: String; +begin + s := ParentValue; + s[Integer(Params[0].Value)] := String(Value)[1]; + TfsCustomVariable(frxInteger(ParentRef)).Value := s; +end; + + +{ TfsCustomEvent } + +constructor TfsCustomEvent.Create(AObject: TObject; AHandler: TfsProcVariable); +begin + FInstance := AObject; + FHandler := AHandler; +end; + +procedure TfsCustomEvent.CallHandler(Params: array of const); +var + i, StackIndex: Integer; +begin + StackIndex := -1; + if FHandler.Executing then + StackIndex := FHandler.SaveLocalVariables; + try + for i := 0 to FHandler.Count - 1 do + FHandler.Params[i].Value := VarRecToVariant(Params[i]); + FHandler.Value; + finally + FHandler.RestoreLocalVariables(StackIndex, True); + end; +end; + + +{ TfsRTTIModule } + +constructor TfsRTTIModule.Create(AScript: TfsScript); +begin + FScript := AScript; +end; + + +function fsGlobalUnit: TfsScript; +begin + if (FGlobalUnit = nil) and not FGlobalUnitDestroyed then + begin + FGlobalUnit := TfsScript.Create(nil); + FGlobalUnit.AddRTTI; + end; + Result := FGlobalUnit; +end; + +function fsIsGlobalUnitExist: Boolean; +begin + Result := Assigned(FGlobalUnit); +end; + +function fsRTTIModules: TList; +begin + if (FRTTIModules = nil) and not FRTTIModulesDestroyed then + begin + FRTTIModules := TList.Create; + FRTTIModules.Add(TfsSysFunctions); + end; + Result := FRTTIModules; +end; + +{ TfsVariable } + +function TfsVariable.GetValue: Variant; +begin + Result := inherited GetValue; + if Assigned(FOnGetVarValue) then + begin + Result := FOnGetVarValue(FName, FTyp, FValue); + if Result = null then Result := FValue; + end; +end; + +procedure TfsVariable.SetValue(const Value: Variant); +begin + if not FIsReadOnly then + case FTyp of + fvtInt: FValue := VarAsType(Value, varInteger); +{$IFDEF FS_INT64} + fvtInt64: FValue := VarAsType(Value, varInt64); +{$ENDIF} + fvtBool: FValue := VarAsType(Value, varBoolean); + fvtFloat: + if (VarType(Value) = varDate) then + FValue := VarAsType(Value, varDate) + else + FValue := VarAsType(Value, varDouble); +{$IFDEF Delphi12} + fvtString: FValue := VarAsType(Value, varUString); +{$ELSE} + fvtString: FValue := VarAsType(Value, varString); +{$ENDIF} + else + FValue := Value; + end; +end; + +initialization +{$IFDEF FMX} + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsScript, TFmxObject); +{$ELSE} +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsScript, TControl); +{$ENDIF} +{$ENDIF} + FGlobalUnitDestroyed := False; + FRTTIModulesDestroyed := False; + fsRTTIModules; + +finalization + if FGlobalUnit <> nil then + FGlobalUnit.Free; + FGlobalUnit := nil; + FGlobalUnitDestroyed := True; + FRTTIModules.Free; + FRTTIModules := nil; + FRTTIModulesDestroyed := True; + +end. \ No newline at end of file diff --git a/FastScript/fs_ijs.pas b/FastScript/fs_ijs.pas new file mode 100644 index 0000000..5c6a50d --- /dev/null +++ b/FastScript/fs_ijs.pas @@ -0,0 +1,168 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ JScript grammar } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +//VCL uses section +{$IFNDEF FMX} +unit fs_ijs; + +interface + +{$i fs.inc} + +uses + SysUtils, Classes, fs_itools{$IFDEF DELPHI16}, Controls{$ENDIF}; +{$ELSE} +interface + +{$i fs.inc} + +uses + System.SysUtils, System.Classes, FMX.fs_itools, FMX.Types; +{$ENDIF} + +type +{$i frxPlatformsAttribute.inc} + TfsJScript = class(TComponent); + + +implementation + +const + JS_GRAMMAR = + '' + + '' + + '<' + + 'loop text=","><' + + 'char text="!" add="op" addtext="not"/>' + + '<' + + 'char text="-" add="op"/><' + + 'expression err="err2"/>' + + '<' + + 'forstmtitem/>'; + + +initialization +{$IFDEF DELPHI16} +{$IFDEF FMX} + StartClassGroup(TFmxObject); + ActivateClassGroup(TFmxObject); + GroupDescendentsWith(TfsJScript, TFmxObject); +{$ELSE} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsJScript, TControl); +{$ENDIF} +{$ENDIF} + fsRegisterLanguage('JScript', JS_GRAMMAR); + +end. diff --git a/FastScript/fs_imenusrtti.pas b/FastScript/fs_imenusrtti.pas new file mode 100644 index 0000000..c82f935 --- /dev/null +++ b/FastScript/fs_imenusrtti.pas @@ -0,0 +1,183 @@ +{**********************************************} +{ } +{ FastScript v1.9 } +{ Menus } +{ } +{ Copyright (c) 1998-2007 } +{ by Fast Reports Inc. } +{ } +{ Copyright (c) 2006 by } +{ Copyright (c) 2006-2007 by Stalker SoftWare } +{ } +{**********************************************} + +unit fs_imenusrtti; + +interface + +{$I fs.inc} + +uses + SysUtils, Classes, Menus, fs_iinterpreter, fs_ievents, ImgList{$IFDEF DELPHI16}, Controls{$ENDIF} +{$IFDEF Delphi6} +, Types , Variants +{$ENDIF}; + +type +{$i frxPlatformsAttribute.inc} + TfsMenusRTTI = class(TComponent); // fake component + +implementation + +type + TFunctions = class(TfsRTTIModule) + private + function CallMethod(Instance: TObject; ClassType: TClass; const MethodName: + string; Caller: TfsMethodHelper): Variant; + function GetProp(Instance: TObject; ClassType: TClass; const PropName: + string): Variant; + procedure SetProp(Instance: TObject; ClassType: TClass; const PropName: + string; Value: Variant); + public + constructor Create(AScript: TfsScript); override; + end; + +constructor TFunctions.Create(AScript: TfsScript); +begin + inherited Create(AScript); + + with AScript do + begin + + AddType('TPopupAlignment', fvtInt); + + AddClass(TCustomImageList, 'TComponent'); + + with AddClass(TMenuItem, 'TComponent') do + begin + AddMethod('procedure Add(Item: TMenuItem)', CallMethod); + AddMethod('procedure Clear', CallMethod); + AddMethod('procedure Delete(Index: Integer)', CallMethod); + AddMethod('procedure Insert(Index: Integer; Item: TMenuItem)', + CallMethod); + AddMethod('procedure Remove(Item: TMenuItem)', CallMethod); + AddMethod('function GetParentMenu: TMenu', CallMethod); + AddEvent('OnClick', TfsNotifyEvent); + AddProperty('Count', 'Integer', GetProp); + AddDefaultProperty('Items', 'Integer', 'TMenuItem', CallMethod, True); + end; { with } + + with AddClass(TMenu, 'TComponent') do + AddIndexProperty('Items', 'Integer', 'TMenuItem', CallMethod, True); + + with AddClass(TPopupMenu, 'TMenu') do + begin + AddEvent('OnPopup', TfsNotifyEvent); + AddMethod('procedure Popup(X, Y: Extended)', CallMethod); + AddProperty('PopupComponent', 'TComponent', GetProp, SetProp); + AddProperty('Images', 'TCustomImageList', GetProp, SetProp); + end; { with } + + end; { with } + +end; { Create } + +function TFunctions.CallMethod(Instance: TObject; ClassType: TClass; const + MethodName: string; Caller: TfsMethodHelper): Variant; +var + oMenuItem: TMenuItem; +begin + Result := 0; + + if ClassType = TMenuItem then + begin + + oMenuItem := TMenuItem(Instance); + + if MethodName = 'ADD' then + oMenuItem.Add(TMenuItem(frxInteger(Caller.Params[0]))) +{$IFDEF Delphi5} + else if MethodName = 'CLEAR' then + oMenuItem.Clear +{$ENDIF} + else if MethodName = 'DELETE' then + oMenuItem.Delete(Caller.Params[0]) + else if MethodName = 'INSERT' then + oMenuItem.Insert(Caller.Params[0], TMenuItem(frxInteger(Caller.Params[1]))) + else if MethodName = 'REMOVE' then + oMenuItem.Remove(TMenuItem(frxInteger(Caller.Params[0]))) + else if MethodName = 'ITEMS.GET' then + Result := frxInteger(oMenuItem.Items[Caller.Params[0]]) + else if MethodName = 'GETPARENTMENU' then + Result := frxInteger(oMenuItem.GetParentMenu()); + + end + else if ClassType = TMenu then + begin + + if MethodName = 'ITEMS.GET' then + Result := frxInteger(TMenu(Instance).Items[Caller.Params[0]]) + + end + else if ClassType = TPopupMenu then + begin + + if MethodName = 'POPUP' then + TPopupMenu(Instance).Popup(Caller.Params[0], Caller.Params[1]); + + end; { if } + +end; { CallMethod } + +function TFunctions.GetProp(Instance: TObject; ClassType: TClass; const + PropName: string): Variant; +begin + Result := 0; + + if ClassType = TMenuItem then + begin + + if PropName = 'COUNT' then + Result := TMenuItem(Instance).Count; + + end + else if ClassType = TPopupMenu then + begin + + if PropName = 'POPUPCOMPONENT' then + Result := frxInteger(TPopupMenu(Instance).PopupComponent) + else if PropName = 'IMAGES' then + Result := frxInteger(TPopupMenu(Instance).Images) + + end; { if } + +end; { GetProp } + +procedure TFunctions.SetProp(Instance: TObject; ClassType: TClass; const + PropName: string; Value: Variant); +begin + if ClassType = TPopupMenu then + begin + if PropName = 'IMAGES' then + TPopupMenu(Instance).Images := TCustomImageList(frxInteger(Value)) + else if PropName = 'POPUPCOMPONENT' then + TPopupMenu(Instance).PopupComponent := TComponent(frxInteger(Value)) + + end; { if } + +end; { SetProp } + +initialization +{$IFDEF Delphi16} + StartClassGroup(TControl); + ActivateClassGroup(TControl); + GroupDescendentsWith(TfsMenusRTTI, TControl); +{$ENDIF} + fsRTTIModules.Add(TFunctions); + + +finalization + fsRTTIModules.Remove(TFunctions); + +end. + diff --git a/FastScript/fs_iparser.pas b/FastScript/fs_iparser.pas new file mode 100644 index 0000000..cef63e1 --- /dev/null +++ b/FastScript/fs_iparser.pas @@ -0,0 +1,762 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Parser } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} +//VCL uses section +{$IFNDEF FMX} +unit fs_iparser; + +interface + +{$i fs.inc} + +uses +{$IFNDEF CROSS_COMPILE} + Windows, +{$ENDIF} + SysUtils, Classes; +//FMX uses +{$ELSE} +interface + +{$i fs.inc} + +uses + System.Types, FMX.Types, System.SysUtils, System.Classes; +{$ENDIF} + + + +type + TfsIdentifierCharset = set of AnsiChar; + + { TfsParser parser the source text and return such elements as identifiers, + keywords, punctuation, strings and numbers. } + + TfsParser = class(TObject) + private + FCaseSensitive: Boolean; + FCommentBlock1: String; + FCommentBlock11: String; + FCommentBlock12: String; + FCommentBlock2: String; + FCommentBlock21: String; + FCommentBlock22: String; + FCommentLine1: String; + FCommentLine2: String; + FHexSequence: String; + FIdentifierCharset: TfsIdentifierCharset; + FKeywords: TStrings; + FLastPosition: Integer; + FPosition: Integer; + FSize: Integer; + FSkiPChar: String; + FSkipEOL: Boolean; + FSkipSpace: Boolean; + FStringQuotes: String; + FText: String; + FUseY: Boolean; + FYList: TList; + FSpecStrChar: Boolean; + function DoDigitSequence: Boolean; + function DoHexDigitSequence: Boolean; + function DoScaleFactor: Boolean; + function DoUnsignedInteger: Boolean; + function DoUnsignedReal: Boolean; + procedure SetPosition(const Value: Integer); + procedure SetText(const Value: String); + function Ident: String; + procedure SetCommentBlock1(const Value: String); + procedure SetCommentBlock2(const Value: String); + public + constructor Create; + destructor Destroy; override; + procedure Clear; + procedure ConstructCharset(const s: String); + + { skip all #0..#31 symbols } + procedure SkipSpaces; + { get EOL symbol } + function GetEOL: Boolean; + { get any valid ident except keyword } + function GetIdent: String; + { get any valid punctuation symbol like ,.;: } + function GetChar: String; + { get any valid ident or keyword } + function GetWord: String; + { get valid hex/int/float number } + function GetNumber: String; + { get valid quoted/control string like 'It''s'#13#10'working' } + function GetString: String; + { get FR-specific string - variable or db field like [main data."field 1"] } + function GetFRString: String; + { get Y:X position } + function GetXYPosition: String; + { get plain position from X:Y } + function GetPlainPosition(pt: TPoint): Integer; + { is this keyword? } + function IsKeyWord(const s: String): Boolean; + + // Language-dependent elements + // For Pascal: + // CommentLine1 := '//'; + // CommentBlock1 := '{,}'; + // CommentBlock2 := '(*,*)'; + // HexSequence := '$' + // IdentifierCharset := ['_', '0'..'9', 'a'..'z', 'A'..'Z']; + // Keywords: 'begin','end', ... + // StringQuotes := '''' + property CaseSensitive: Boolean read FCaseSensitive write FCaseSensitive; + property CommentBlock1: String read FCommentBlock1 write SetCommentBlock1; + property CommentBlock2: String read FCommentBlock2 write SetCommentBlock2; + property CommentLine1: String read FCommentLine1 write FCommentLine1; + property CommentLine2: String read FCommentLine2 write FCommentLine2; + property HexSequence: String read FHexSequence write FHexSequence; + property IdentifierCharset: TfsIdentifierCharset read FIdentifierCharset + write FIdentifierCharset; + property Keywords: TStrings read FKeywords; + property SkiPChar: String read FSkiPChar write FSkiPChar; + property SkipEOL: Boolean read FSkipEOL write FSkipEOL; + property SkipSpace: Boolean read FSkipSpace write FSkipSpace; + property StringQuotes: String read FStringQuotes write FStringQuotes; + property SpecStrChar: Boolean read FSpecStrChar write FSpecStrChar; + property UseY: Boolean read FUseY write FUseY; + + { Current position } + property Position: Integer read FPosition write SetPosition; + { Text to parse } + property Text: String read FText write SetText; + end; + + +implementation + + +{ TfsParser } + +constructor TfsParser.Create; +begin + FKeywords := TStringList.Create; + TStringList(FKeywords).Sorted := True; + FYList := TList.Create; + FUseY := True; + Clear; +end; + +destructor TfsParser.Destroy; +begin + FKeywords.Free; + FYList.Free; + inherited; +end; + +procedure TfsParser.Clear; +begin + FKeywords.Clear; + FSpecStrChar := False; + FCommentLine1 := '//'; + CommentBlock1 := '{,}'; + CommentBlock2 := '(*,*)'; + FHexSequence := '$'; + FIdentifierCharset := ['_', '0'..'9', 'a'..'z', 'A'..'Z']; + FSkipChar := ''; + FSkipEOL := True; + FStringQuotes := ''''; + FSkipSpace := True; +end; + +procedure TfsParser.SetCommentBlock1(const Value: String); +var + sl: TStringList; +begin + FCommentBlock1 := Value; + FCommentBlock11 := ''; + FCommentBlock12 := ''; + + sl := TStringList.Create; + sl.CommaText := FCommentBlock1; + if sl.Count > 0 then + FCommentBlock11 := sl[0]; + if sl.Count > 1 then + FCommentBlock12 := sl[1]; + sl.Free; +end; + +procedure TfsParser.SetCommentBlock2(const Value: String); +var + sl: TStringList; +begin + FCommentBlock2 := Value; + FCommentBlock21 := ''; + FCommentBlock22 := ''; + + sl := TStringList.Create; + sl.CommaText := FCommentBlock2; + if sl.Count > 0 then + FCommentBlock21 := sl[0]; + if sl.Count > 1 then + FCommentBlock22 := sl[1]; + sl.Free; +end; + +procedure TfsParser.SetPosition(const Value: Integer); +begin + FPosition := Value; + FLastPosition := Value; +end; + +procedure TfsParser.SetText(const Value: String); +var + i: Integer; +begin + FText := Value + #0; + FLastPosition := 1; + FPosition := 1; + FSize := Length(Value); + + if FUseY then + begin + FYList.Clear; + FYList.Add(TObject(0)); + for i := 1 to FSize do + if FText[i] = #10 then + FYList.Add(TObject(i)); + end; +end; + +procedure TfsParser.ConstructCharset(const s: String); +var + i: Integer; +begin + FIdentifierCharset := []; + for i := 1 to Length(s) do + FIdentifierCharset := FIdentifierCharset + [s[i]]; +end; + +function TfsParser.GetEOL: Boolean; +begin + SkipSpaces; +{$IFDEF Delphi12} + if CharInSet(FText[FPosition], [#10, #13]) then +{$ELSE} + if FText[FPosition] in [#10, #13] then +{$ENDIF} + begin + Result := True; +{$IFDEF Delphi12} + while CharInSet(FText[FPosition], [#10, #13]) do +{$ELSE} + while FText[FPosition] in [#10, #13] do +{$ENDIF} + Inc(FPosition); + end + else + Result := False; +end; + +procedure TfsParser.SkipSpaces; +var + s1, s2: String; + Flag, CLine: Boolean; + Spaces: set of AnsiChar; +begin + Spaces := [#0..#32]; + if not FSkipEOL then +{$IFDEF Windows} + Spaces := Spaces - [#13]; +{$ELSE} + Spaces := Spaces - [#10]; +{$ENDIF} +{$IFDEF Delphi12} + while (FPosition <= FSize) and (CharInSet(FText[FPosition], Spaces)) do +{$ELSE} + while (FPosition <= FSize) and (FText[FPosition] in Spaces) do +{$ENDIF} + Inc(FPosition); + { skip basic '_' } + if (FPosition <= FSize) and (FSkipChar <> '') and (FText[FPosition] = FSkipChar[1]) then + begin + Inc(FPosition); + GetEOL; + SkipSpaces; + end; + + if FPosition < FSize then + begin + if FCommentLine1 <> '' then + s1 := Copy(FText, FPosition, Length(FCommentLine1)) else + s1 := ' '; + if FCommentLine2 <> '' then + s2 := Copy(FText, FPosition, Length(FCommentLine2)) else + s2 := ' '; + + if (s1 = FCommentLine1) or (s2 = FCommentLine2) then + begin + CLine := (FPosition - 1 > 0) and (FText[FPosition - 1] <> #10) and not FSkipEOL; + while (FPosition <= FSize) and (FText[FPosition] <> #10) do + begin + if (FText[FPosition] = {$IFDEF LINUX}#10{$ELSE}#13{$ENDIF}) and CLine then break; + Inc(FPosition); + end; + SkipSpaces; + end + else + begin + Flag := False; + + if FCommentBlock1 <> '' then + begin + s1 := Copy(FText, FPosition, Length(FCommentBlock11)); + if s1 = FCommentBlock11 then + begin + Flag := True; + s2 := FCommentBlock12; + end; + end; + + if not Flag and (FCommentBlock2 <> '') then + begin + s1 := Copy(FText, FPosition, Length(FCommentBlock21)); + if s1 = FCommentBlock21 then + begin + Flag := True; + s2 := FCommentBlock22; + end; + end; + + if Flag then + begin + Inc(FPosition, Length(s2)); + while (FPosition <= FSize) and (Copy(FText, FPosition, Length(s2)) <> s2) do + Inc(FPosition); + Inc(FPosition, Length(s2)); + SkipSpaces; + end; + end; + end; + + FLastPosition := FPosition; +end; + +function TfsParser.Ident: String; +begin + if FSkipSpace then + SkipSpaces; +{$IFDEF Delphi12} + if (CharInSet(FText[FPosition], FIdentifierCharset - ['0'..'9'])) + or ((FText[FPosition] >= Char($007F)) and (FText[FPosition] <= Char($FFFF))) then + begin + while CharInSet(FText[FPosition], FIdentifierCharset) + or ((FText[FPosition] >= Char($007F)) and (FText[FPosition] <= Char($FFFF))) do +{$ELSE} + if (FText[FPosition] in FIdentifierCharset) and not (FText[FPosition] in ['0'..'9']) then + begin + while (FText[FPosition] in FIdentifierCharset) do +{$ENDIF} + Inc(FPosition); + Result := Copy(FText, FLastPosition, FPosition - FLastPosition); + end + else + Result := ''; +end; + +function TfsParser.IsKeyWord(const s: String): Boolean; +var + i: Integer; +begin + if FCaseSensitive then + begin + Result := False; + for i := 0 to FKeywords.Count - 1 do + begin + Result := FKeywords[i] = s; + if Result then break; + end; + end + else + Result := FKeywords.IndexOf(s) <> -1; +end; + +function TfsParser.GetIdent: String; +begin + Result := Ident; + if IsKeyWord(Result) then + Result := ''; +end; + +function TfsParser.GetWord: String; +begin + Result := Ident; +end; + +function TfsParser.GetChar: String; +begin +{$IFDEF Delphi12} + if CharInSet(FText[FPosition], ['!', '@', '#', '$', '%', '^', '&', '|', '\', + '.', ',', ':', ';', '?', '''', '"', '~', '`', '_', '[', ']', '{', '}', + '(', ')', '+', '-', '*', '/', '=', '<', '>']) then +{$ELSE} + if FText[FPosition] in ['!', '@', '#', '$', '%', '^', '&', '|', '\', + '.', ',', ':', ';', '?', '''', '"', '~', '`', '_', '[', ']', '{', '}', + '(', ')', '+', '-', '*', '/', '=', '<', '>'] then +{$ENDIF} + begin + Result := FText[FPosition]; + Inc(FPosition); + end + else + Result := ''; +end; + +function TfsParser.GetString: String; +var + Flag: Boolean; + Str: String; + FError: Boolean; + FCpp: Boolean; + + function DoQuotedString: Boolean; + var + i, j: Integer; + begin + Result := False; + i := FPosition; + + if FText[FPosition] = FStringQuotes[1] then + begin + repeat + Inc(FPosition); + + if FCpp and (FText[FPosition] = '\') then + begin + {$IFNDEF FPC} + {$IFDEF Delphi12} + case Lowercase(Char(FText[FPosition + 1]))[1] of + {$ELSE} + case Lowercase(FText[FPosition + 1])[1] of + {$ENDIF} + {$ELSE} + case Lowercase(FText[FPosition + 1]) of + {$ENDIF} + 'n': + begin + Str := Str + #10; + Inc(FPosition); + end; + 'r': + begin + Str := Str + #13; + Inc(FPosition); + end; + 'x': + begin + Inc(FPosition, 2); + j := FPosition; + Result := DoHexDigitSequence; + if Result then + Str := Str + Chr(StrToInt('$' + Copy(FText, j, FPosition - j))) else + FPosition := j; + Dec(FPosition); + end + else + begin + Str := Str + FText[FPosition + 1]; + Inc(FPosition); + end; + end; + end + else if FText[FPosition] = FStringQuotes[1] then + begin + if not FCpp and (FText[FPosition + 1] = FStringQuotes[1]) then + begin + Str := Str + FStringQuotes[1]; + Inc(FPosition); + end + else + break + end + else + Str := Str + FText[FPosition]; +{$IFDEF Delphi12} + until CharInSet(FText[FPosition], [#0..#31] - [#9]); +{$ELSE} + until FText[FPosition] in [#0..#31] - [#9]; +{$ENDIF} + if FText[FPosition] = FStringQuotes[1] then + begin + Inc(FPosition); + Result := True; + end + else + FPosition := i; + end; + end; + + function DoControlString: Boolean; + var + i: Integer; + begin + Result := False; + i := FPosition; + + if FText[FPosition] = '#' then + begin + Inc(FPosition); + Result := DoUnsignedInteger; + if Result then + Str := Chr(StrToInt(Copy(FText, i + 1, FPosition - i - 1))) else + FPosition := i; + end; + end; +{$HINTS OFF} +begin + Result := ''; + if FSkipSpace then + SkipSpaces; + Flag := True; + FError := False; + FCpp := {FStringQuotes = '"'} FSpecStrChar; + + repeat + Str := ''; + if DoQuotedString or DoControlString then + Result := Result + Str + else + begin + FError := Flag; + break; + end; + + Flag := False; + until False; + + if not FError then + Result := '''' + Result + ''''; +end; +{$HINTS ON} +function TfsParser.DoDigitSequence: Boolean; +begin + Result := False; + +{$IFDEF Delphi12} + if CharInSet(FText[FPosition], ['0'..'9']) then + begin + while CharInSet(FText[FPosition], ['0'..'9']) do +{$ELSE} + if FText[FPosition] in ['0'..'9'] then + begin + while FText[FPosition] in ['0'..'9'] do +{$ENDIF} + Inc(FPosition); + Result := True; + end; +end; + +function TfsParser.DoHexDigitSequence: Boolean; +begin + Result := False; + +{$IFDEF Delphi12} + if CharInSet(FText[FPosition], ['0'..'9', 'a'..'f', 'A'..'F']) then + begin + while CharInSet(FText[FPosition], ['0'..'9', 'a'..'f', 'A'..'F']) do +{$ELSE} + if FText[FPosition] in ['0'..'9', 'a'..'f', 'A'..'F'] then + begin + while FText[FPosition] in ['0'..'9', 'a'..'f', 'A'..'F'] do +{$ENDIF} + Inc(FPosition); + Result := True; + end; +end; + +function TfsParser.DoUnsignedInteger: Boolean; +var + Pos1: Integer; + s: String; +begin + Pos1 := FPosition; + + s := Copy(FText, FPosition, Length(FHexSequence)); + if s = FHexSequence then + begin + Inc(FPosition, Length(s)); + Result := DoHexDigitSequence; + end + else + Result := DoDigitSequence; + + if not Result then + FPosition := Pos1; +end; + +function TfsParser.DoUnsignedReal: Boolean; +var + Pos1, Pos2: Integer; +begin + Pos1 := FPosition; + Result := DoUnsignedInteger; + + if Result then + begin + if FText[FPosition] = '.' then + begin + Inc(FPosition); + Result := DoDigitSequence; + end; + + if Result then + begin + Pos2 := FPosition; + if not DoScaleFactor then + FPosition := Pos2; + end; + end; + + if not Result then + FPosition := Pos1; +end; + +function TfsParser.DoScaleFactor: Boolean; +begin + Result := False; +{$IFDEF Delphi12} + if CharInSet(FText[FPosition], ['e', 'E']) then +{$ELSE} + if FText[FPosition] in ['e', 'E'] then +{$ENDIF} + begin + Inc(FPosition); +{$IFDEF Delphi12} + if CharInSet(FText[FPosition], ['+', '-']) then +{$ELSE} + if FText[FPosition] in ['+', '-'] then +{$ENDIF} + Inc(FPosition); + Result := DoDigitSequence; + end; +end; + +function TfsParser.GetNumber: String; +var + Pos1: Integer; +begin + Result := ''; + if FSkipSpace then + SkipSpaces; + Pos1 := FPosition; + + if DoUnsignedReal or DoUnsignedInteger then + Result := Copy(FText, FLastPosition, FPosition - FLastPosition) else + FPosition := Pos1; + + if FHexSequence <> '$' then + while Pos(FHexSequence, Result) <> 0 do + begin + Pos1 := Pos(FHexSequence, Result); + Delete(Result, Pos1, Length(FHexSequence)); + Insert('$', Result, Pos1); + end; +end; + +function TfsParser.GetFRString: String; +var + i, c: Integer; + fl1, fl2: Boolean; +begin + Result := ''; + i := FPosition; + fl1 := True; + fl2 := True; + c := 1; + + Dec(FPosition); + repeat + Inc(FPosition); +{ if FText[FPosition] in [#10, #13] then + begin + FPosition := i; + break; + end;} + if fl1 and fl2 then +{$IFDEF Delphi12} + if CharInSet(FText[FPosition], ['<', '[']) then +{$ELSE} + if FText[FPosition] in ['<', '['] then +{$ENDIF} + Inc(c) +{$IFDEF Delphi12} + else if CharInSet(FText[FPosition], ['>', ']']) then +{$ELSE} + else if FText[FPosition] in ['>', ']'] then +{$ENDIF} + Dec(c); + if fl1 then + if FText[FPosition] = '"' then + fl2 := not fl2; + if fl2 then + if FText[FPosition] = '''' then + fl1 := not fl1; + until (c = 0) or (FPosition >= Length(FText)); + + Result := Copy(FText, i, FPosition - i); +end; + +function TfsParser.GetXYPosition: String; +var + i, i0, i1, c, pos, X, Y: Integer; +begin + i0 := 0; + i1 := FYList.Count - 1; + + while i0 <= i1 do + begin + i := (i0 + i1) div 2; + pos := Integer(FYList[i]); + + if pos = FPosition then + c := 0 + else if pos > FPosition then + c := 1 + else + c := -1; + + if c < 0 then + i0 := i + 1 + else + begin + i1 := i - 1; + if c = 0 then + i0 := i; + end; + end; + + X := 1; + Y := i0; + i := Integer(FYList[i0 - 1]) + 1; + + while i < FPosition do + begin + Inc(i); + Inc(X); + end; + Result := IntToStr(Y) + ':' + IntToStr(X) +end; + +function TfsParser.GetPlainPosition(pt: TPoint): Integer; +var + i: Integer; +begin + Result := -1; + i := pt.Y - 1; + if (i >= 0) and (i < FYList.Count) then + Result := Integer(FYList[i]) + pt.X; +end; + +end. \ No newline at end of file diff --git a/FastScript/fs_ipascal.pas b/FastScript/fs_ipascal.pas new file mode 100644 index 0000000..0c14a1a --- /dev/null +++ b/FastScript/fs_ipascal.pas @@ -0,0 +1,201 @@ + +{******************************************} +{ } +{ FastScript v1.9 } +{ Pascal grammar } +{ } +{ (c) 2003-2007 by Alexander Tzyganenko, } +{ Fast Reports Inc } +{ } +{******************************************} + +{$IFNDEF FMX} +unit fs_ipascal; +{$ENDIF} + +interface + +{$i fs.inc} + +uses +{$IFNDEF FMX} + SysUtils, Classes, fs_itools{$IFDEF DELPHI16}, Controls{$ENDIF}; +{$ELSE} + System.SysUtils, System.Classes, FMX.fs_itools, FMX.Types; +{$ENDIF} + +type +{$i frxPlatformsAttribute.inc} + TfsPascal = class(TComponent); + +procedure fsModifyPascalForFR2; + +implementation + +const + PASCAL_GRAMMAR = + '
<' + + 'except/>