Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#12

Re: TMemoryStream, JPEG-Übertragung: Bitte helft!

  Alt 22. Sep 2006, 12:06
Zitat von LAWn-M0W3R:
Delphi-Quellcode:
If Log.Lines[Log.Lines.Capacity -1]='#SCREENOK'
then
 begin
  try
  Socket.SendBuf(Stream, Stream.Size);
  Stream.Clear;
  FreeAndNil(Stream);
  FreeAndNil(JPG);
  except
  end;
 end;
end;
1. Log.Lines.Capacity ist was anderes als Log.Lines.Count. Überprüfe deinen Code und korrigiere diesen Umstand und konsultiere die Hilfe dazu!
2. SendBuf() nimmt keine Instanzen. Hier sendest du ab der Instanzenadresse Stream und nachfolgend alle Daten bis Stream.Size des Speichers, aber nicht des Streams.
3. Stream.Clear bringt vor einem Free irgendwie gar nix, das macht der Stream selber im Destruktor.

Nutze SendStream() und setze danach Stream auf Nil. Der Socket gibt den Stream nach dem Senden selbstständig frei, da er ihn asynchron zu deinem VCL Code versendet.
  Mit Zitat antworten Zitat