Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с переменными в 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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо