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.