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;