Показать сообщение отдельно
Старый 02.07.2006, 22:40     # 1
PLP
Junior Member
 
Регистрация: 16.07.2002
Сообщения: 113

PLP Путь к славе только начался
Question Проблема с передачей в функцию параметра типа TMemoryStream

Добрый день.

Пишу на Delphi 7 приложение (клиентскую и серверную части) для передачи некоторых данных TMemoryStream функцией SOAP на сервер и последующей обработки. Использую стандартную делфишную заготовку SOAP Server Application и компоненту THTTPRIO на клиенте.

Для передачи в intf модуле объявлен свой тип:
Код:
  TTransferStream = class(TRemotable)
    private
      FTransferStream: TMemoryStream;
    public
      property MStream: TMemoryStream read FTransferStream write FTransferStream;
  end;
Там же в разделе initialization зарегистрировал его:
Код:
  RemClassRegistry.RegisterXSClass(TTransferStream);
  RemClassRegistry.RegisterXSInfo(TypeInfo(TTransferStream));
Вот функция на сервере:
Код:
function TClientSOAP.RegisterShipments(TransferStream : TTransferStream) : String;
begin
if TTransferStream(TransferStream) <> nil then
    Result := IntToStr(TTransferStream(TransferStream).MStream.Size)
  else
    Result := 'TTransferStream(TransferStream) = nil';
end;
Проблема в том, что при передаче с клиента непустого TranferStream проверка на сервере TTransferStream(TransferStream) <> nil всегда дает отрицательный результат - т.е. переменная пуста.

Кстати, если в качестве входного параметра функции передавать строку String - все ок - что отправил с клиента, то и приходит на сервер.

Подскажите, что же я делаю не так?

Последний раз редактировалось PLP; 04.07.2006 в 11:42.
PLP вне форума