Thema: Delphi TFIleStream und Pointer

Einzelnen Beitrag anzeigen

goose33

Registriert seit: 26. Okt 2004
Ort: Merseburg
49 Beiträge
 
#11

Re: TFIleStream und Pointer

  Alt 4. Nov 2004, 21:42
Hallöchen,

jetzt hab ich glaube ich den Fehler gefunden, so gehts erst mal überhaupt :

Delphi-Quellcode:
procedure TForm1.ICQClient1SendFileData(Sender: TObject; UIN: Cardinal;
  Data: Pointer; var DataLen: Cardinal; var IsLastPacket: Boolean);
begin

    DataLen := SendStream.Read(Data^, 256);
    edDataLen.Text:=IntToStr(DataLen);

    ssPos.Text:=IntToStr(SendStream.Position);
    ssSize.Text:=IntToStr(SendStream.Size);

    //if SendStream.Position = SendStream.Size then
    if DataLen < 256 then
       IsLastPacket := True;
end;
Das Problem war anscheinend die Zeile hier :
DataLen := SendStream.Read(Data^, 256); Das musste auch ein Pointer auf die Daten sein.
Das Problem ist jetzt nur noch das er aufhört zu senden bevor alle daten übertragen sind.

Das Problem ist nur das hier :

IsLastPacket := SendStream.Position = SendStream.Size; Irgendwie scheint das nicht hinzuhauen.
Ich hab jetzt zum testen mal 3 Edits gemacht in denen die DataLen, SendStream.Position und SendStream.Size angezeigt werden.

Es passiert folgendes :
SendStream.Size zeigt die richtige grösse an,
SendStream.Position steigt an bis SendStream.Size erreicht ist und
DataLen zeigt die aktuelle grösse der Daten an die gesendet werden.
Scheint also alle zu stimmn. Trotzdem kmmt nur die hälfte an.???
Beim kupel sagt ICQ dann immer 'Othr Side has closed the Connection' ...

Hmm, an was könnte das denn jetzt noch liegen ?

Matias
  Mit Zitat antworten Zitat