function MyFunc_AddToFS(fsScr: TfsScript; //компонент fsScript
                        sWhat:string; //вид: procedure или function
                        sFuncRes:string;  //тип возвр. значения для function или пустая строка для procedure
                        sListFuncNames:string; //перечень (через точку с запятой) идентификаторов (наименований) фукции/процедуры
                        sFuncScript:string; //текст "объявления" функции/процедуры (без окаймляющих скобок)
                        fCallMethod:TfsCallMethodEvent  //функция формы(TForm), где реализована обработка вызова функции/процедуры
                       ):boolean;
//Добавить в FastScript новую процедуру/функцию на "нескольких языках"
Var
 sNameFunc:string;
 i,c:integer;
 Sx:string;
 s222:string;
begin
  Result:=false;
  if Assigned(fsScr) then begin
     if Assigned(fCallMethod) then begin
        sWhat:=trim(sWhat);
        if length(sWhat)>0 then begin
           sListFuncNames:=trim(sListFuncNames);
           if length(sListFuncNames)>0 then begin
              s222:='';
              sFuncRes:=trim(sFuncRes);
              if AnsiUpperCase(sWhat)='PROCEDURE' then sFuncRes:='';
              if sFuncRes<>'' then begin
                 s222:=':';
                 if sFuncRes[length(sFuncRes)]<>';' then begin
                    sFuncRes:=sFuncRes+';';
                 end;
              end
              else begin
                 sFuncRes:=';';
              end;
              sFuncScript:=trim(sFuncScript);
              //s222:='';
              if sFuncScript<>'' then begin
                 if sFuncScript[length(sFuncScript)]=';' then begin
                    sFuncScript[length(sFuncScript)]:=' ';
                 end;
              end;
              sFuncScript:=trim(sFuncScript);
              c:=Get_CountWords_In_String(
                                          sListFuncNames,
                                          #32+#9+';'
                                         );
              if c>0 then begin
                 Result:=true;
                 i:=0;
                 while i<c do
                  begin
                   i:=i+1;
                   sNameFunc:=trim(
                                   Get_Word_From_String(
                                                        sListFuncNames,
                                                        i,
                                                        #32+#9+';'
                                                       )
                                  );
                   if length(sNameFunc)>0 then begin
                      if length(sFuncScript)>0 then begin
                         Sx:=sWhat+' '+sNameFunc+'('+sFuncScript+')'+s222+sFuncRes;
                      end
                      else begin
                         Sx:=sWhat+' '+sNameFunc+s222+sFuncRes;
                      end;
                      fsScr.AddMethod(Sx, fCallMethod);
                   end
                   else begin
                      Result:=false;
                      i:=c+1;
                   end;
                 end;
              end;
           end;
        end;
     end;
  end;
end;