Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.31;
Скачать: CL | DM;

Вниз

Как передать array of record   Найти похожие ветки 

 
SupKlo   (2005-09-23 10:13) [0]

Как передать array of record с сервера на клиента


 
isasa ©   (2005-09-23 10:36) [1]

На клиенте имеем

type
...
 rComponent = record
   id : integer;
   Xi : double;
   dXi : double;
 end;
 TrComponent = array of rComponent;
...
var
...
 Comp : TrComponent;
...                    

function DynArrayToVar(var buf; dataLen: cardinal): variant;
var p : pointer;
begin
 Result:=VarArrayCreate([0, dataLen], varByte);
 p:=VarArrayLock(Result);
 move(buf, p^, dataLen);
 VarArrayUnlock(Result);
end;

вызов на клиенте

   propInterf.Components:=DynArrayToVar(Comp, (high(Comp)-low(Comp)+1)*sizeof(rComponent));


Сервер

 TautoFLClass = class(TAutoObject)
...
 protected
   Fks : array of integer;
   FXi : array of double;
   FdXi : array of double;
...
   procedure Set_Components(value : OleVariant); safecall;
...
 end;

procedure TautoFLClass.Set_Components(value: OleVariant);
var pArr : ParComponent;
   dataLen : Cardinal;
   i : integer;
begin
 dataLen:=VarArrayHighBound(Value, VarArrayDimCount(Value));
 i:=dataLen div SizeOf(rComponent);
 SetLength(Fks, i);
 SetLength(FXi, i);
 SetLength(FdXi, i);
 pArr:=VarArrayLock(Value);
 for i:=low(Fks) to high(Fks) do begin
   Fks[i]:=pArr^[i].id;
   FXi[i]:=pArr^[i].Xi*0.01;
   FdXi[i]:=pArr^[i].dXi;
 end;
 VarArrayUnLock(Value);
end;


 
isasa ©   (2005-09-23 10:40) [2]

FXi[i]:=pArr^[i].Xi*0.01; => FXi[i]:=pArr^[i].Xi;


 
urdolphin   (2005-09-25 20:46) [3]

Живите проще, господа! Зачем что-то рассчитывать? Ситаем Delphi X - Руководство разработчика (Стив Тейксера, Ксавье Пачеко). Там все подробненько описано (только не про DCOM :((( )



Страницы: 1 вся ветка

Текущий архив: 2006.12.31;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.032 c
15-1165933393
Andre_s
2006-12-12 17:23
2006.12.31
Счетчик печати принтера


3-1161135442
DROWSY
2006-10-18 05:37
2006.12.31
Как выбрать из таблицы записи с номерами : от..до?


15-1165588186
sergey888
2006-12-08 17:29
2006.12.31
Прослушка мобильных


15-1164994284
Cyrax
2006-12-01 20:31
2006.12.31
Оптимальный стиль программирования


1-1163424853
GEN++
2006-11-13 16:34
2006.12.31
Контролер сетевой активности