ich weiß nicht was ich falsch mache, jedoch spuckt das kompilierte programm unverständliche fehlermeldungen in form von sinnlosen zeichenketten.
ich habe deinen code versucht wie folgt in einen vorgegeben code zu implementieren:
Delphi-Quellcode:
procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
var
s, sl: string;
TmpJpg : TJPEGImage;
Reciving: boolean;
DataSize: integer;
Data: TMemoryStream;
begin
s:= Socket.ReceiveText;
if not Reciving then
begin
SetLength(sl, StrLen(PChar(s))+1); // +1 for the null terminator
StrLCopy(@sl[1], PChar(s), Length(sl)-1);
DataSize:= StrToInt(sl);
Data:= TMemoryStream.Create;
TmpJpg := TJPEGImage.Create;
Delete(s, 1, Length(sl));
Reciving:= true;
end;
try
Data.Write(s[1], length(s));
if Data.Size = DataSize then
begin
Data.Position:= 0;
TmpJpg.LoadFromStream(Data);
Image2.Picture.Assign(TmpJpg);
Data.Free;
TmpJpg.Free;
Reciving:= false;
Socket.Close;
end;
except
Data.Free;
TmpJpg.Free;
end;
end;
hat jemand eine idee was ich falsch mache?
//edit
habe den fehler glaub ich gefunden:
das jpegimage muss vor der if-abfrage created werden.
danke
// edit 2
das war allerdings nicht der hauptgrund für die seltsamen fehlermeldungen:
die variablen
Reciving: boolean;
DataSize: integer;
Data: TMemoryStream;
müssen allesamt global definiert werden.
ist das plausibel & nur ich verstehs nicht?
wenn ja klärt mich bitte auf!