![]() |
fehler globale variable/lokale variable
ich habe folgendes problem:
ich habe den unten beigelegten code aus dem netz & habe ihn leicht abgeändert. nun wollte ich die globalen variablen lokalisieren, da sie nur ein einer einzige proceudre verwendet werden. das programm lässt sich ohne weiteres kompilieren, spuckt jedoch nach abshcluss der kompilierung eine fehlermeldung der form aus: ![]() ![]() sinnlose zeichenketten. sobald man ok bestätigt folgt eine weitere solche fehlermeldung, was sich entlos fortsetzt. eigentlich ist es nicht relevant, ob die die variablen letztendlich global oder lokal anlege, doch ich würds schon gern verstehn^^.
Delphi-Quellcode:
unit Unit1;
... private Reciving: boolean; DataSize: integer; Data: TMemoryStream; ... procedure TForm1.ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket); var s, sl: string; TmpJpg : TJPEGImage; begin s:= Socket.ReceiveText; TmpJpg := TJPEGImage.Create; 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; 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; |
Re: fehler globale variable/lokale variable
Die gezeigten Variablen dürfen nicht lokal für die Methode ClientSocket1Read sein, da sie ihren Wert nicht verlieren dürfen.
ClientSocket1Read wird nicht nur einmal sondern unter Umständen mehrmals ausgerufen. Grund: die Daten können in mehrere Netzwerkpaketen verpackt sein -> mehrere Aufrufe. Ob die ganzen Daten in einem Rutsch oder verteilt auf mehrere Pakete kommen, darauf hast du keinen Einfluss, denn das regelt Windows und auch der Datensender. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:33 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz