Привет, народ. Столкнулся с проблемой. Есть такая структура:
Код:
1 2 3 | aData = Packed Record
aArr: Array Of String ;
End ;
|
И такие процедуры:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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( '' );, то есть привести ее к такому виду:
Код:
1 2 3 4 5 6 7 8 9 10 11 | 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 добовляется строка. Подскажите, что кто знает