JS+
Усиленный язык сценариев для Windows
с возможностью встраивания
в ваши приложения
О языке JS+ Справочник Скачать JS+ DLL
Контакты
СПРАВОЧНИК ПО ЯЗЫКУ JS+ Содержание

JSP_objGetObjArr

- функция JS+ DLL
Функции JS+ DLL
Возвращает свойство объекта, имеющее тип массив Object, приведенное к типу массив size_t (для приложений С++) или Pointer (для приложений Delphi).
Синтаксис
int __stdcall JSP_objGetObjArr(
  hObj,
  prp_cName,
  prp_Array
);

Параметры
Параметр Тип Описание
hObj size_t объект JS+, имеющий свойство типа массив Object
prp_cName char* имя свойства типа массив Object объекта hObj
prp_Array size_t* возвращаемый массив свойства prp_cName
Возвращаемое значение
JSP_OK (0) в случае успеха либо JSP_ERROR (-1) в противном случае.
Пример (C++ Builder)
------------------------
 Приложение C++ Builder
------------------------

#include <algorithm>// string.reverse()

JSP_Start("TRIAL","");

JSP_RegAppFun("void","App_tstObjObjArr","size_t&,char*");

JSP_RET_void App_tstObjObjArr(size_t &hObj,char *prp_cName)
{
  int i,j;
  long len;
  size_t obj,*obj_arr;
  std::string tmp_stdStr;

  JSP_objGetArrLen(hObj,prp_cName,len);
  obj_arr=new size_t[len];
  JSP_objGetObjArr(hObj,prp_cName,obj_arr);

  for (i=0;i<len;i++) {
    // Перевернуть номер
    JSP_objGetIntVal(obj=obj_arr[i],"intValue",j);
    JSP_objSetIntVal(obj,"intValue",len-j+1);

    // Перевернуть строку
    JSP_objGetStdStr(obj,"strValue",tmp_stdStr);
    reverse(tmp_stdStr.begin(),tmp_stdStr.end());
    JSP_objSetStdStr(obj,"strValue",tmp_stdStr);
  }
  
  delete [] obj_arr;
}

------------------------
 Скрипт JS+
------------------------

var obj_lst=[];
for (i=0;i<3;i++) {
  obj_lst.push(
    new Object({
      intValue: i+1,
      strValue: "Xxxxx"+
                String.fromCharCode("A".charCodeAt(0)+i)
    }
  ));
}

var tst_obj={
  objArray: obj_lst
};

for (i=0,val_str="";i<tst_obj.objArray.length;i++)
  val_str+=
  tst_obj.objArray[i].intValue.toString()+" : "+
  tst_obj.objArray[i].strValue+"\n";

App_tstObjObjArr2(tst_obj,"objArray");

for (i=0,val_str+="-\n";i<tst_obj.objArray.length;i++)
  val_str+=
  tst_obj.objArray[i].intValue.toString()+" : "+
  tst_obj.objArray[i].strValue+"\n";

alert(
  val_str
);

------------------------
 Вывод скрипта JS+
------------------------

1 : XxxxxA
2 : XxxxxB
3 : XxxxxC

3 : AxxxxX
2 : BxxxxX
1 : CxxxxX
Пример (Delphi)
------------------------
 Приложение Delphi
------------------------

uses
AnsiStrings// ReverseString()

JSP_Start('TRIAL','User=Delphi');

JSP_RegAppFun('','App_tstObjObjArr','size_t&,char*');

procedure App_tstObjObjArr(var hObj:Pointer;prp_cName:pAnsiChar) stdcall;
var
  obj:Pointer;
  i,j,len:LongInt;
  obj_arr:array of Pointer;
  tmp_sysStr:string;
begin
  JSP_objGetArrLen(hObj,prp_cName,len);

  SetLength(obj_arr,len);
  JSP_objGetObjArr(hObj,prp_cName,@obj_arr[0]);

  for i:=0 to len do
  begin
    obj:=obj_arr[i];
    // Перевернуть номер
    JSP_objGetIntVal(obj,'intValue',j);
    JSP_objSetIntVal(obj,'intValue',len-j+1);

    // Перевернуть строку
    JSP_objGetSysStr(obj,'strValue',@tmp_sysStr);
    JSP_objSetSysStr(Obj,'strValue',ReverseString(tmp_sysStr));
  end;
end;
exports App_tstObjObjArr;

------------------------
 Скрипт JS+
------------------------

var obj_lst=[];
for (i=0;i<3;i++) {
  obj_lst.push(
    new Object({
      intValue: i+1,
      strValue: "Xxxxx"+
                String.fromCharCode("A".charCodeAt(0)+i)
    }
  ));
}

var tst_obj={
  objArray: obj_lst
};

for (i=0,val_str="";i<tst_obj.objArray.length;i++)
  val_str+=
  tst_obj.objArray[i].intValue.toString()+" : "+
  tst_obj.objArray[i].strValue+"\n";

App_tstObjObjArr2(tst_obj,"objArray");

for (i=0,val_str+="-\n";i<tst_obj.objArray.length;i++)
  val_str+=
  tst_obj.objArray[i].intValue.toString()+" : "+
  tst_obj.objArray[i].strValue+"\n";

alert(
  val_str
);

------------------------
 Вывод скрипта JS+
------------------------

1 : XxxxxA
2 : XxxxxB
3 : XxxxxC

3 : AxxxxX
2 : BxxxxX
1 : CxxxxX
Совместимость
C++ Builder/Delphi/Visual C++
См. также
JS+Руководство пользователя
Адрес этой страницы: http://jsplus.ru/MANUAL/JSPlus/EmbedApp/Function/JSP_objGetObjArr.htm
© 2024,