LazReport, added some internal functions into function list, issue #15678

git-svn-id: trunk@23745 -
This commit is contained in:
jesus 2010-02-19 20:34:18 +00:00
parent f544798b1e
commit ec6f9fbae0
21 changed files with 644 additions and 368 deletions

View File

@ -213,63 +213,60 @@ var
rsDate:string; rsDate:string;
begin begin
inherited Create; inherited Create;
with List do Add('ABS');
begin Add('CHR');
Add('ABS'); Add('COMPARESTR');
Add('CHR'); Add('CREATEDATE');
Add('COMPARESTR'); Add('CREATENUM');
Add('CREATEDATE'); Add('CREATESTR');
Add('CREATENUM'); Add('DATEDIFF');
Add('CREATESTR'); Add('DATETOSTR');
Add('DATEDIFF'); Add('DAYSPERMONTH');
Add('DATETOSTR'); Add('DELETE');
Add('DAYSPERMONTH'); Add('ENDPOS');
Add('DELETE'); Add('EXTRACTWORD');
Add('ENDPOS'); Add('FIRSTDAYOFNEXTMONTH');
Add('EXTRACTWORD'); Add('FIRSTDAYOFPREVMONTH');
Add('FIRSTDAYOFNEXTMONTH'); Add('INCDATE');
Add('FIRSTDAYOFPREVMONTH'); Add('INCDAY');
Add('INCDATE'); Add('INCMONTH');
Add('INCDAY'); Add('INCTIME');
Add('INCMONTH'); Add('INCYEAR');
Add('INCTIME'); Add('INSERT');
Add('INCYEAR'); Add('ISLEAPYEAR');
Add('INSERT'); Add('ISRANGEDATE');
Add('ISLEAPYEAR'); Add('ISRANGENUM');
Add('ISRANGEDATE'); Add('ISWORDPRESENT');
Add('ISRANGENUM'); Add('LASTDAYOFPREVMONTH');
Add('ISWORDPRESENT'); Add('LEFTCOPY');
Add('LASTDAYOFPREVMONTH'); Add('NPOS');
Add('LEFTCOPY'); Add('PADCENTER');
Add('NPOS'); Add('PADLEFT');
Add('PADCENTER'); Add('PADRIGHT');
Add('PADLEFT'); Add('REPLACESTR');
Add('PADRIGHT'); Add('REPLICATE');
Add('REPLACESTR'); Add('RIGHTCOPY');
Add('REPLICATE'); Add('STRTODATEDEF');
Add('RIGHTCOPY'); Add('STRTOFLOAT');
Add('STRTODATEDEF'); Add('STRTOFLOATDEF');
Add('STRTOFLOAT'); Add('STRTOINT');
Add('STRTOFLOATDEF'); Add('STRTOINTDEF');
Add('STRTOINT'); Add('SWAP');
Add('STRTOINTDEF'); Add('TIMETOSTR');
Add('SWAP'); Add('TRIMLEFT');
Add('TIMETOSTR'); Add('TRIMRIGHT');
Add('TRIMLEFT'); Add('VALIDDATE');
Add('TRIMRIGHT'); Add('VALIDFLOAT');
Add('VALIDDATE'); Add('VALIDINT');
Add('VALIDFLOAT'); Add('WORDCOUNT');
Add('VALIDINT'); Add('WORDPOSITION');
Add('WORDCOUNT');
Add('WORDPOSITION'); DoInitStr;
end; { with } DoInitNum;
DoInitDate;
DoInitStr; DoInitSQL;
DoInitNum; DoInitMath;
DoInitDate; DoInitOther;
DoInitSQL;
DoInitMath;
DoInitOther;
end; end;
procedure TAddFunctionLibrary.DoFunction(FNo: Integer; p1, p2, p3: Variant; procedure TAddFunctionLibrary.DoFunction(FNo: Integer; p1, p2, p3: Variant;

View File

@ -1,17 +1,14 @@
<?xml version="1.0"?> <?xml version="1.0"?>
<CONFIG> <CONFIG>
<Package Version="2"> <Package Version="3">
<PathDelim Value="\"/> <PathDelim Value="\"/>
<Name Value="lr_add_function"/> <Name Value="lr_add_function"/>
<CompilerOptions> <CompilerOptions>
<Version Value="5"/> <Version Value="8"/>
<PathDelim Value="\"/> <PathDelim Value="\"/>
<SearchPaths> <SearchPaths>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)\"/> <UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths> </SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Other> <Other>
<CompilerPath Value="$(CompPath)"/> <CompilerPath Value="$(CompPath)"/>
</Other> </Other>
@ -19,7 +16,7 @@
<Version Major="1"/> <Version Major="1"/>
<Files Count="6"> <Files Count="6">
<Item1> <Item1>
<Filename Value="lraddfunctionlibrary.pas"/> <Filename Value="lrAddFunctionLibrary.pas"/>
<HasRegisterProc Value="True"/> <HasRegisterProc Value="True"/>
<UnitName Value="lrAddFunctionLibrary"/> <UnitName Value="lrAddFunctionLibrary"/>
</Item1> </Item1>

View File

@ -275,6 +275,10 @@ msgstr "Standarddrucker"
msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too." msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too."
msgstr "AVG(<Ausdruck> [,BandName [,1]])/Berechnet den Durchschnitt von <Ausdruck> für die in [BandName] festgelegte Reihe. Ist der Parameter [1] angegeben, wird der Durchschnitt auch für nicht sichtbare Reihen berechnet." msgstr "AVG(<Ausdruck> [,BandName [,1]])/Berechnet den Durchschnitt von <Ausdruck> für die in [BandName] festgelegte Reihe. Ist der Parameter [1] angegeben, wird der Durchschnitt auch für nicht sichtbare Reihen berechnet."
#: lr_const.sdescriptioncopy
msgid "COPY(<String>, <Position>, <Length>)/Returns <Length> characters from <String> starting at <Position>."
msgstr ""
#: lr_const.sdescriptioncount #: lr_const.sdescriptioncount
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. " msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
msgstr "COUNT(<BandName>)/Liefert die Zahl der Datenreihen des angegebenen <BandName>. " msgstr "COUNT(<BandName>)/Liefert die Zahl der Datenreihen des angegebenen <BandName>. "
@ -295,10 +299,18 @@ msgstr "FORMATFLOAT(<Fmt>, <Zahl>)/Konvertiert eine <Zahl> über die Maske <Fmt
msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string." msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string."
msgstr "FORMATTEXT(<Maske>, <String>)/Wendet <Maske>auf den angegebenen <String> und gibt den formatierten String zurück." msgstr "FORMATTEXT(<Maske>, <String>)/Wendet <Maske>auf den angegebenen <String> und gibt den formatierten String zurück."
#: lr_const.sdescriptionfrac
msgid "FRAC(<Value>)/Returns the fractional part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptioninput #: lr_const.sdescriptioninput
msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string." msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string."
msgstr "INPUT(<Caption> [,Default])/Zeigt ein Dialogfenster mit der Überschrift <Caption> und einem Eingabefeld. Ist der Parameter [Default] gesetzt, wird dieser String im Eingabefeld eingesetzt. Drückt der Anwender OK, wird der Text im Eingabefeld zurückgeliefert." msgstr "INPUT(<Caption> [,Default])/Zeigt ein Dialogfenster mit der Überschrift <Caption> und einem Eingabefeld. Ist der Parameter [Default] gesetzt, wird dieser String im Eingabefeld eingesetzt. Drückt der Anwender OK, wird der Text im Eingabefeld zurückgeliefert."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength #: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>." msgid "LENGTH(<String>)/Returns length of <String>."
msgstr "LENGTH(<String>)/Gibt die Länge von <String> zurück." msgstr "LENGTH(<String>)/Gibt die Länge von <String> zurück."
@ -339,6 +351,14 @@ msgstr "NAMECASE(<String>)/Konvertiert alle Zeichen in <String> in Klein- und da
msgid "POS(<SubString>, <String>)/Returns position of substring in given string." msgid "POS(<SubString>, <String>)/Returns position of substring in given string."
msgstr "POS(<SubString>, <String>)/Liefert die Position des Substrings im angegebenen String zurück." msgstr "POS(<SubString>, <String>)/Liefert die Position des Substrings im angegebenen String zurück."
#: lr_const.sdescriptionround
msgid "ROUND(<Value>)/Rounds the floating point <Value> to nearest integer number."
msgstr ""
#: lr_const.sdescriptionstr
msgid "STR(<Value>)/Converts the given (numeric) <Value> in string."
msgstr ""
#: lr_const.sdescriptionstrtodate #: lr_const.sdescriptionstrtodate
msgid "STRTODATE(<String>)/Converts <String> to date." msgid "STRTODATE(<String>)/Converts <String> to date."
msgstr "STRTODATE(<String>)/Konvertiert den <String> in eine Datumsangabe." msgstr "STRTODATE(<String>)/Konvertiert den <String> in eine Datumsangabe."

View File

@ -264,6 +264,10 @@ msgstr "Impresora por defecto"
msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too." msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too."
msgstr "AVG(<Expresión> [,NombreDeBanda [,1]])/Calcula el promedio de <Expresión> para cada línea en [NombreDeBanda]. Si se usa el parámetro [1], se calcula también el promedio de las líneas no visibles." msgstr "AVG(<Expresión> [,NombreDeBanda [,1]])/Calcula el promedio de <Expresión> para cada línea en [NombreDeBanda]. Si se usa el parámetro [1], se calcula también el promedio de las líneas no visibles."
#: lr_const.sdescriptioncopy
msgid "COPY(<String>, <Position>, <Length>)/Returns <Length> characters from <String> starting at <Position>."
msgstr ""
#: lr_const.sdescriptioncount #: lr_const.sdescriptioncount
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. " msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
msgstr "COUNT(<NombreDeBanda>)/Regresa la cuenta de registros en <NombreDeBanda>. " msgstr "COUNT(<NombreDeBanda>)/Regresa la cuenta de registros en <NombreDeBanda>. "
@ -284,10 +288,18 @@ msgstr "FORMATFLOAT(<Fmt>, <Numérico>)/Convierte un valor <Numérico> en cadena
msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string." msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string."
msgstr "FORMATTEXT(<Máscara>, <Cadena>)/Aplica la <Máscara> a la <Cadena> dada y regresa la cadena formateada." msgstr "FORMATTEXT(<Máscara>, <Cadena>)/Aplica la <Máscara> a la <Cadena> dada y regresa la cadena formateada."
#: lr_const.sdescriptionfrac
msgid "FRAC(<Value>)/Returns the fractional part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptioninput #: lr_const.sdescriptioninput
msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string." msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string."
msgstr "INPUT(<Encabezado> [,Default])/Muestra una ventana de diálogo con encabezado <Encabezado> y un control de edición. Si el parámetro [Default] se usa, ésta cadena se pone el en control de edición. Despúes que se hace click en ACEPTAR, se regresa la cadena introducida." msgstr "INPUT(<Encabezado> [,Default])/Muestra una ventana de diálogo con encabezado <Encabezado> y un control de edición. Si el parámetro [Default] se usa, ésta cadena se pone el en control de edición. Despúes que se hace click en ACEPTAR, se regresa la cadena introducida."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength #: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>." msgid "LENGTH(<String>)/Returns length of <String>."
msgstr "LENGTH(<String>)/Devuelve la longitud de <String>." msgstr "LENGTH(<String>)/Devuelve la longitud de <String>."
@ -328,6 +340,14 @@ msgstr "NAMECASE(<Cadena>)/Convierte la <Cadena> a minúsculas poniendo la prime
msgid "POS(<SubString>, <String>)/Returns position of substring in given string." msgid "POS(<SubString>, <String>)/Returns position of substring in given string."
msgstr "POS(<Subcadena>, <Cadena>)/Regresa la posición de <Subcadena> en <Cadena>." msgstr "POS(<Subcadena>, <Cadena>)/Regresa la posición de <Subcadena> en <Cadena>."
#: lr_const.sdescriptionround
msgid "ROUND(<Value>)/Rounds the floating point <Value> to nearest integer number."
msgstr ""
#: lr_const.sdescriptionstr
msgid "STR(<Value>)/Converts the given (numeric) <Value> in string."
msgstr ""
#: lr_const.sdescriptionstrtodate #: lr_const.sdescriptionstrtodate
msgid "STRTODATE(<String>)/Converts <String> to date." msgid "STRTODATE(<String>)/Converts <String> to date."
msgstr "STRTODATE(<Cadena>)/Convertir <Cadena> en fecha." msgstr "STRTODATE(<Cadena>)/Convertir <Cadena> en fecha."

View File

@ -273,6 +273,10 @@ msgstr "Imprimante par défaut"
msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too." msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too."
msgstr "AVG(<Expression> [,NomBande [,1]])/Calcule la moyenne de <Expression> pour les lignes dans [NomBande]. Si paramètre [1] est utilisé, calcule également la moyenne des lignes non visible.\"" msgstr "AVG(<Expression> [,NomBande [,1]])/Calcule la moyenne de <Expression> pour les lignes dans [NomBande]. Si paramètre [1] est utilisé, calcule également la moyenne des lignes non visible.\""
#: lr_const.sdescriptioncopy
msgid "COPY(<String>, <Position>, <Length>)/Returns <Length> characters from <String> starting at <Position>."
msgstr ""
#: lr_const.sdescriptioncount #: lr_const.sdescriptioncount
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. " msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
msgstr "COUNT(<NomBande>)/Retourne le nombre de lignes de <NomBande>. " msgstr "COUNT(<NomBande>)/Retourne le nombre de lignes de <NomBande>. "
@ -293,10 +297,18 @@ msgstr "FORMATFLOAT(<Fmt>, <Numeric>)/Convertit la valeur numérique <Numeric> e
msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string." msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string."
msgstr "FORMATTEXT(<Masque>, <String>)/Applique le masque <Mask> à chaine de caractères <String> et retourne une chaîne formattée." msgstr "FORMATTEXT(<Masque>, <String>)/Applique le masque <Mask> à chaine de caractères <String> et retourne une chaîne formattée."
#: lr_const.sdescriptionfrac
msgid "FRAC(<Value>)/Returns the fractional part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptioninput #: lr_const.sdescriptioninput
msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string." msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string."
msgstr "INPUT(<Caption> [,Default])/Affiche une fenêtre de dialogue avec le titre <Caption> et un champ de saisie. If le paramètre [Default] est présent, ce texte sera affiché dans le champs de saisie. Lorsque l'utilisateur clique sur OK, le texte est retourné." msgstr "INPUT(<Caption> [,Default])/Affiche une fenêtre de dialogue avec le titre <Caption> et un champ de saisie. If le paramètre [Default] est présent, ce texte sera affiché dans le champs de saisie. Lorsque l'utilisateur clique sur OK, le texte est retourné."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength #: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>." msgid "LENGTH(<String>)/Returns length of <String>."
msgstr "" msgstr ""
@ -337,6 +349,14 @@ msgstr "NAMECASE(<String>)/Capitalise <String>."
msgid "POS(<SubString>, <String>)/Returns position of substring in given string." msgid "POS(<SubString>, <String>)/Returns position of substring in given string."
msgstr "POS(<SubString>, <String>)/Retourne la position de la chaîne <SubString> dans la chaîne <String>." msgstr "POS(<SubString>, <String>)/Retourne la position de la chaîne <SubString> dans la chaîne <String>."
#: lr_const.sdescriptionround
msgid "ROUND(<Value>)/Rounds the floating point <Value> to nearest integer number."
msgstr ""
#: lr_const.sdescriptionstr
msgid "STR(<Value>)/Converts the given (numeric) <Value> in string."
msgstr ""
#: lr_const.sdescriptionstrtodate #: lr_const.sdescriptionstrtodate
msgid "STRTODATE(<String>)/Converts <String> to date." msgid "STRTODATE(<String>)/Converts <String> to date."
msgstr "STRTODATE(<String>)/Convertit <String> en date." msgstr "STRTODATE(<String>)/Convertit <String> en date."

View File

@ -264,6 +264,10 @@ msgstr "Printer standar"
msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too." msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too."
msgstr "AVG(<Expression> [,BandName [,1]])/Menghitung rata-rata <Expression> untuk [BandName] dari baris yang diberikan. Jika parameter [1] dipakai, menghitung rata-rata untuk baris yang tidak terlihat juga." msgstr "AVG(<Expression> [,BandName [,1]])/Menghitung rata-rata <Expression> untuk [BandName] dari baris yang diberikan. Jika parameter [1] dipakai, menghitung rata-rata untuk baris yang tidak terlihat juga."
#: lr_const.sdescriptioncopy
msgid "COPY(<String>, <Position>, <Length>)/Returns <Length> characters from <String> starting at <Position>."
msgstr ""
#: lr_const.sdescriptioncount #: lr_const.sdescriptioncount
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. " msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
msgstr "COUNT(<BandName>)/Mengembalikan jumlah baris-data yang diberikan dalam <BandName>. " msgstr "COUNT(<BandName>)/Mengembalikan jumlah baris-data yang diberikan dalam <BandName>. "
@ -284,10 +288,18 @@ msgstr "FORMATFLOAT(<Fmt>, <Numeric>)/Mengubah nilai <Numeric> ke string menggun
msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string." msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string."
msgstr "FORMATTEXT(<Mask>, <String>)/Menerapkan <Mask> ke <String> dan mengembalikan string yang dibentuk." msgstr "FORMATTEXT(<Mask>, <String>)/Menerapkan <Mask> ke <String> dan mengembalikan string yang dibentuk."
#: lr_const.sdescriptionfrac
msgid "FRAC(<Value>)/Returns the fractional part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptioninput #: lr_const.sdescriptioninput
msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string." msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string."
msgstr "INPUT(<Caption> [,Default])/Menampilkan jendela dialog dengan headstring <Caption> dan kotak edit. Jika parameter [Default] disetel, menaruh string ini dalam kotak edit. Setelah pengguna mengklik OK, mengembalikan string input." msgstr "INPUT(<Caption> [,Default])/Menampilkan jendela dialog dengan headstring <Caption> dan kotak edit. Jika parameter [Default] disetel, menaruh string ini dalam kotak edit. Setelah pengguna mengklik OK, mengembalikan string input."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength #: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>." msgid "LENGTH(<String>)/Returns length of <String>."
msgstr "" msgstr ""
@ -328,6 +340,14 @@ msgstr "NAMECASE(<String>)/Mengubah simbol <String> ke huruf kecil, dan simbol p
msgid "POS(<SubString>, <String>)/Returns position of substring in given string." msgid "POS(<SubString>, <String>)/Returns position of substring in given string."
msgstr "POS(<SubString>, <String>)/Mengembalikan posisi substring dari string yang diberikan." msgstr "POS(<SubString>, <String>)/Mengembalikan posisi substring dari string yang diberikan."
#: lr_const.sdescriptionround
msgid "ROUND(<Value>)/Rounds the floating point <Value> to nearest integer number."
msgstr ""
#: lr_const.sdescriptionstr
msgid "STR(<Value>)/Converts the given (numeric) <Value> in string."
msgstr ""
#: lr_const.sdescriptionstrtodate #: lr_const.sdescriptionstrtodate
msgid "STRTODATE(<String>)/Converts <String> to date." msgid "STRTODATE(<String>)/Converts <String> to date."
msgstr "STRTODATE(<String>)/Mengubah <String> ke tanggal." msgstr "STRTODATE(<String>)/Mengubah <String> ke tanggal."

View File

@ -266,6 +266,10 @@ msgstr "Numatytas spausdintuvas"
msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too." msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too."
msgstr "AVG(<Reiškinys> [,JuostosPavadinimas [,1]])/Duotai [JuostosPavadinimas] eilutei apskaičiuoja <Reiškinys> vidurkį. Jei nurodytas [1] parametras, tai vidurkis skaičiuojamas ir nematomoms eilutėms." msgstr "AVG(<Reiškinys> [,JuostosPavadinimas [,1]])/Duotai [JuostosPavadinimas] eilutei apskaičiuoja <Reiškinys> vidurkį. Jei nurodytas [1] parametras, tai vidurkis skaičiuojamas ir nematomoms eilutėms."
#: lr_const.sdescriptioncopy
msgid "COPY(<String>, <Position>, <Length>)/Returns <Length> characters from <String> starting at <Position>."
msgstr ""
#: lr_const.sdescriptioncount #: lr_const.sdescriptioncount
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. " msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
msgstr "COUNT(<JuostosPavadinimas>)/Grąžina duotame <JuostosPavadinimas> esančių duomenų eilučių kiekį." msgstr "COUNT(<JuostosPavadinimas>)/Grąžina duotame <JuostosPavadinimas> esančių duomenų eilučių kiekį."
@ -286,10 +290,18 @@ msgstr "FORMATFLOAT(<Formatas>, <Skaičius>)/Pagal <Formatas> nurodytą kaukę,
msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string." msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string."
msgstr "FORMATTEXT(<Kaukė>, <Tekstas>)/Grąžina pagal duotą <Kaukė> kaukę formatuotą <Tekstas> tekstą." msgstr "FORMATTEXT(<Kaukė>, <Tekstas>)/Grąžina pagal duotą <Kaukė> kaukę formatuotą <Tekstas> tekstą."
#: lr_const.sdescriptionfrac
msgid "FRAC(<Value>)/Returns the fractional part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptioninput #: lr_const.sdescriptioninput
msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string." msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string."
msgstr "INPUT(<Antraštė> [,Numatyta])/Rodo dialogo langą, kuriame būna <Antraštė> tekstas bei įvesties langelis. Jei nurodytas [,Numatyta] parametras, tai šio parametro tekstas įrašomas į įvesties langelį. Naudotojui paspaudus „Tinka“, grąžina įvesties langelyje esantį tekstą." msgstr "INPUT(<Antraštė> [,Numatyta])/Rodo dialogo langą, kuriame būna <Antraštė> tekstas bei įvesties langelis. Jei nurodytas [,Numatyta] parametras, tai šio parametro tekstas įrašomas į įvesties langelį. Naudotojui paspaudus „Tinka“, grąžina įvesties langelyje esantį tekstą."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength #: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>." msgid "LENGTH(<String>)/Returns length of <String>."
msgstr "LENGTH(<Tekstas>)/Grąžina <Tekstas> ilgį." msgstr "LENGTH(<Tekstas>)/Grąžina <Tekstas> ilgį."
@ -330,6 +342,14 @@ msgstr "NAMECASE(<Tekstas>)/Pirmąją <Tekstas> raidę padaro didžiąją, o lik
msgid "POS(<SubString>, <String>)/Returns position of substring in given string." msgid "POS(<SubString>, <String>)/Returns position of substring in given string."
msgstr "POS(<Potekstis>, <Tekstas>)/Grąžina <Potekstis> poziciją duotame <Tekstas>." msgstr "POS(<Potekstis>, <Tekstas>)/Grąžina <Potekstis> poziciją duotame <Tekstas>."
#: lr_const.sdescriptionround
msgid "ROUND(<Value>)/Rounds the floating point <Value> to nearest integer number."
msgstr ""
#: lr_const.sdescriptionstr
msgid "STR(<Value>)/Converts the given (numeric) <Value> in string."
msgstr ""
#: lr_const.sdescriptionstrtodate #: lr_const.sdescriptionstrtodate
msgid "STRTODATE(<String>)/Converts <String> to date." msgid "STRTODATE(<String>)/Converts <String> to date."
msgstr "STRTODATE(<Tekstas>)/Duotą <Tekstas> verčia į datą." msgstr "STRTODATE(<Tekstas>)/Duotą <Tekstas> verčia į datą."

View File

@ -264,6 +264,10 @@ msgstr "Impressora padrão"
msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too." msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too."
msgstr "AVG(<Expressão> [,NomeBanda [,1]])/Calcula a média de <Expressão> pela linha dada por [NomeBanda]. Se o parâmetro [1] for usado, calcula também a média das linhas não-visíveis." msgstr "AVG(<Expressão> [,NomeBanda [,1]])/Calcula a média de <Expressão> pela linha dada por [NomeBanda]. Se o parâmetro [1] for usado, calcula também a média das linhas não-visíveis."
#: lr_const.sdescriptioncopy
msgid "COPY(<String>, <Position>, <Length>)/Returns <Length> characters from <String> starting at <Position>."
msgstr ""
#: lr_const.sdescriptioncount #: lr_const.sdescriptioncount
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. " msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
msgstr "COUNT(<NomeBanda>)/Retorna a contagem de linhas de uma <NomeBanda> dada." msgstr "COUNT(<NomeBanda>)/Retorna a contagem de linhas de uma <NomeBanda> dada."
@ -284,10 +288,18 @@ msgstr "FORMATFLOAT(<Fmt>, <Numérico>)/Converte um valor <Numérico> para um st
msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string." msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string."
msgstr "FORMATTEXT(<Máscara>, <String>)/Aplica <Máscara> para uma dada <String> e a retorna formatada." msgstr "FORMATTEXT(<Máscara>, <String>)/Aplica <Máscara> para uma dada <String> e a retorna formatada."
#: lr_const.sdescriptionfrac
msgid "FRAC(<Value>)/Returns the fractional part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptioninput #: lr_const.sdescriptioninput
msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string." msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string."
msgstr "INPUT(<Título> [,Padrão])/Mostra janela de diálogo com cabeçalho <Título> e caixa texto. Se o parâmetro [Padrão] for informado, coloca-o na caixa de texto. Após o usuário clicar OK, retorna a string digitada." msgstr "INPUT(<Título> [,Padrão])/Mostra janela de diálogo com cabeçalho <Título> e caixa texto. Se o parâmetro [Padrão] for informado, coloca-o na caixa de texto. Após o usuário clicar OK, retorna a string digitada."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength #: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>." msgid "LENGTH(<String>)/Returns length of <String>."
msgstr "LENGTH(<String>)/Retorna o comprimento da <String>." msgstr "LENGTH(<String>)/Retorna o comprimento da <String>."
@ -328,6 +340,14 @@ msgstr "NAMECASE(<String>)/Converte os caracteres da <String> para minúsculas,
msgid "POS(<SubString>, <String>)/Returns position of substring in given string." msgid "POS(<SubString>, <String>)/Returns position of substring in given string."
msgstr "POS(<SubString>, <String>)/Retorna a posição da <SubString> para uma dada <String>." msgstr "POS(<SubString>, <String>)/Retorna a posição da <SubString> para uma dada <String>."
#: lr_const.sdescriptionround
msgid "ROUND(<Value>)/Rounds the floating point <Value> to nearest integer number."
msgstr ""
#: lr_const.sdescriptionstr
msgid "STR(<Value>)/Converts the given (numeric) <Value> in string."
msgstr ""
#: lr_const.sdescriptionstrtodate #: lr_const.sdescriptionstrtodate
msgid "STRTODATE(<String>)/Converts <String> to date." msgid "STRTODATE(<String>)/Converts <String> to date."
msgstr "STRTODATE(<String>)/Converte <String> para data." msgstr "STRTODATE(<String>)/Converte <String> para data."

View File

@ -267,6 +267,10 @@ msgstr "Domyślna drukarka"
msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too." msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too."
msgstr "AVG(<Wyrażenie> [,NazwaBandy [,1]])/Oblicza średnią z <Wyrażenie> dla [NazwaBandy] podanego wiersza Jeśli [1] parametr jest użyty, to uwzględnia w obliczeniach także niewidoczne wiersze." msgstr "AVG(<Wyrażenie> [,NazwaBandy [,1]])/Oblicza średnią z <Wyrażenie> dla [NazwaBandy] podanego wiersza Jeśli [1] parametr jest użyty, to uwzględnia w obliczeniach także niewidoczne wiersze."
#: lr_const.sdescriptioncopy
msgid "COPY(<String>, <Position>, <Length>)/Returns <Length> characters from <String> starting at <Position>."
msgstr ""
#: lr_const.sdescriptioncount #: lr_const.sdescriptioncount
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. " msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
msgstr "COUNT(<NazwaBandy>)/Zwraca ilość wierszy z bazy danych dla danej <NazwaBandy>. " msgstr "COUNT(<NazwaBandy>)/Zwraca ilość wierszy z bazy danych dla danej <NazwaBandy>. "
@ -287,10 +291,18 @@ msgstr ""
msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string." msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string."
msgstr "" msgstr ""
#: lr_const.sdescriptionfrac
msgid "FRAC(<Value>)/Returns the fractional part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptioninput #: lr_const.sdescriptioninput
msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string." msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string."
msgstr "" msgstr ""
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength #: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>." msgid "LENGTH(<String>)/Returns length of <String>."
msgstr "" msgstr ""
@ -331,6 +343,14 @@ msgstr ""
msgid "POS(<SubString>, <String>)/Returns position of substring in given string." msgid "POS(<SubString>, <String>)/Returns position of substring in given string."
msgstr "" msgstr ""
#: lr_const.sdescriptionround
msgid "ROUND(<Value>)/Rounds the floating point <Value> to nearest integer number."
msgstr ""
#: lr_const.sdescriptionstr
msgid "STR(<Value>)/Converts the given (numeric) <Value> in string."
msgstr ""
#: lr_const.sdescriptionstrtodate #: lr_const.sdescriptionstrtodate
msgid "STRTODATE(<String>)/Converts <String> to date." msgid "STRTODATE(<String>)/Converts <String> to date."
msgstr "" msgstr ""

View File

@ -259,6 +259,10 @@ msgstr ""
msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too." msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too."
msgstr "" msgstr ""
#: lr_const.sdescriptioncopy
msgid "COPY(<String>, <Position>, <Length>)/Returns <Length> characters from <String> starting at <Position>."
msgstr ""
#: lr_const.sdescriptioncount #: lr_const.sdescriptioncount
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. " msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
msgstr "" msgstr ""
@ -279,10 +283,18 @@ msgstr ""
msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string." msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string."
msgstr "" msgstr ""
#: lr_const.sdescriptionfrac
msgid "FRAC(<Value>)/Returns the fractional part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptioninput #: lr_const.sdescriptioninput
msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string." msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string."
msgstr "" msgstr ""
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength #: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>." msgid "LENGTH(<String>)/Returns length of <String>."
msgstr "" msgstr ""
@ -323,6 +335,14 @@ msgstr ""
msgid "POS(<SubString>, <String>)/Returns position of substring in given string." msgid "POS(<SubString>, <String>)/Returns position of substring in given string."
msgstr "" msgstr ""
#: lr_const.sdescriptionround
msgid "ROUND(<Value>)/Rounds the floating point <Value> to nearest integer number."
msgstr ""
#: lr_const.sdescriptionstr
msgid "STR(<Value>)/Converts the given (numeric) <Value> in string."
msgstr ""
#: lr_const.sdescriptionstrtodate #: lr_const.sdescriptionstrtodate
msgid "STRTODATE(<String>)/Converts <String> to date." msgid "STRTODATE(<String>)/Converts <String> to date."
msgstr "" msgstr ""

View File

@ -264,6 +264,10 @@ msgstr "Принтер по умолчанию"
msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too." msgid "AVG(<Expression> [,BandName [,1]])/Calculates the average of <Expression> for [BandName] row given. If [1] parameter is used, calculates average for non-visible rows too."
msgstr "AVG(<Expression> [,BandName [,1]])/Вычисляет среднее арифметическое выражения <Expression> для заданной строки [BandName]. Если используется параметр [1], в вычисления также включаются невидимые строки." msgstr "AVG(<Expression> [,BandName [,1]])/Вычисляет среднее арифметическое выражения <Expression> для заданной строки [BandName]. Если используется параметр [1], в вычисления также включаются невидимые строки."
#: lr_const.sdescriptioncopy
msgid "COPY(<String>, <Position>, <Length>)/Returns <Length> characters from <String> starting at <Position>."
msgstr ""
#: lr_const.sdescriptioncount #: lr_const.sdescriptioncount
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. " msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
msgstr "COUNT(<BandName>)/Возвращает число строк данных в <BandName>. " msgstr "COUNT(<BandName>)/Возвращает число строк данных в <BandName>. "
@ -284,10 +288,18 @@ msgstr "FORMATFLOAT(<Fmt>, <Numeric>)/Преобразует значение <N
msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string." msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string."
msgstr "FORMATTEXT(<Mask>, <String>)/Применяет маску <Mask> к заданной строке <String> и возвращает форматированную строку." msgstr "FORMATTEXT(<Mask>, <String>)/Применяет маску <Mask> к заданной строке <String> и возвращает форматированную строку."
#: lr_const.sdescriptionfrac
msgid "FRAC(<Value>)/Returns the fractional part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptioninput #: lr_const.sdescriptioninput
msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string." msgid "INPUT(<Caption> [,Default])/Shows dialog window with headstring <Caption> and edit box. If [Default] parameter is set, puts this string in edit box. After user clicks OK, returns input string."
msgstr "INPUT(<Caption> [,Default])/Выводит диалоговое окно с заголовком <Caption> и полем ввода. Если задан параметр [Default], помещает эту строку в поле ввода. После нажатия пользователем кнопки OK возвращает введённую строку." msgstr "INPUT(<Caption> [,Default])/Выводит диалоговое окно с заголовком <Caption> и полем ввода. Если задан параметр [Default], помещает эту строку в поле ввода. После нажатия пользователем кнопки OK возвращает введённую строку."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength #: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>." msgid "LENGTH(<String>)/Returns length of <String>."
msgstr "LENGTH(<String>)/Возвращает длину строки <String>." msgstr "LENGTH(<String>)/Возвращает длину строки <String>."
@ -328,6 +340,14 @@ msgstr "NAMECASE(<String>)/Преобразует символы строки <S
msgid "POS(<SubString>, <String>)/Returns position of substring in given string." msgid "POS(<SubString>, <String>)/Returns position of substring in given string."
msgstr "POS(<SubString>, <String>)/Возвращает позицию подстроки <SubString> в строке <String> ." msgstr "POS(<SubString>, <String>)/Возвращает позицию подстроки <SubString> в строке <String> ."
#: lr_const.sdescriptionround
msgid "ROUND(<Value>)/Rounds the floating point <Value> to nearest integer number."
msgstr ""
#: lr_const.sdescriptionstr
msgid "STR(<Value>)/Converts the given (numeric) <Value> in string."
msgstr ""
#: lr_const.sdescriptionstrtodate #: lr_const.sdescriptionstrtodate
msgid "STRTODATE(<String>)/Converts <String> to date." msgid "STRTODATE(<String>)/Converts <String> to date."
msgstr "STRTODATE(<String>)/Преобразует строку <String> в дату." msgstr "STRTODATE(<String>)/Преобразует строку <String> в дату."

View File

@ -15,7 +15,7 @@ interface
{$I LR_Vers.inc} {$I LR_Vers.inc}
uses uses
SysUtils, Classes, Controls, FileUtil, SysUtils, Classes, MaskUtils, Controls, FileUtil,
Forms, ComCtrls, Dialogs, Menus, Forms, ComCtrls, Dialogs, Menus,
Variants, DB,Graphics,Printers,osPrinters,XMLConf, Variants, DB,Graphics,Printers,osPrinters,XMLConf,
LCLType,LCLIntf,TypInfo,LCLProc, SysUtilsAdds, LCLType,LCLIntf,TypInfo,LCLProc, SysUtilsAdds,
@ -1064,8 +1064,11 @@ type
{ TfrFunctionLibrary } { TfrFunctionLibrary }
TfrFunctionLibrary = class(TObject) TfrFunctionLibrary = class(TObject)
private
List, Extra: TStringList;
function GetCount: integer;
function GetDescription(AIndex: Integer): TfrFunctionDescription;
public public
List: TStringList;
constructor Create; virtual; constructor Create; virtual;
destructor Destroy; override; destructor Destroy; override;
function OnFunction(const FName: String; p1, p2, p3: Variant; function OnFunction(const FName: String; p1, p2, p3: Variant;
@ -1073,7 +1076,10 @@ type
procedure DoFunction(FNo: Integer; p1, p2, p3: Variant; var val: Variant); procedure DoFunction(FNo: Integer; p1, p2, p3: Variant; var val: Variant);
virtual; abstract; virtual; abstract;
procedure UpdateDescriptions; virtual; procedure UpdateDescriptions; virtual;
procedure Add(const funName:string; IsExtra:boolean=false);
procedure AddFunctionDesc(const funName, funGroup, funDescription:string); procedure AddFunctionDesc(const funName, funGroup, funDescription:string);
property FunctionCount:integer read GetCount;
property Description[AIndex:Integer]:TfrFunctionDescription read GetDescription;
end; end;
TfrCompressor = class(TObject) TfrCompressor = class(TObject)
@ -9129,26 +9135,50 @@ begin
// abstract method // abstract method
end; end;
function TfrFunctionLibrary.GetCount: integer;
begin
result := List.Count + Extra.Count;
end;
function TfrFunctionLibrary.GetDescription(AIndex: Integer
): TfrFunctionDescription;
begin
result := nil;
if (AIndex>=0) and (AIndex<FunctionCount) then
begin
if AIndex<List.Count then
result := TfrFunctionDescription(List.Objects[AIndex])
else
result := TfrFunctionDescription(Extra.Objects[AIndex-List.Count]);
end;
end;
{----------------------------------------------------------------------------} {----------------------------------------------------------------------------}
constructor TfrFunctionLibrary.Create; constructor TfrFunctionLibrary.Create;
begin begin
inherited Create; inherited Create;
List := TStringList.Create; List := TStringList.Create;
Extra:= TStringList.Create;
//List.Sorted := True; //List.Sorted := True;
end; end;
destructor TfrFunctionLibrary.Destroy; destructor TfrFunctionLibrary.Destroy;
var procedure FreeList(AList:TStringList);
i:integer; var
i:integer;
begin
for i:=0 to AList.Count-1 do
if Assigned(AList.Objects[i]) then
begin
AList.Objects[i].Free;
AList.Objects[i]:=nil;
end;
AList.Free;
end;
begin begin
for i:=0 to List.Count-1 do FreeList(List);
if Assigned(List.Objects[i]) then FreeList(Extra);
begin
List.Objects[i].Free;
List.Objects[i]:=nil;
end;
List.Free;
inherited Destroy; inherited Destroy;
end; end;
@ -9171,19 +9201,37 @@ procedure TfrFunctionLibrary.UpdateDescriptions;
begin begin
end; end;
procedure TfrFunctionLibrary.Add(const funName: string; IsExtra:boolean=false);
begin
if IsExtra then
Extra.Add(funName)
else
List.Add(FunName);
end;
procedure TfrFunctionLibrary.AddFunctionDesc(const funName, funGroup, procedure TfrFunctionLibrary.AddFunctionDesc(const funName, funGroup,
funDescription: string); funDescription: string);
var var
i: Integer; i: Integer;
procedure AddDesc(AList:TStringList);
begin
if not Assigned(AList.Objects[i]) then
AList.Objects[i]:=TfrFunctionDescription.Create;
TfrFunctionDescription(AList.Objects[i]).funName:=funName;
TfrFunctionDescription(AList.Objects[i]).funGroup:=funGroup;
TfrFunctionDescription(AList.Objects[i]).funDescription:=funDescription;
end;
begin begin
if List.Find(funName, i) then if List.Find(funName, i) then
AddDesc(List)
else
begin begin
if not Assigned(List.Objects[i]) then i := Extra.IndexOf(funName);
List.Objects[i]:=TfrFunctionDescription.Create; if i>=0 then
TfrFunctionDescription(List.Objects[i]).funName:=funName; AddDesc(Extra);
TfrFunctionDescription(List.Objects[i]).funGroup:=funGroup; end;
TfrFunctionDescription(List.Objects[i]).funDescription:=funDescription;
end
end; end;
@ -9191,32 +9239,36 @@ end;
constructor TfrStdFunctionLibrary.Create; constructor TfrStdFunctionLibrary.Create;
begin begin
inherited Create; inherited Create;
with List do Add('AVG'); {0}
begin Add('COUNT'); {1}
Add('AVG'); {0} Add('DAYOF'); {2}
Add('COUNT'); {1} Add('FORMATDATETIME'); {3}
Add('DAYOF'); {2} Add('FORMATFLOAT'); {4}
Add('FORMATDATETIME'); {3} Add('FORMATTEXT'); {5}
Add('FORMATFLOAT'); {4} Add('INPUT'); {6}
Add('FORMATTEXT'); {5} Add('LENGTH'); {7}
Add('INPUT'); {6} Add('LOWERCASE'); {8}
Add('LENGTH'); {7} Add('MAX'); {9}
Add('LOWERCASE'); {8} Add('MAXNUM'); {10}
Add('MAX'); {9} Add('MESSAGEBOX'); {11}
Add('MAXNUM'); {10} Add('MIN'); {12}
Add('MESSAGEBOX'); {11} Add('MINNUM'); {13}
Add('MIN'); {12} Add('MONTHOF'); {14}
Add('MINNUM'); {13} Add('NAMECASE'); {15}
Add('MONTHOF'); {14} Add('POS'); {16}
Add('NAMECASE'); {15} Add('STRTODATE'); {17}
Add('POS'); {16} Add('STRTOTIME'); {18}
Add('STRTODATE'); {17} Add('SUM'); {19}
Add('STRTOTIME'); {18} Add('TRIM'); {20}
Add('SUM'); {19} Add('UPPERCASE'); {21}
Add('TRIM'); {20} Add('YEAROF'); {22}
Add('UPPERCASE'); {21} // internal functions/operators
Add('YEAROF'); {22} Add('COPY', true);
end; Add('STR', true);
Add('INT', true);
Add('ROUND', true);
Add('FRAC', true);
Add('MOD', true);
end; end;
procedure TfrStdFunctionLibrary.UpdateDescriptions; procedure TfrStdFunctionLibrary.UpdateDescriptions;
@ -9242,13 +9294,17 @@ begin
AddFunctionDesc('TRIM', SStringCategory, SDescriptionTRIM); AddFunctionDesc('TRIM', SStringCategory, SDescriptionTRIM);
AddFunctionDesc('UPPERCASE', SStringCategory, SDescriptionUPPERCASE); AddFunctionDesc('UPPERCASE', SStringCategory, SDescriptionUPPERCASE);
AddFunctionDesc('POS', SStringCategory, SDescriptionPOS); AddFunctionDesc('POS', SStringCategory, SDescriptionPOS);
AddFunctionDesc('COPY', SStringCategory, SDescriptionCOPY);
AddFunctionDesc('STR', SStringCategory, SDescriptionSTR);
AddFunctionDesc('INPUT', SOtherCategory, SDescriptionINPUT); AddFunctionDesc('INPUT', SOtherCategory, SDescriptionINPUT);
AddFunctionDesc('MESSAGEBOX', SOtherCategory, SDescriptionMESSAGEBOX); AddFunctionDesc('MESSAGEBOX', SOtherCategory, SDescriptionMESSAGEBOX);
AddFunctionDesc('MAXNUM', SMathCategory, SDescriptionMAXNUM); AddFunctionDesc('MAXNUM', SMathCategory, SDescriptionMAXNUM);
AddFunctionDesc('MINNUM', SMathCategory, SDescriptionMINNUM); AddFunctionDesc('MINNUM', SMathCategory, SDescriptionMINNUM);
AddFunctionDesc('INT', SMathCategory, SDescriptionINT);
AddFunctionDesc('ROUND', SMathCategory, SDescriptionROUND);
AddFunctionDesc('FRAC', SMathCategory, SDescriptionFRAC);
end; end;
procedure TfrStdFunctionLibrary.DoFunction(FNo: Integer; p1, p2, p3: Variant; procedure TfrStdFunctionLibrary.DoFunction(FNo: Integer; p1, p2, p3: Variant;
@ -9271,7 +9327,7 @@ begin
2: val := DayOf(frParser.Calc(p1)); //Add('DAYOF'); {2} 2: val := DayOf(frParser.Calc(p1)); //Add('DAYOF'); {2}
3: val := FormatDateTime(frParser.Calc(p1), frParser.Calc(p2)); //Add('FORMATDATETIME'); {3} 3: val := FormatDateTime(frParser.Calc(p1), frParser.Calc(p2)); //Add('FORMATDATETIME'); {3}
4: val := FormatFloat(frParser.Calc(p1), frParser.Calc(p2)); //Add('FORMATFLOAT'); {4} 4: val := FormatFloat(frParser.Calc(p1), frParser.Calc(p2)); //Add('FORMATFLOAT'); {4}
// 5: val := FormatMaskText(frParser.Calc(p1) + ';0; ', frParser.Calc(p2)); //Add('FORMATTEXT'); {5} 5: val := FormatMaskText(frParser.Calc(p1) + ';0; ', frParser.Calc(p2)); //Add('FORMATTEXT'); {5}
6:begin //Add('INPUT'); {6} 6:begin //Add('INPUT'); {6}
s1 := InputBox('', frParser.Calc(p1), frParser.Calc(p2)); s1 := InputBox('', frParser.Calc(p1), frParser.Calc(p2));
val := s1; val := s1;

View File

@ -722,6 +722,21 @@ resourcestring
SDescriptionMESSAGEBOX = 'MESSAGEBOX(<Text>, <Title>, <Buttons>)/'+ SDescriptionMESSAGEBOX = 'MESSAGEBOX(<Text>, <Title>, <Buttons>)/'+
'Shows standard dialog window with title, text and buttons.'; 'Shows standard dialog window with title, text and buttons.';
SDescriptionCOPY = 'COPY(<String>, <Position>, <Length>)/'+
'Returns <Length> characters from <String> starting at <Position>.';
SDescriptionSTR = 'STR(<Value>)/'+
'Converts the given (numeric) <Value> in string.';
SDescriptionINT = 'INT(<Value>)/'+
'Returns the integer part of floating point <Value>.';
SDescriptionROUND = 'ROUND(<Value>)/'+
'Rounds the floating point <Value> to nearest integer number.';
SDescriptionFRAC = 'FRAC(<Value>)/'+
'Returns the fractional part of floating point <Value>.';
const const
frRes = 53000; frRes = 53000;

View File

@ -1,7 +1,7 @@
object lrExpresionEditorForm: TlrExpresionEditorForm object lrExpresionEditorForm: TlrExpresionEditorForm
Left = 447 Left = 215
Height = 393 Height = 393
Top = 263 Top = 171
Width = 438 Width = 438
ActiveControl = Memo1 ActiveControl = Memo1
Caption = 'Insert Expression' Caption = 'Insert Expression'
@ -11,7 +11,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
LCLVersion = '0.9.29' LCLVersion = '0.9.29'
object Label1: TLabel object Label1: TLabel
Left = 0 Left = 0
Height = 18 Height = 16
Top = 0 Top = 0
Width = 438 Width = 438
Align = alTop Align = alTop
@ -19,30 +19,31 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
ParentColor = False ParentColor = False
end end
object GroupBox1: TGroupBox object GroupBox1: TGroupBox
Left = 0 Left = 5
Height = 80 Height = 80
Top = 261 Top = 263
Width = 438 Width = 428
Align = alBottom Align = alBottom
BorderSpacing.Around = 5
Caption = 'Insert' Caption = 'Insert'
ClientHeight = 59 ClientHeight = 63
ClientWidth = 430 ClientWidth = 424
TabOrder = 0 TabOrder = 0
object Panel1: TPanel object Panel1: TPanel
Left = 0 Left = 0
Height = 34 Height = 34
Top = 0 Top = 0
Width = 430 Width = 424
Align = alTop Align = alTop
BevelOuter = bvNone BevelOuter = bvNone
ClientHeight = 34 ClientHeight = 34
ClientWidth = 430 ClientWidth = 424
TabOrder = 0 TabOrder = 0
object BitBtn1: TBitBtn object BitBtn1: TBitBtn
Left = 294 Left = 294
Height = 28 Height = 28
Top = 1 Top = 1
Width = 135 Width = 127
BorderSpacing.InnerBorder = 2 BorderSpacing.InnerBorder = 2
Caption = 'Function' Caption = 'Function'
NumGlyphs = 0 NumGlyphs = 0
@ -51,7 +52,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
TabStop = False TabStop = False
end end
object BitBtn2: TBitBtn object BitBtn2: TBitBtn
Left = 150 Left = 153
Height = 28 Height = 28
Top = 1 Top = 1
Width = 134 Width = 134
@ -63,7 +64,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
TabStop = False TabStop = False
end end
object BitBtn3: TBitBtn object BitBtn3: TBitBtn
Left = 6 Left = 13
Height = 28 Height = 28
Top = 1 Top = 1
Width = 134 Width = 134
@ -77,7 +78,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button1: TButton object Button1: TButton
Left = 0 Left = 0
Height = 25 Height = 29
Top = 34 Top = 34
Width = 30 Width = 30
Align = alLeft Align = alLeft
@ -89,7 +90,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button2: TButton object Button2: TButton
Left = 30 Left = 30
Height = 25 Height = 29
Top = 34 Top = 34
Width = 30 Width = 30
Align = alLeft Align = alLeft
@ -101,7 +102,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button3: TButton object Button3: TButton
Left = 60 Left = 60
Height = 25 Height = 29
Top = 34 Top = 34
Width = 30 Width = 30
Align = alLeft Align = alLeft
@ -113,7 +114,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button4: TButton object Button4: TButton
Left = 90 Left = 90
Height = 25 Height = 29
Top = 34 Top = 34
Width = 30 Width = 30
Align = alLeft Align = alLeft
@ -125,7 +126,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button5: TButton object Button5: TButton
Left = 120 Left = 120
Height = 25 Height = 29
Top = 34 Top = 34
Width = 30 Width = 30
Align = alLeft Align = alLeft
@ -137,7 +138,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button6: TButton object Button6: TButton
Left = 150 Left = 150
Height = 25 Height = 29
Top = 34 Top = 34
Width = 30 Width = 30
Align = alLeft Align = alLeft
@ -149,7 +150,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button7: TButton object Button7: TButton
Left = 180 Left = 180
Height = 25 Height = 29
Top = 34 Top = 34
Width = 30 Width = 30
Align = alLeft Align = alLeft
@ -161,7 +162,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button8: TButton object Button8: TButton
Left = 210 Left = 210
Height = 25 Height = 29
Top = 34 Top = 34
Width = 30 Width = 30
Align = alLeft Align = alLeft
@ -173,7 +174,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button9: TButton object Button9: TButton
Left = 240 Left = 240
Height = 25 Height = 29
Top = 34 Top = 34
Width = 30 Width = 30
Align = alLeft Align = alLeft
@ -185,7 +186,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button10: TButton object Button10: TButton
Left = 270 Left = 270
Height = 25 Height = 29
Top = 34 Top = 34
Width = 30 Width = 30
Align = alLeft Align = alLeft
@ -197,10 +198,10 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button11: TButton object Button11: TButton
Left = 360 Left = 360
Height = 25 Height = 29
Top = 34 Top = 34
Width = 70 Width = 30
Align = alClient Align = alLeft
BorderSpacing.InnerBorder = 2 BorderSpacing.InnerBorder = 2
Caption = 'not' Caption = 'not'
OnClick = Button13Click OnClick = Button13Click
@ -209,7 +210,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button12: TButton object Button12: TButton
Left = 330 Left = 330
Height = 25 Height = 29
Top = 34 Top = 34
Width = 30 Width = 30
Align = alLeft Align = alLeft
@ -221,7 +222,7 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object Button13: TButton object Button13: TButton
Left = 300 Left = 300
Height = 25 Height = 29
Top = 34 Top = 34
Width = 30 Width = 30
Align = alLeft Align = alLeft
@ -231,11 +232,21 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
TabOrder = 10 TabOrder = 10
TabStop = False TabStop = False
end end
object Button14: TButton
Left = 390
Height = 29
Top = 34
Width = 34
Align = alClient
Caption = 'mod'
OnClick = Button13Click
TabOrder = 14
end
end end
inline Memo1: TSynEdit inline Memo1: TSynEdit
Left = 0 Left = 0
Height = 243 Height = 242
Top = 18 Top = 16
Width = 438 Width = 438
Align = alClient Align = alClient
Font.Height = -16 Font.Height = -16
@ -824,8 +835,8 @@ object lrExpresionEditorForm: TlrExpresionEditorForm
end end
object ButtonPanel1: TButtonPanel object ButtonPanel1: TButtonPanel
Left = 6 Left = 6
Height = 40 Height = 38
Top = 347 Top = 349
Width = 426 Width = 426
TabOrder = 2 TabOrder = 2
ShowButtons = [pbOK, pbCancel, pbHelp] ShowButtons = [pbOK, pbCancel, pbHelp]

View File

@ -1,76 +1,79 @@
{ This is an automatically generated lazarus resource file } { This is an automatically generated lazarus resource file }
LazarusResources.Add('TlrExpresionEditorForm','FORMDATA',[ LazarusResources.Add('TlrExpresionEditorForm','FORMDATA',[
'TPF0'#22'TlrExpresionEditorForm'#21'lrExpresionEditorForm'#4'Left'#3#191#1#6 'TPF0'#22'TlrExpresionEditorForm'#21'lrExpresionEditorForm'#4'Left'#3#215#0#6
+'Height'#3#137#1#3'Top'#3#7#1#5'Width'#3#182#1#13'ActiveControl'#7#5'Memo1'#7 +'Height'#3#137#1#3'Top'#3#171#0#5'Width'#3#182#1#13'ActiveControl'#7#5'Memo1'
+'Caption'#6#17'Insert Expression'#12'ClientHeight'#3#137#1#11'ClientWidth'#3 +#7'Caption'#6#17'Insert Expression'#12'ClientHeight'#3#137#1#11'ClientWidth'
+#182#1#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.29'#0#6'TLabe' +#3#182#1#8'Position'#7#14'poScreenCenter'#10'LCLVersion'#6#6'0.9.29'#0#6'TLa'
+'l'#6'Label1'#4'Left'#2#0#6'Height'#2#18#3'Top'#2#0#5'Width'#3#182#1#5'Align' +'bel'#6'Label1'#4'Left'#2#0#6'Height'#2#16#3'Top'#2#0#5'Width'#3#182#1#5'Ali'
+#7#5'alTop'#7'Caption'#6#10'Expression'#11'ParentColor'#8#0#0#9'TGroupBox'#9 +'gn'#7#5'alTop'#7'Caption'#6#10'Expression'#11'ParentColor'#8#0#0#9'TGroupBo'
+'GroupBox1'#4'Left'#2#0#6'Height'#2'P'#3'Top'#3#5#1#5'Width'#3#182#1#5'Align' +'x'#9'GroupBox1'#4'Left'#2#5#6'Height'#2'P'#3'Top'#3#7#1#5'Width'#3#172#1#5
+#7#8'alBottom'#7'Caption'#6#6'Insert'#12'ClientHeight'#2';'#11'ClientWidth'#3 +'Align'#7#8'alBottom'#20'BorderSpacing.Around'#2#5#7'Caption'#6#6'Insert'#12
+#174#1#8'TabOrder'#2#0#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6'Height'#2'"'#3'To' +'ClientHeight'#2'?'#11'ClientWidth'#3#168#1#8'TabOrder'#2#0#0#6'TPanel'#6'Pa'
+'p'#2#0#5'Width'#3#174#1#5'Align'#7#5'alTop'#10'BevelOuter'#7#6'bvNone'#12'C' +'nel1'#4'Left'#2#0#6'Height'#2'"'#3'Top'#2#0#5'Width'#3#168#1#5'Align'#7#5'a'
+'lientHeight'#2'"'#11'ClientWidth'#3#174#1#8'TabOrder'#2#0#0#7'TBitBtn'#7'Bi' +'lTop'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'"'#11'ClientWidth'#3#168
+'tBtn1'#4'Left'#3'&'#1#6'Height'#2#28#3'Top'#2#1#5'Width'#3#135#0#25'BorderS' +#1#8'TabOrder'#2#0#0#7'TBitBtn'#7'BitBtn1'#4'Left'#3'&'#1#6'Height'#2#28#3'T'
+'pacing.InnerBorder'#2#2#7'Caption'#6#8'Function'#9'NumGlyphs'#2#0#7'OnClick' +'op'#2#1#5'Width'#2#127#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#8'Fun'
+#7#12'BitBtn1Click'#8'TabOrder'#2#2#7'TabStop'#8#0#0#7'TBitBtn'#7'BitBtn2'#4 +'ction'#9'NumGlyphs'#2#0#7'OnClick'#7#12'BitBtn1Click'#8'TabOrder'#2#2#7'Tab'
+'Left'#3#150#0#6'Height'#2#28#3'Top'#2#1#5'Width'#3#134#0#25'BorderSpacing.I' +'Stop'#8#0#0#7'TBitBtn'#7'BitBtn2'#4'Left'#3#153#0#6'Height'#2#28#3'Top'#2#1
+'nnerBorder'#2#2#7'Caption'#6#8'Variable'#9'NumGlyphs'#2#0#7'OnClick'#7#12'B' +#5'Width'#3#134#0#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#8'Variable'
+'itBtn2Click'#8'TabOrder'#2#1#7'TabStop'#8#0#0#7'TBitBtn'#7'BitBtn3'#4'Left' +#9'NumGlyphs'#2#0#7'OnClick'#7#12'BitBtn2Click'#8'TabOrder'#2#1#7'TabStop'#8
+#2#6#6'Height'#2#28#3'Top'#2#1#5'Width'#3#134#0#25'BorderSpacing.InnerBorder' +#0#0#7'TBitBtn'#7'BitBtn3'#4'Left'#2#13#6'Height'#2#28#3'Top'#2#1#5'Width'#3
+#2#2#7'Caption'#6#9'DB fields'#9'NumGlyphs'#2#0#7'OnClick'#7#12'BitBtn3Click' +#134#0#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#9'DB fields'#9'NumGlyp'
+#8'TabOrder'#2#0#7'TabStop'#8#0#0#0#7'TButton'#7'Button1'#4'Left'#2#0#6'Heig' +'hs'#2#0#7'OnClick'#7#12'BitBtn3Click'#8'TabOrder'#2#0#7'TabStop'#8#0#0#0#7
+'ht'#2#25#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'BorderSpacing.In' +'TButton'#7'Button1'#4'Left'#2#0#6'Height'#2#29#3'Top'#2'"'#5'Width'#2#30#5
+'nerBorder'#2#2#7'Caption'#6#1'+'#7'OnClick'#7#13'Button13Click'#8'TabOrder' +'Align'#7#6'alLeft'#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#1'+'#7'On'
+#2#8#7'TabStop'#8#0#0#7'TButton'#7'Button2'#4'Left'#2#30#6'Height'#2#25#3'To' +'Click'#7#13'Button13Click'#8'TabOrder'#2#8#7'TabStop'#8#0#0#7'TButton'#7'Bu'
+'p'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'BorderSpacing.InnerBorder'#2#2 +'tton2'#4'Left'#2#30#6'Height'#2#29#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'a'
+#7'Caption'#6#1'-'#7'OnClick'#7#13'Button13Click'#8'TabOrder'#2#1#7'TabStop' +'lLeft'#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#1'-'#7'OnClick'#7#13
+#8#0#0#7'TButton'#7'Button3'#4'Left'#2'<'#6'Height'#2#25#3'Top'#2'"'#5'Width' +'Button13Click'#8'TabOrder'#2#1#7'TabStop'#8#0#0#7'TButton'#7'Button3'#4'Lef'
+#2#30#5'Align'#7#6'alLeft'#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#1 +'t'#2'<'#6'Height'#2#29#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'Bo'
+'*'#7'OnClick'#7#13'Button13Click'#8'TabOrder'#2#2#7'TabStop'#8#0#0#7'TButto' +'rderSpacing.InnerBorder'#2#2#7'Caption'#6#1'*'#7'OnClick'#7#13'Button13Clic'
+'n'#7'Button4'#4'Left'#2'Z'#6'Height'#2#25#3'Top'#2'"'#5'Width'#2#30#5'Align' +'k'#8'TabOrder'#2#2#7'TabStop'#8#0#0#7'TButton'#7'Button4'#4'Left'#2'Z'#6'He'
+#7#6'alLeft'#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#1'/'#7'OnClick'#7 +'ight'#2#29#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'BorderSpacing.'
+#13'Button13Click'#8'TabOrder'#2#3#7'TabStop'#8#0#0#7'TButton'#7'Button5'#4 +'InnerBorder'#2#2#7'Caption'#6#1'/'#7'OnClick'#7#13'Button13Click'#8'TabOrde'
+'Left'#2'x'#6'Height'#2#25#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25 +'r'#2#3#7'TabStop'#8#0#0#7'TButton'#7'Button5'#4'Left'#2'x'#6'Height'#2#29#3
+'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#1'='#7'OnClick'#7#13'Button13Cl' +'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'BorderSpacing.InnerBorder'#2
+'ick'#8'TabOrder'#2#4#7'TabStop'#8#0#0#7'TButton'#7'Button6'#4'Left'#3#150#0 +#2#7'Caption'#6#1'='#7'OnClick'#7#13'Button13Click'#8'TabOrder'#2#4#7'TabSto'
+#6'Height'#2#25#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'BorderSpac' +'p'#8#0#0#7'TButton'#7'Button6'#4'Left'#3#150#0#6'Height'#2#29#3'Top'#2'"'#5
+'ing.InnerBorder'#2#2#7'Caption'#6#2'<>'#7'OnClick'#7#13'Button13Click'#8'Ta' +'Width'#2#30#5'Align'#7#6'alLeft'#25'BorderSpacing.InnerBorder'#2#2#7'Captio'
+'bOrder'#2#9#7'TabStop'#8#0#0#7'TButton'#7'Button7'#4'Left'#3#180#0#6'Height' +'n'#6#2'<>'#7'OnClick'#7#13'Button13Click'#8'TabOrder'#2#9#7'TabStop'#8#0#0#7
+#2#25#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'BorderSpacing.InnerB' +'TButton'#7'Button7'#4'Left'#3#180#0#6'Height'#2#29#3'Top'#2'"'#5'Width'#2#30
+'order'#2#2#7'Caption'#6#1'>'#7'OnClick'#7#13'Button13Click'#8'TabOrder'#2#12 +#5'Align'#7#6'alLeft'#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#1'>'#7
+#7'TabStop'#8#0#0#7'TButton'#7'Button8'#4'Left'#3#210#0#6'Height'#2#25#3'Top' +'OnClick'#7#13'Button13Click'#8'TabOrder'#2#12#7'TabStop'#8#0#0#7'TButton'#7
+'Button8'#4'Left'#3#210#0#6'Height'#2#29#3'Top'#2'"'#5'Width'#2#30#5'Align'#7
+#6'alLeft'#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#1'<'#7'OnClick'#7
+#13'Button13Click'#8'TabOrder'#2#7#7'TabStop'#8#0#0#7'TButton'#7'Button9'#4
+'Left'#3#240#0#6'Height'#2#29#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'
+#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#2'>='#7'OnClick'#7#13'Button'
+'13Click'#8'TabOrder'#2#6#7'TabStop'#8#0#0#7'TButton'#8'Button10'#4'Left'#3
+#14#1#6'Height'#2#29#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'Borde'
+'rSpacing.InnerBorder'#2#2#7'Caption'#6#2'<='#7'OnClick'#7#13'Button13Click'
+#8'TabOrder'#2#5#7'TabStop'#8#0#0#7'TButton'#8'Button11'#4'Left'#3'h'#1#6'He'
+'ight'#2#29#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'BorderSpacing.'
+'InnerBorder'#2#2#7'Caption'#6#3'not'#7'OnClick'#7#13'Button13Click'#8'TabOr'
+'der'#2#13#7'TabStop'#8#0#0#7'TButton'#8'Button12'#4'Left'#3'J'#1#6'Height'#2
+#29#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'BorderSpacing.InnerBor'
+'der'#2#2#7'Caption'#6#2'or'#7'OnClick'#7#13'Button13Click'#8'TabOrder'#2#11
+#7'TabStop'#8#0#0#7'TButton'#8'Button13'#4'Left'#3','#1#6'Height'#2#29#3'Top'
+#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'BorderSpacing.InnerBorder'#2#2#7 +#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'BorderSpacing.InnerBorder'#2#2#7
+'Caption'#6#1'<'#7'OnClick'#7#13'Button13Click'#8'TabOrder'#2#7#7'TabStop'#8 +'Caption'#6#3'and'#7'OnClick'#7#13'Button13Click'#8'TabOrder'#2#10#7'TabStop'
+#0#0#7'TButton'#7'Button9'#4'Left'#3#240#0#6'Height'#2#25#3'Top'#2'"'#5'Widt' +#8#0#0#7'TButton'#8'Button14'#4'Left'#3#134#1#6'Height'#2#29#3'Top'#2'"'#5'W'
+'h'#2#30#5'Align'#7#6'alLeft'#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6 +'idth'#2'"'#5'Align'#7#8'alClient'#7'Caption'#6#3'mod'#7'OnClick'#7#13'Butto'
+#2'>='#7'OnClick'#7#13'Button13Click'#8'TabOrder'#2#6#7'TabStop'#8#0#0#7'TBu' +'n13Click'#8'TabOrder'#2#14#0#0#0#244#8'TSynEdit'#5'Memo1'#4'Left'#2#0#6'Hei'
+'tton'#8'Button10'#4'Left'#3#14#1#6'Height'#2#25#3'Top'#2'"'#5'Width'#2#30#5 +'ght'#3#242#0#3'Top'#2#16#5'Width'#3#182#1#5'Align'#7#8'alClient'#11'Font.He'
+'Align'#7#6'alLeft'#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#2'<='#7'O' +'ight'#2#240#9'Font.Name'#6#7'courier'#10'Font.Pitch'#7#7'fpFixed'#12'Font.Q'
+'nClick'#7#13'Button13Click'#8'TabOrder'#2#5#7'TabStop'#8#0#0#7'TButton'#8'B' +'uality'#7#16'fqNonAntialiased'#11'ParentColor'#8#10'ParentFont'#8#8'TabOrde'
+'utton11'#4'Left'#3'h'#1#6'Height'#2#25#3'Top'#2'"'#5'Width'#2'F'#5'Align'#7 +'r'#2#1#12'Gutter.Width'#2'='#19'Gutter.MouseActions'#14#1#5'Shift'#11#0#9'S'
+#8'alClient'#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#3'not'#7'OnClick' ,'hiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8'ClickDir'#7
+#7#13'Button13Click'#8'TabOrder'#2#13#7'TabStop'#8#0#0#7'TButton'#8'Button12' +#6'cdDown'#7'Command'#2#13#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#1#5
+#4'Left'#3'J'#1#6'Height'#2#25#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft' +'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#7'mbRight'#10'ClickCount'#7#8'ccS'
+#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#2'or'#7'OnClick'#7#13'Button' +'ingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2#12#9'MoveCaret'#8#6'Option'#2#0#8
+'13Click'#8'TabOrder'#2#11#7'TabStop'#8#0#0#7'TButton'#8'Button13'#4'Left'#3 +'Priority'#2#0#0#0#10'Keystrokes'#14#1#7'Command'#7#4'ecUp'#8'ShortCut'#2'&'
+','#1#6'Height'#2#25#3'Top'#2'"'#5'Width'#2#30#5'Align'#7#6'alLeft'#25'Borde' +#0#1#7'Command'#7#7'ecSelUp'#8'ShortCut'#3'& '#0#1#7'Command'#7#10'ecScrollU'
+'rSpacing.InnerBorder'#2#2#7'Caption'#6#3'and'#7'OnClick'#7#13'Button13Click' +'p'#8'ShortCut'#3'&@'#0#1#7'Command'#7#6'ecDown'#8'ShortCut'#2'('#0#1#7'Comm'
+#8'TabOrder'#2#10#7'TabStop'#8#0#0#0#244#8'TSynEdit'#5'Memo1'#4'Left'#2#0#6 +'and'#7#9'ecSelDown'#8'ShortCut'#3'( '#0#1#7'Command'#7#12'ecScrollDown'#8'S'
+'Height'#3#243#0#3'Top'#2#18#5'Width'#3#182#1#5'Align'#7#8'alClient'#11'Font' +'hortCut'#3'(@'#0#1#7'Command'#7#6'ecLeft'#8'ShortCut'#2'%'#0#1#7'Command'#7
+'.Height'#2#240#9'Font.Name'#6#7'courier'#10'Font.Pitch'#7#7'fpFixed'#12'Fon'
+'t.Quality'#7#16'fqNonAntialiased'#11'ParentColor'#8#10'ParentFont'#8#8'TabO'
+'rder'#2#1#12'Gutter.Width'#2'='#19'Gutter.MouseActions'#14#1#5'Shift'#11#0#9
+'ShiftMask'#11#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8'ClickDir'
+#7#6'cdDown'#7'Command'#2#13#9'MoveCaret'#8#6'Option'#2#0#8'Priority'#2#0#0#1
+#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#7'mbRight'#10'ClickCount'#7#8'c'
,'cSingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2#12#9'MoveCaret'#8#6'Option'#2#0
+#8'Priority'#2#0#0#0#10'Keystrokes'#14#1#7'Command'#7#4'ecUp'#8'ShortCut'#2
+'&'#0#1#7'Command'#7#7'ecSelUp'#8'ShortCut'#3'& '#0#1#7'Command'#7#10'ecScro'
+'llUp'#8'ShortCut'#3'&@'#0#1#7'Command'#7#6'ecDown'#8'ShortCut'#2'('#0#1#7'C'
+'ommand'#7#9'ecSelDown'#8'ShortCut'#3'( '#0#1#7'Command'#7#12'ecScrollDown'#8
+'ShortCut'#3'(@'#0#1#7'Command'#7#6'ecLeft'#8'ShortCut'#2'%'#0#1#7'Command'#7
+#9'ecSelLeft'#8'ShortCut'#3'% '#0#1#7'Command'#7#10'ecWordLeft'#8'ShortCut'#3 +#9'ecSelLeft'#8'ShortCut'#3'% '#0#1#7'Command'#7#10'ecWordLeft'#8'ShortCut'#3
+'%@'#0#1#7'Command'#7#13'ecSelWordLeft'#8'ShortCut'#3'%`'#0#1#7'Command'#7#7 +'%@'#0#1#7'Command'#7#13'ecSelWordLeft'#8'ShortCut'#3'%`'#0#1#7'Command'#7#7
+'ecRight'#8'ShortCut'#2''''#0#1#7'Command'#7#10'ecSelRight'#8'ShortCut'#3'''' +'ecRight'#8'ShortCut'#2''''#0#1#7'Command'#7#10'ecSelRight'#8'ShortCut'#3''''
@ -126,10 +129,10 @@ LazarusResources.Add('TlrExpresionEditorForm','FORMDATA',[
+#0#1#5'Shift'#11#7'ssShift'#0#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6'Button' +#0#1#5'Shift'#11#7'ssShift'#0#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6'Button'
+#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command' +#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'
+#2#1#9'MoveCaret'#9#6'Option'#2#1#8'Priority'#2#0#0#1#5'Shift'#11#5'ssAlt'#0 +#2#1#9'MoveCaret'#9#6'Option'#2#1#8'Priority'#2#0#0#1#5'Shift'#11#5'ssAlt'#0
+#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7 ,#9'ShiftMask'#11#7'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7
+#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'#2#3#9'MoveCaret'#9#6'Option' +#8'ccSingle'#8'ClickDir'#7#6'cdDown'#7'Command'#2#3#9'MoveCaret'#9#6'Option'
+#2#0#8'Priority'#2#0#0#1#5'Shift'#11#7'ssShift'#5'ssAlt'#0#9'ShiftMask'#11#7 +#2#0#8'Priority'#2#0#0#1#5'Shift'#11#7'ssShift'#5'ssAlt'#0#9'ShiftMask'#11#7
,'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'Cl' +'ssShift'#5'ssAlt'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#8'ccSingle'#8'Cl'
+'ickDir'#7#6'cdDown'#7'Command'#2#3#9'MoveCaret'#9#6'Option'#2#1#8'Priority' +'ickDir'#7#6'cdDown'#7'Command'#2#3#9'MoveCaret'#9#6'Option'#2#1#8'Priority'
+#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#7'mbRight'#10'ClickCoun' +#2#0#0#1#5'Shift'#11#0#9'ShiftMask'#11#0#6'Button'#7#7'mbRight'#10'ClickCoun'
+'t'#7#8'ccSingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2#12#9'MoveCaret'#8#6'Opt' +'t'#7#8'ccSingle'#8'ClickDir'#7#4'cdUp'#7'Command'#2#12#9'MoveCaret'#8#6'Opt'
@ -176,6 +179,6 @@ LazarusResources.Add('TlrExpresionEditorForm','FORMDATA',[
+'hiftMask'#11#6'ssCtrl'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8 +'hiftMask'#11#6'ssCtrl'#0#6'Button'#7#6'mbLeft'#10'ClickCount'#7#5'ccAny'#8
+'ClickDir'#7#6'cdDown'#7'Command'#2#15#9'MoveCaret'#8#6'Option'#2#1#8'Priori' +'ClickDir'#7#6'cdDown'#7'Command'#2#15#9'MoveCaret'#8#6'Option'#2#1#8'Priori'
+'ty'#2#0#0#0#0#0#0#0#12'TButtonPanel'#12'ButtonPanel1'#4'Left'#2#6#6'Height' +'ty'#2#0#0#0#0#0#0#0#12'TButtonPanel'#12'ButtonPanel1'#4'Left'#2#6#6'Height'
+#2'('#3'Top'#3'['#1#5'Width'#3#170#1#8'TabOrder'#2#2#11'ShowButtons'#11#4'pb' +#2'&'#3'Top'#3']'#1#5'Width'#3#170#1#8'TabOrder'#2#2#11'ShowButtons'#11#4'pb'
+'OK'#8'pbCancel'#6'pbHelp'#0#0#0#0 +'OK'#8'pbCancel'#6'pbHelp'#0#0#0#0
]); ]);

View File

@ -21,6 +21,7 @@ type
Button11: TButton; Button11: TButton;
Button12: TButton; Button12: TButton;
Button13: TButton; Button13: TButton;
Button14: TButton;
Button2: TButton; Button2: TButton;
Button3: TButton; Button3: TButton;
Button4: TButton; Button4: TButton;

View File

@ -13,26 +13,31 @@ object LR_FunctEditorForm: TLR_FunctEditorForm
OnClose = FormClose OnClose = FormClose
OnCreate = FormCreate OnCreate = FormCreate
Position = poDesktopCenter Position = poDesktopCenter
LCLVersion = '0.9.25' LCLVersion = '0.9.29'
object ListBox1: TListBox object ListBox1: TListBox
Height = 216 Left = 0
Height = 188
Top = 0
Width = 181 Width = 181
Align = alLeft Align = alLeft
ItemHeight = 0
OnClick = ListBox1Click OnClick = ListBox1Click
TabOrder = 0 TabOrder = 0
TopIndex = -1
end end
object Panel1: TPanel object Panel1: TPanel
Height = 64 Left = 0
Top = 216 Height = 92
Top = 188
Width = 420 Width = 420
Align = alBottom Align = alBottom
BevelOuter = bvLowered BevelOuter = bvLowered
ClientHeight = 64 ClientHeight = 92
ClientWidth = 420 ClientWidth = 420
TabOrder = 1 TabOrder = 1
object Label1: TLabel object Label1: TLabel
Left = 1 Left = 1
Height = 14 Height = 16
Top = 1 Top = 1
Width = 418 Width = 418
Align = alTop Align = alTop
@ -43,8 +48,8 @@ object LR_FunctEditorForm: TLR_FunctEditorForm
end end
object Label2: TLabel object Label2: TLabel
Left = 1 Left = 1
Height = 48 Height = 74
Top = 15 Top = 17
Width = 418 Width = 418
Align = alClient Align = alClient
Caption = 'Label2' Caption = 'Label2'
@ -56,19 +61,24 @@ object LR_FunctEditorForm: TLR_FunctEditorForm
end end
object Splitter1: TSplitter object Splitter1: TSplitter
Left = 181 Left = 181
Height = 216 Height = 188
Top = 0
Width = 5 Width = 5
end end
object ListBox2: TListBox object ListBox2: TListBox
Left = 186 Left = 186
Height = 216 Height = 188
Top = 0
Width = 234 Width = 234
Align = alClient Align = alClient
ItemHeight = 0
OnClick = ListBox2Click OnClick = ListBox2Click
OnDblClick = ListBox2DblClick OnDblClick = ListBox2DblClick
TabOrder = 2 TabOrder = 2
TopIndex = -1
end end
object Panel2: TPanel object Panel2: TPanel
Left = 0
Height = 40 Height = 40
Top = 280 Top = 280
Width = 420 Width = 420

View File

@ -1,4 +1,4 @@
{ Ýòî - ôàéë ðåñóðñîâ, àâòîìàòè÷åñêè ñîçäàííûé lazarus } { This is an automatically generated lazarus resource file }
LazarusResources.Add('TLR_FunctEditorForm','FORMDATA',[ LazarusResources.Add('TLR_FunctEditorForm','FORMDATA',[
'TPF0'#19'TLR_FunctEditorForm'#18'LR_FunctEditorForm'#4'Left'#3#215#0#6'Heigh' 'TPF0'#19'TLR_FunctEditorForm'#18'LR_FunctEditorForm'#4'Left'#3#215#0#6'Heigh'
@ -7,23 +7,25 @@ LazarusResources.Add('TLR_FunctEditorForm','FORMDATA',[
+#12'biSystemMenu'#6'biHelp'#0#7'Caption'#6#18'LR_FunctEditorForm'#12'ClientH' +#12'biSystemMenu'#6'biHelp'#0#7'Caption'#6#18'LR_FunctEditorForm'#12'ClientH'
+'eight'#3'@'#1#11'ClientWidth'#3#164#1#7'OnClose'#7#9'FormClose'#8'OnCreate' +'eight'#3'@'#1#11'ClientWidth'#3#164#1#7'OnClose'#7#9'FormClose'#8'OnCreate'
+#7#10'FormCreate'#8'Position'#7#15'poDesktopCenter'#10'LCLVersion'#6#6'0.9.2' +#7#10'FormCreate'#8'Position'#7#15'poDesktopCenter'#10'LCLVersion'#6#6'0.9.2'
+'5'#0#8'TListBox'#8'ListBox1'#6'Height'#3#216#0#5'Width'#3#181#0#5'Align'#7#6 +'9'#0#8'TListBox'#8'ListBox1'#4'Left'#2#0#6'Height'#3#188#0#3'Top'#2#0#5'Wid'
+'alLeft'#7'OnClick'#7#13'ListBox1Click'#8'TabOrder'#2#0#0#0#6'TPanel'#6'Pane' +'th'#3#181#0#5'Align'#7#6'alLeft'#10'ItemHeight'#2#0#7'OnClick'#7#13'ListBox'
+'l1'#6'Height'#2'@'#3'Top'#3#216#0#5'Width'#3#164#1#5'Align'#7#8'alBottom'#10 +'1Click'#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#6'TPanel'#6'Panel1'#4'Left'#2
+'BevelOuter'#7#9'bvLowered'#12'ClientHeight'#2'@'#11'ClientWidth'#3#164#1#8 +#0#6'Height'#2'\'#3'Top'#3#188#0#5'Width'#3#164#1#5'Align'#7#8'alBottom'#10
+'TabOrder'#2#1#0#6'TLabel'#6'Label1'#4'Left'#2#1#6'Height'#2#14#3'Top'#2#1#5 +'BevelOuter'#7#9'bvLowered'#12'ClientHeight'#2'\'#11'ClientWidth'#3#164#1#8
+'TabOrder'#2#1#0#6'TLabel'#6'Label1'#4'Left'#2#1#6'Height'#2#16#3'Top'#2#1#5
+'Width'#3#162#1#5'Align'#7#5'alTop'#7'Caption'#6#6'Label1'#5'Color'#7#7'clWh' +'Width'#3#162#1#5'Align'#7#5'alTop'#7'Caption'#6#6'Label1'#5'Color'#7#7'clWh'
+'ite'#11'ParentColor'#8#11'Transparent'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#1 +'ite'#11'ParentColor'#8#11'Transparent'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#1
+#6'Height'#2'0'#3'Top'#2#15#5'Width'#3#162#1#5'Align'#7#8'alClient'#7'Captio' +#6'Height'#2'J'#3'Top'#2#17#5'Width'#3#162#1#5'Align'#7#8'alClient'#7'Captio'
+'n'#6#6'Label2'#5'Color'#7#8'clInfoBk'#11'ParentColor'#8#11'Transparent'#8#8 +'n'#6#6'Label2'#5'Color'#7#8'clInfoBk'#11'ParentColor'#8#11'Transparent'#8#8
+'WordWrap'#9#0#0#0#9'TSplitter'#9'Splitter1'#4'Left'#3#181#0#6'Height'#3#216 +'WordWrap'#9#0#0#0#9'TSplitter'#9'Splitter1'#4'Left'#3#181#0#6'Height'#3#188
+#0#5'Width'#2#5#0#0#8'TListBox'#8'ListBox2'#4'Left'#3#186#0#6'Height'#3#216#0 +#0#3'Top'#2#0#5'Width'#2#5#0#0#8'TListBox'#8'ListBox2'#4'Left'#3#186#0#6'Hei'
+#5'Width'#3#234#0#5'Align'#7#8'alClient'#7'OnClick'#7#13'ListBox2Click'#10'O' +'ght'#3#188#0#3'Top'#2#0#5'Width'#3#234#0#5'Align'#7#8'alClient'#10'ItemHeig'
+'nDblClick'#7#16'ListBox2DblClick'#8'TabOrder'#2#2#0#0#6'TPanel'#6'Panel2'#6 +'ht'#2#0#7'OnClick'#7#13'ListBox2Click'#10'OnDblClick'#7#16'ListBox2DblClick'
+'Height'#2'('#3'Top'#3#24#1#5'Width'#3#164#1#5'Align'#7#8'alBottom'#10'Bevel' +#8'TabOrder'#2#2#8'TopIndex'#2#255#0#0#6'TPanel'#6'Panel2'#4'Left'#2#0#6'Hei'
+'Outer'#7#6'bvNone'#12'ClientHeight'#2'('#11'ClientWidth'#3#164#1#8'TabOrder' +'ght'#2'('#3'Top'#3#24#1#5'Width'#3#164#1#5'Align'#7#8'alBottom'#10'BevelOut'
+#2#3#0#7'TBitBtn'#7'BitBtn1'#4'Left'#3#1#1#6'Height'#2#30#3'Top'#2#6#5'Width' +'er'#7#6'bvNone'#12'ClientHeight'#2'('#11'ClientWidth'#3#164#1#8'TabOrder'#2
+#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2#7 +#3#0#7'TBitBtn'#7'BitBtn1'#4'Left'#3#1#1#6'Height'#2#30#3'Top'#2#6#5'Width'#2
+'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2#7
+'Caption'#6#3'&Ok'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#9'NumG' +'Caption'#6#3'&Ok'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#9'NumG'
+'lyphs'#2#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn2'#4'Left'#3'R'#1#6'Heigh' +'lyphs'#2#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn2'#4'Left'#3'R'#1#6'Heigh'
+'t'#2#30#3'Top'#2#6#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'Bor' +'t'#2#30#3'Top'#2#6#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'Bor'

View File

@ -45,11 +45,11 @@ begin
for i:=0 to frFunctionsCount-1 do for i:=0 to frFunctionsCount-1 do
begin begin
F:=frFunctions[i].FunctionLibrary; F:=frFunctions[i].FunctionLibrary;
for j:=0 to F.List.Count-1 do for j:=0 to F.FunctionCount-1 do
begin begin
if Assigned(F.List.Objects[j]) then FD := F.Description[j];
if Assigned(FD) then
begin begin
FD:=TfrFunctionDescription(F.List.Objects[j]);
if ListBox1.Items.IndexOf(FD.funGroup)=-1 then if ListBox1.Items.IndexOf(FD.funGroup)=-1 then
ListBox1.Items.Add(FD.funGroup); ListBox1.Items.Add(FD.funGroup);
end end
@ -87,11 +87,11 @@ begin
for i:=0 to frFunctionsCount-1 do for i:=0 to frFunctionsCount-1 do
begin begin
F:=frFunctions[i].FunctionLibrary; F:=frFunctions[i].FunctionLibrary;
for j:=0 to F.List.Count-1 do for j:=0 to F.FunctionCount-1 do
begin begin
if Assigned(F.List.Objects[j]) then FD := F.Description[j];
if Assigned(FD) then
begin begin
FD:=TfrFunctionDescription(F.List.Objects[j]);
if FD.funGroup = GrpName then if FD.funGroup = GrpName then
begin begin
ListBox2.Items.Add(FD.funName); ListBox2.Items.Add(FD.funName);

View File

@ -5,24 +5,26 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
Width = 412 Width = 412
HorzScrollBar.Page = 411 HorzScrollBar.Page = 411
VertScrollBar.Page = 299 VertScrollBar.Page = 299
ActiveControl = BitBtn1 ActiveControl = Panel1
BorderIcons = [biSystemMenu, biHelp] BorderIcons = [biSystemMenu, biHelp]
Caption = 'LR_FunctEditor1Form' Caption = 'LR_FunctEditor1Form'
ClientHeight = 300 ClientHeight = 300
ClientWidth = 412 ClientWidth = 412
Position = poDesktopCenter Position = poDesktopCenter
LCLVersion = '0.9.25' LCLVersion = '0.9.29'
object Panel1: TPanel object Panel1: TPanel
Height = 64 Left = 0
Height = 84
Top = 0
Width = 412 Width = 412
Align = alTop Align = alTop
BevelOuter = bvLowered BevelOuter = bvLowered
ClientHeight = 64 ClientHeight = 84
ClientWidth = 412 ClientWidth = 412
TabOrder = 0 TabOrder = 0
object Label1: TLabel object Label1: TLabel
Left = 1 Left = 1
Height = 14 Height = 16
Top = 1 Top = 1
Width = 410 Width = 410
Align = alTop Align = alTop
@ -33,8 +35,8 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
end end
object Label2: TLabel object Label2: TLabel
Left = 1 Left = 1
Height = 48 Height = 66
Top = 15 Top = 17
Width = 410 Width = 410
Align = alClient Align = alClient
Caption = 'Label2' Caption = 'Label2'
@ -45,6 +47,7 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
end end
end end
object Panel2: TPanel object Panel2: TPanel
Left = 0
Height = 40 Height = 40
Top = 260 Top = 260
Width = 412 Width = 412
@ -82,35 +85,36 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
end end
end end
object GroupBox1: TGroupBox object GroupBox1: TGroupBox
Height = 196 Left = 0
Top = 64 Height = 176
Top = 84
Width = 412 Width = 412
Align = alClient Align = alClient
Caption = 'Arguments' Caption = 'Arguments'
ClientHeight = 178 ClientHeight = 159
ClientWidth = 408 ClientWidth = 408
TabOrder = 2 TabOrder = 2
object Label3: TLabel object Label3: TLabel
Left = 6 Left = 6
Height = 14 Height = 16
Top = 14 Top = 14
Width = 55 Width = 68
Caption = 'Argument 1' Caption = 'Argument 1'
ParentColor = False ParentColor = False
end end
object Label4: TLabel object Label4: TLabel
Left = 6 Left = 6
Height = 14 Height = 16
Top = 49 Top = 49
Width = 55 Width = 68
Caption = 'Argument 2' Caption = 'Argument 2'
ParentColor = False ParentColor = False
end end
object Label5: TLabel object Label5: TLabel
Left = 6 Left = 6
Height = 14 Height = 16
Top = 81 Top = 81
Width = 55 Width = 68
Caption = 'Argument 3' Caption = 'Argument 3'
ParentColor = False ParentColor = False
end end
@ -165,7 +169,7 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
end end
object Edit1: TEdit object Edit1: TEdit
Left = 78 Left = 78
Height = 23 Height = 25
Top = 5 Top = 5
Width = 296 Width = 296
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
@ -173,7 +177,7 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
end end
object Edit2: TEdit object Edit2: TEdit
Left = 78 Left = 78
Height = 23 Height = 25
Top = 40 Top = 40
Width = 296 Width = 296
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]
@ -230,7 +234,7 @@ object LR_FunctEditor1Form: TLR_FunctEditor1Form
end end
object Edit3: TEdit object Edit3: TEdit
Left = 78 Left = 78
Height = 23 Height = 25
Top = 72 Top = 72
Width = 296 Width = 296
Anchors = [akTop, akLeft, akRight] Anchors = [akTop, akLeft, akRight]

View File

@ -1,142 +1,142 @@
{ Ýòî - ôàéë ðåñóðñîâ, àâòîìàòè÷åñêè ñîçäàííûé lazarus } { This is an automatically generated lazarus resource file }
LazarusResources.Add('TLR_FunctEditor1Form','FORMDATA',[ LazarusResources.Add('TLR_FunctEditor1Form','FORMDATA',[
'TPF0'#20'TLR_FunctEditor1Form'#19'LR_FunctEditor1Form'#4'Left'#3#175#0#6'Hei' 'TPF0'#20'TLR_FunctEditor1Form'#19'LR_FunctEditor1Form'#4'Left'#3#175#0#6'Hei'
+'ght'#3','#1#3'Top'#3#161#0#5'Width'#3#156#1#18'HorzScrollBar.Page'#3#155#1 +'ght'#3','#1#3'Top'#3#161#0#5'Width'#3#156#1#18'HorzScrollBar.Page'#3#155#1
+#18'VertScrollBar.Page'#3'+'#1#13'ActiveControl'#7#7'BitBtn1'#11'BorderIcons' +#18'VertScrollBar.Page'#3'+'#1#13'ActiveControl'#7#6'Panel1'#11'BorderIcons'
+#11#12'biSystemMenu'#6'biHelp'#0#7'Caption'#6#19'LR_FunctEditor1Form'#12'Cli' +#11#12'biSystemMenu'#6'biHelp'#0#7'Caption'#6#19'LR_FunctEditor1Form'#12'Cli'
+'entHeight'#3','#1#11'ClientWidth'#3#156#1#8'Position'#7#15'poDesktopCenter' +'entHeight'#3','#1#11'ClientWidth'#3#156#1#8'Position'#7#15'poDesktopCenter'
+#10'LCLVersion'#6#6'0.9.25'#0#6'TPanel'#6'Panel1'#6'Height'#2'@'#5'Width'#3 +#10'LCLVersion'#6#6'0.9.29'#0#6'TPanel'#6'Panel1'#4'Left'#2#0#6'Height'#2'T'
+#156#1#5'Align'#7#5'alTop'#10'BevelOuter'#7#9'bvLowered'#12'ClientHeight'#2 +#3'Top'#2#0#5'Width'#3#156#1#5'Align'#7#5'alTop'#10'BevelOuter'#7#9'bvLowere'
+'@'#11'ClientWidth'#3#156#1#8'TabOrder'#2#0#0#6'TLabel'#6'Label1'#4'Left'#2#1 +'d'#12'ClientHeight'#2'T'#11'ClientWidth'#3#156#1#8'TabOrder'#2#0#0#6'TLabel'
+#6'Height'#2#14#3'Top'#2#1#5'Width'#3#154#1#5'Align'#7#5'alTop'#7'Caption'#6 +#6'Label1'#4'Left'#2#1#6'Height'#2#16#3'Top'#2#1#5'Width'#3#154#1#5'Align'#7
+#6'Label1'#5'Color'#7#7'clWhite'#11'ParentColor'#8#11'Transparent'#8#0#0#6'T' +#5'alTop'#7'Caption'#6#6'Label1'#5'Color'#7#7'clWhite'#11'ParentColor'#8#11
+'Label'#6'Label2'#4'Left'#2#1#6'Height'#2'0'#3'Top'#2#15#5'Width'#3#154#1#5 +'Transparent'#8#0#0#6'TLabel'#6'Label2'#4'Left'#2#1#6'Height'#2'B'#3'Top'#2
+'Align'#7#8'alClient'#7'Caption'#6#6'Label2'#5'Color'#7#8'clInfoBk'#11'Paren' +#17#5'Width'#3#154#1#5'Align'#7#8'alClient'#7'Caption'#6#6'Label2'#5'Color'#7
+'tColor'#8#11'Transparent'#8#8'WordWrap'#9#0#0#0#6'TPanel'#6'Panel2'#6'Heigh' +#8'clInfoBk'#11'ParentColor'#8#11'Transparent'#8#8'WordWrap'#9#0#0#0#6'TPane'
+'t'#2'('#3'Top'#3#4#1#5'Width'#3#156#1#5'Align'#7#8'alBottom'#10'BevelOuter' +'l'#6'Panel2'#4'Left'#2#0#6'Height'#2'('#3'Top'#3#4#1#5'Width'#3#156#1#5'Ali'
+#7#6'bvNone'#12'ClientHeight'#2'('#11'ClientWidth'#3#156#1#8'TabOrder'#2#1#0 +'gn'#7#8'alBottom'#10'BevelOuter'#7#6'bvNone'#12'ClientHeight'#2'('#11'Clien'
+#7'TBitBtn'#7'BitBtn1'#4'Left'#3#252#0#6'Height'#2#30#3'Top'#2#6#5'Width'#2 +'tWidth'#3#156#1#8'TabOrder'#2#1#0#7'TBitBtn'#7'BitBtn1'#4'Left'#3#252#0#6'H'
+'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2#7 +'eight'#2#30#3'Top'#2#6#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25
+'Caption'#6#3'&Ok'#7'Default'#9#4'Kind'#7#4'bkOK'#11'ModalResult'#2#1#9'NumG' +'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#3'&Ok'#7'Default'#9#4'Kind'#7#4
+'lyphs'#2#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#7'BitBtn2'#4'Left'#3'L'#1#6'Heigh' +'bkOK'#11'ModalResult'#2#1#9'NumGlyphs'#2#0#8'TabOrder'#2#0#0#0#7'TBitBtn'#7
+'t'#2#30#3'Top'#2#6#5'Width'#2'K'#7'Anchors'#11#5'akTop'#7'akRight'#0#25'Bor' +'BitBtn2'#4'Left'#3'L'#1#6'Height'#2#30#3'Top'#2#6#5'Width'#2'K'#7'Anchors'
+'derSpacing.InnerBorder'#2#2#7'Caption'#6#6'Cancel'#4'Kind'#7#8'bkCancel'#11 +#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2#7'Caption'#6#6'C'
+'ModalResult'#2#2#9'NumGlyphs'#2#0#8'TabOrder'#2#1#0#0#0#9'TGroupBox'#9'Grou' +'ancel'#4'Kind'#7#8'bkCancel'#11'ModalResult'#2#2#9'NumGlyphs'#2#0#8'TabOrde'
+'pBox1'#6'Height'#3#196#0#3'Top'#2'@'#5'Width'#3#156#1#5'Align'#7#8'alClient' +'r'#2#1#0#0#0#9'TGroupBox'#9'GroupBox1'#4'Left'#2#0#6'Height'#3#176#0#3'Top'
+#7'Caption'#6#9'Arguments'#12'ClientHeight'#3#178#0#11'ClientWidth'#3#152#1#8 +#2'T'#5'Width'#3#156#1#5'Align'#7#8'alClient'#7'Caption'#6#9'Arguments'#12'C'
+'TabOrder'#2#2#0#6'TLabel'#6'Label3'#4'Left'#2#6#6'Height'#2#14#3'Top'#2#14#5 +'lientHeight'#3#159#0#11'ClientWidth'#3#152#1#8'TabOrder'#2#2#0#6'TLabel'#6
+'Width'#2'7'#7'Caption'#6#10'Argument 1'#11'ParentColor'#8#0#0#6'TLabel'#6'L' +'Label3'#4'Left'#2#6#6'Height'#2#16#3'Top'#2#14#5'Width'#2'D'#7'Caption'#6#10
+'abel4'#4'Left'#2#6#6'Height'#2#14#3'Top'#2'1'#5'Width'#2'7'#7'Caption'#6#10 +'Argument 1'#11'ParentColor'#8#0#0#6'TLabel'#6'Label4'#4'Left'#2#6#6'Height'
+'Argument 2'#11'ParentColor'#8#0#0#6'TLabel'#6'Label5'#4'Left'#2#6#6'Height' +#2#16#3'Top'#2'1'#5'Width'#2'D'#7'Caption'#6#10'Argument 2'#11'ParentColor'#8
+#2#14#3'Top'#2'Q'#5'Width'#2'7'#7'Caption'#6#10'Argument 3'#11'ParentColor'#8 +#0#0#6'TLabel'#6'Label5'#4'Left'#2#6#6'Height'#2#16#3'Top'#2'Q'#5'Width'#2'D'
+#0#0#7'TBitBtn'#7'BitBtn3'#3'Tag'#2#1#4'Left'#3'v'#1#6'Height'#2#23#3'Top'#2 +#7'Caption'#6#10'Argument 3'#11'ParentColor'#8#0#0#7'TBitBtn'#7'BitBtn3'#3'T'
+#5#5'Width'#2#27#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerB' +'ag'#2#1#4'Left'#3'v'#1#6'Height'#2#23#3'Top'#2#5#5'Width'#2#27#7'Anchors'#11
+'order'#2#2#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0 +#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2#10'Glyph.Data'#10':'
+'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0 +#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '
+#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#161#161#161#255#0#0#0
+#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0#0
+#0#0#161#161#161#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#161#161#161
+#255#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#161#161#161#255#0#0
+#0#0#0#0#0#255#0#0#0#255#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#255#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0
+#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#255#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#161#161#255#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0 +#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0
+#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#161#161 +#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#161
+#161#161#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0
+#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6'Layout'#7#13'blGlyphBottom'#9'Num'
+#6'Layout'#7#13'blGlyphBottom'#9'NumGlyphs'#2#0#7'OnClick'#7#12'BitBtn5Click' +'Glyphs'#2#0#7'OnClick'#7#12'BitBtn5Click'#8'TabOrder'#2#0#0#0#5'TEdit'#5'Ed'
+#8'TabOrder'#2#0#0#0#5'TEdit'#5'Edit1'#4'Left'#2'N'#6'Height'#2#23#3'Top'#2#5 ,'it1'#4'Left'#2'N'#6'Height'#2#25#3'Top'#2#5#5'Width'#3'('#1#7'Anchors'#11#5
,#5'Width'#3'('#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2 +'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#1#0#0#5'TEdit'#5'Edit2'#4'Left'
+#1#0#0#5'TEdit'#5'Edit2'#4'Left'#2'N'#6'Height'#2#23#3'Top'#2'('#5'Width'#3 +#2'N'#6'Height'#2#25#3'Top'#2'('#5'Width'#3'('#1#7'Anchors'#11#5'akTop'#6'ak'
+'('#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#2#0#0#7'TB' +'Left'#7'akRight'#0#8'TabOrder'#2#2#0#0#7'TBitBtn'#7'BitBtn4'#3'Tag'#2#2#4'L'
+'itBtn'#7'BitBtn4'#3'Tag'#2#2#4'Left'#3'v'#1#6'Height'#2#23#3'Top'#2'('#5'Wi' +'eft'#3'v'#1#6'Height'#2#23#3'Top'#2'('#5'Width'#2#27#7'Anchors'#11#5'akTop'
+'dth'#2#27#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.InnerBorder' +#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2#10'Glyph.Data'#10':'#4#0#0'6'
+#2#2#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0 +#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0
+#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0 +#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#255#0#0#0#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#255#161#161#161#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#255#0#0#0#255 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#161
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161 +#161#161#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#255#0#0#0#255#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#255#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#161#161#161#255#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161 +#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#255#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0
+#255#0#0#0#255#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#255#161#161#161#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#161#161#161#255#0 +#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0
+#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#255#0#0#0#255#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#161#161#161 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#161#161
+#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6'Layou' +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6'Layout'#7#13'blGlyphBottom'#9'NumGlyphs'#2#0
+'t'#7#13'blGlyphBottom'#9'NumGlyphs'#2#0#7'OnClick'#7#12'BitBtn5Click'#8'Tab' +#7'OnClick'#7#12'BitBtn5Click'#8'TabOrder'#2#3#0#0#5'TEdit'#5'Edit3'#4'Left'
+'Order'#2#3#0#0#5'TEdit'#5'Edit3'#4'Left'#2'N'#6'Height'#2#23#3'Top'#2'H'#5 +#2'N'#6'Height'#2#25#3'Top'#2'H'#5'Width'#3'('#1#7'Anchors'#11#5'akTop'#6'ak'
+'Width'#3'('#1#7'Anchors'#11#5'akTop'#6'akLeft'#7'akRight'#0#8'TabOrder'#2#4 +'Left'#7'akRight'#0#8'TabOrder'#2#4#0#0#7'TBitBtn'#7'BitBtn5'#3'Tag'#2#3#4'L'
+#0#0#7'TBitBtn'#7'BitBtn5'#3'Tag'#2#3#4'Left'#3'v'#1#6'Height'#2#23#3'Top'#2 +'eft'#3'v'#1#6'Height'#2#23#3'Top'#2'H'#5'Width'#2#27#7'Anchors'#11#5'akTop'
+'H'#5'Width'#2#27#7'Anchors'#11#5'akTop'#7'akRight'#0#25'BorderSpacing.Inner' +#7'akRight'#0#25'BorderSpacing.InnerBorder'#2#2#10'Glyph.Data'#10':'#4#0#0'6'
+'Border'#2#2#10'Glyph.Data'#10':'#4#0#0'6'#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0 +#4#0#0'BM6'#4#0#0#0#0#0#0'6'#0#0#0'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0
+'('#0#0#0#16#0#0#0#16#0#0#0#1#0' '#0#0#0#0#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0 +#0#0#4#0#0'd'#0#0#0'd'#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0
+#255#0#0#0#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#161
+#161#161#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#161#161#161#255#0#0#0
+#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0
+#255#0#0#0#255#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#255#0 +#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0
+#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#255#0 ,#0#0#0#0#0#0#0#0#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#161 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#161#161#255#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0 +#0#0#0#0#255#0#0#0#255#0#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0
+#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#255#161#161#161#255#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0#161#161 +#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0
+#255#0#0#0#255#0#0#0#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#161
,#161#161#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#0
+#161#161#161#255#0#0#0#255#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#255#0#0#0#255#0#0#0#255
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0
+#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0 +#0#0#0#0#0#0#0#0#0#0#0#0#0#0#0#6'Layout'#7#13'blGlyphBottom'#9'NumGlyphs'#2#0
+#6'Layout'#7#13'blGlyphBottom'#9'NumGlyphs'#2#0#7'OnClick'#7#12'BitBtn5Click' +#7'OnClick'#7#12'BitBtn5Click'#8'TabOrder'#2#5#0#0#0#0
+#8'TabOrder'#2#5#0#0#0#0
]); ]);