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

View File

@ -1,17 +1,14 @@
<?xml version="1.0"?>
<CONFIG>
<Package Version="2">
<Package Version="3">
<PathDelim Value="\"/>
<Name Value="lr_add_function"/>
<CompilerOptions>
<Version Value="5"/>
<Version Value="8"/>
<PathDelim Value="\"/>
<SearchPaths>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)\"/>
<UnitOutputDirectory Value="lib\$(TargetCPU)-$(TargetOS)"/>
</SearchPaths>
<CodeGeneration>
<Generate Value="Faster"/>
</CodeGeneration>
<Other>
<CompilerPath Value="$(CompPath)"/>
</Other>
@ -19,7 +16,7 @@
<Version Major="1"/>
<Files Count="6">
<Item1>
<Filename Value="lraddfunctionlibrary.pas"/>
<Filename Value="lrAddFunctionLibrary.pas"/>
<HasRegisterProc Value="True"/>
<UnitName Value="lrAddFunctionLibrary"/>
</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."
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
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <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."
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
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."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>."
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."
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
msgid "STRTODATE(<String>)/Converts <String> to date."
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."
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
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
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."
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
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."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <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."
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
msgid "STRTODATE(<String>)/Converts <String> to date."
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."
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
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
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."
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
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é."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>."
msgstr ""
@ -337,6 +349,14 @@ msgstr "NAMECASE(<String>)/Capitalise <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>."
#: 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
msgid "STRTODATE(<String>)/Converts <String> to 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."
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
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <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."
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
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."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>."
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."
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
msgid "STRTODATE(<String>)/Converts <String> to date."
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."
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
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į."
@ -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."
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
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ą."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>."
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."
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
msgid "STRTODATE(<String>)/Converts <String> to date."
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."
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
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
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."
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
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."
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <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."
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
msgid "STRTODATE(<String>)/Converts <String> to date."
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."
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
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
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."
msgstr ""
#: lr_const.sdescriptionfrac
msgid "FRAC(<Value>)/Returns the fractional part of floating point <Value>."
msgstr ""
#: 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."
msgstr ""
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>."
msgstr ""
@ -331,6 +343,14 @@ msgstr ""
msgid "POS(<SubString>, <String>)/Returns position of substring in given string."
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
msgid "STRTODATE(<String>)/Converts <String> to date."
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."
msgstr ""
#: lr_const.sdescriptioncopy
msgid "COPY(<String>, <Position>, <Length>)/Returns <Length> characters from <String> starting at <Position>."
msgstr ""
#: lr_const.sdescriptioncount
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <BandName>. "
msgstr ""
@ -279,10 +283,18 @@ msgstr ""
msgid "FORMATTEXT(<Mask>, <String>)/Applies <Mask> to given <String> and returns formatted string."
msgstr ""
#: lr_const.sdescriptionfrac
msgid "FRAC(<Value>)/Returns the fractional part of floating point <Value>."
msgstr ""
#: 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."
msgstr ""
#: lr_const.sdescriptionint
msgid "INT(<Value>)/Returns the integer part of floating point <Value>."
msgstr ""
#: lr_const.sdescriptionlength
msgid "LENGTH(<String>)/Returns length of <String>."
msgstr ""
@ -323,6 +335,14 @@ msgstr ""
msgid "POS(<SubString>, <String>)/Returns position of substring in given string."
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
msgid "STRTODATE(<String>)/Converts <String> to date."
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."
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
msgid "COUNT(<BandName>)/Returns count of data-rows given in the <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."
msgstr "FORMATTEXT(<Mask>, <String>)/Применяет маску <Mask> к заданной строке <String> и возвращает форматированную строку."
#: lr_const.sdescriptionfrac
msgid "FRAC(<Value>)/Returns the fractional part of floating point <Value>."
msgstr ""
#: 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."
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
msgid "LENGTH(<String>)/Returns length of <String>."
msgstr "LENGTH(<String>)/Возвращает длину строки <String>."
@ -328,6 +340,14 @@ msgstr "NAMECASE(<String>)/Преобразует символы строки <S
msgid "POS(<SubString>, <String>)/Returns position of substring in given 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
msgid "STRTODATE(<String>)/Converts <String> to date."
msgstr "STRTODATE(<String>)/Преобразует строку <String> в дату."

View File

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

View File

@ -722,6 +722,21 @@ resourcestring
SDescriptionMESSAGEBOX = 'MESSAGEBOX(<Text>, <Title>, <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
frRes = 53000;

View File

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

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
{ Ýòî - ôàéë ðåñóðñîâ, àâòîìàòè÷åñêè ñîçäàííûé lazarus }
{ This is an automatically generated lazarus resource file }
LazarusResources.Add('TLR_FunctEditorForm','FORMDATA',[
'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'
+'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'
+'5'#0#8'TListBox'#8'ListBox1'#6'Height'#3#216#0#5'Width'#3#181#0#5'Align'#7#6
+'alLeft'#7'OnClick'#7#13'ListBox1Click'#8'TabOrder'#2#0#0#0#6'TPanel'#6'Pane'
+'l1'#6'Height'#2'@'#3'Top'#3#216#0#5'Width'#3#164#1#5'Align'#7#8'alBottom'#10
+'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#14#3'Top'#2#1#5
+'9'#0#8'TListBox'#8'ListBox1'#4'Left'#2#0#6'Height'#3#188#0#3'Top'#2#0#5'Wid'
+'th'#3#181#0#5'Align'#7#6'alLeft'#10'ItemHeight'#2#0#7'OnClick'#7#13'ListBox'
+'1Click'#8'TabOrder'#2#0#8'TopIndex'#2#255#0#0#6'TPanel'#6'Panel1'#4'Left'#2
+#0#6'Height'#2'\'#3'Top'#3#188#0#5'Width'#3#164#1#5'Align'#7#8'alBottom'#10
+'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'
+'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
+'WordWrap'#9#0#0#0#9'TSplitter'#9'Splitter1'#4'Left'#3#181#0#6'Height'#3#216
+#0#5'Width'#2#5#0#0#8'TListBox'#8'ListBox2'#4'Left'#3#186#0#6'Height'#3#216#0
+#5'Width'#3#234#0#5'Align'#7#8'alClient'#7'OnClick'#7#13'ListBox2Click'#10'O'
+'nDblClick'#7#16'ListBox2DblClick'#8'TabOrder'#2#2#0#0#6'TPanel'#6'Panel2'#6
+'Height'#2'('#3'Top'#3#24#1#5'Width'#3#164#1#5'Align'#7#8'alBottom'#10'Bevel'
+'Outer'#7#6'bvNone'#12'ClientHeight'#2'('#11'ClientWidth'#3#164#1#8'TabOrder'
+#2#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
+'WordWrap'#9#0#0#0#9'TSplitter'#9'Splitter1'#4'Left'#3#181#0#6'Height'#3#188
+#0#3'Top'#2#0#5'Width'#2#5#0#0#8'TListBox'#8'ListBox2'#4'Left'#3#186#0#6'Hei'
+'ght'#3#188#0#3'Top'#2#0#5'Width'#3#234#0#5'Align'#7#8'alClient'#10'ItemHeig'
+'ht'#2#0#7'OnClick'#7#13'ListBox2Click'#10'OnDblClick'#7#16'ListBox2DblClick'
+#8'TabOrder'#2#2#8'TopIndex'#2#255#0#0#6'TPanel'#6'Panel2'#4'Left'#2#0#6'Hei'
+'ght'#2'('#3'Top'#3#24#1#5'Width'#3#164#1#5'Align'#7#8'alBottom'#10'BevelOut'
+'er'#7#6'bvNone'#12'ClientHeight'#2'('#11'ClientWidth'#3#164#1#8'TabOrder'#2
+#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'
+'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'

View File

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

View File

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

View File

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