![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с переменными в FastScript [D7, Win2k]
AndrewK © (2004-11-11 15:34:00)Доброго времени суток.
Подскажите пожалуйста, как можно сделать такую вещь:
Есть две переменные:
FieldValue : Variant;
Result : Integer;
Есть код на PascalScript для FastScript, примерно такого вида:
begin
if FieldValue = 'Text' then
Result := 1
else
Result := 0;
end.
Надо из программы передать в скрипт переменные FieldValue и Result, обработать его и получить значение переменной Result для дальнейшей работы.
Вот код:
function TForm1.GetConditionResult (Condition : String; FieldValue : Variant) : Integer;
var Res : Integer;
begin
fsScript.SyntaxType := 'PascalScript';
fsScript.Lines.Text := Condition;
fsScript.AddVariable('FieldValue', 'Variant', FieldValue);
fsScript.AddVariable('Result', 'Integer', 0);
if fsScript.Compile then
fsScript.Execute
else
ShowMessage(fsScript.ErrorMsg);
Res := fsScript.Variables['Result'];
Result := Res;
end;
При попытке выполнить функцию вываливается ошибка "Incompatible types: 'Class Integer', 'Integer'".
Как с этим бороться?
AndrewK (2004-11-11 16:28:00) [1]Вопрос решен.
Кому интерестно, то во решение:
function TForm1.GetConditionResult (Condition : String; FieldValue : Variant) : Integer;
var Res : Integer;
begin
fsScript.Clear;
fsScript.Lines.Text := Condition;
fsScript.Parent := fsGlobalUnit;
fsScript.SyntaxType := 'PascalScript';
fsScript.AddVariable('FieldValue', 'Variant', FieldValue);
fsScript.AddVariable('Result', 'Integer', 0);
if fsScript.Compile then
fsScript.Execute
else
ShowMessage(fsScript.ErrorMsg);
Res := fsScript.Variables['Result'];
Result := Res;
end;