Привет, народ. Столкнулся с проблемой. Есть такая структура:
Код:
aData = Packed Record
aArr: Array Of String;
End;
И такие процедуры:
Код:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
var
rec: aData;
begin
SetLength( rec.aArr, 3 );
rec.aArr[1] := '1';
rec.aArr[2] := '2';
Socket.SendBuf( rec, SizeOf( rec ) );
end;
procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
rec: aData;
len: Byte;
begin
len := Socket.ReceiveLength;
Socket.ReceiveBuf( rec, len );
Memo1.Lines.Add( rec.aArr[1] );
end;
И в Memo1 просто добовляется пустая строка, но если в процедуре procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket); добавить строку ShowMessage( '' );, то есть привести ее к такому виду:
Код:
procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
var
rec: aData;
begin
SetLength( rec.aArr, 3 );
rec.aArr[1] := '1';
rec.aArr[2] := '2';
Socket.SendBuf( rec, SizeOf( rec ) );
ShowMessage( '' );
end;
То все работает, и в Memo1 добовляется строка. Подскажите, что кто знает