Тема: Delphi [TStream]
Показать сообщение отдельно

  #3  
Старый 15.03.2009, 23:46
Flame of Soul
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
Провел на форуме:
1740746

Репутация: 435
Отправить сообщение для Flame of Soul с помощью MSN
По умолчанию

Простите, ночую у родителей, но вот код для примера, который должен на мой взгляд работать.

Код для сервера:
PHP код:
...
    
RuSrmTStream
...

procedure TForm1.FormCreate(...); 
begin 
  RuSrm
:= nil
end

procedure TForm1.FormDestroy(...); 
begin 
  
if Assigned(ComSrmthen 
  begin 
    RuSrm
.Free
    
RuSrm:= nil
  
end
end

procedure TForm1.ServerSocket1ClientConnect(...); 
begin
  RuSrm 
:= TStream.Create;
  
Image1.Picture.Bitmap.SaveToStream(RuSrm); 
  
Socket.SendStream(RuSrm); 
end

procedure TForm1.btnTestSocketsClick(...); 
begin 
  ServerSocket1
.Active := True
end

end
Код для клиента:
PHP код:
...
  private 
    
ComSrmTStream
...

procedure TForm1.ClientSocket1Read(SenderTObject
  
SocketTCustomWinSocket); 
var 
  
iLenInteger
  
BfrPointer
begin 
  iLen 
:= Socket.ReceiveLength
  
GetMem(BfriLen); 
  try 
    
Socket.ReceiveBuf(Bfr^, iLen); 
    
ComSrm.Write(Bfr^, iLen); 
  finally 
    
FreeMem(Bfr); 
  
end
end

procedure TForm1.FormCreate(...); 
begin 
  ComSrm 
:= nil
end

procedure TForm1.FormDestroy(...); 
begin 
  
if Assigned(ComSrmthen 
  begin 
    ComSrm
.Free
    
ComSrm := nil
  
end
end

procedure TForm1.ClientSocket1Disconnect(...); 
begin 
  
if Assigned(ComSrmthen 
  begin
    Image1
.Picture.Bitmap.LoadFromStream(ComSrm); 
    
ComSrm.Free
    
ComSrm := nil
  
end
end

procedure TForm1.ClientSocket1Connect(...); 
begin 
  FStream 
:= TStream.Create(ComSrm); 
end

procedure TForm1.btn1SocketsClick(...); 
begin 
  ClientSocket1
.Active := True
end;

end

Последний раз редактировалось Flame of Soul; 15.03.2009 в 23:48..
 
Ответить с цитированием