Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Buffer beibringen von Indys akzeptiert zu werden (https://www.delphipraxis.net/125511-buffer-beibringen-von-indys-akzeptiert-zu-werden.html)

gsh 7. Dez 2008 19:48


Buffer beibringen von Indys akzeptiert zu werden
 
Hi Leute,

ich hab in den letzten Tagen einen Buffer für meine Übertragung gebaut. Dieser funktioniert auch soweit ganz gut nur hab ich jetzt ein Problem beim Übertragen von dem Buffer.

Wenn ich den Buffer so benutzen will:
Delphi-Quellcode:
IOHandler.Write(TransferBuffer, cFileSplitSize);
dann bekomme ich folgende Fehlermeldung
E2250 Es gibt keine überladene Version von 'Write', die man mit diesen Argumenten aufrufen kann

Der Buffer ist im Grundlegenden so aufgebaut:
Delphi-Quellcode:
TTransferBuffer = class(TThread)
public
  function Read(var Buffer; Count: integer): integer;
  function Write(const Buffer; Count: integer): integer;
end;
wie kann ich ihm beibringen das er diese Funktionen benutzt wenn ich IOHandler.Write mit dem Buffer aufrufe?

mkinzler 7. Dez 2008 19:51

Re: Buffer beibringen von Indys akzeptiert zu werden
 
Welchen Typ hat Buffer?

gsh 7. Dez 2008 19:54

Re: Buffer beibringen von Indys akzeptiert zu werden
 
Also der TransferBuffer ist vom Typ TTransferBuffer ...
oder was meinst du?

mkinzler 7. Dez 2008 19:59

Re: Buffer beibringen von Indys akzeptiert zu werden
 
Nein, die Parameter dessen Methoden

gsh 7. Dez 2008 20:11

Re: Buffer beibringen von Indys akzeptiert zu werden
 
function Write(const Buffer; Count: integer): integer;

aso du meinst diesen Buffer ... der hat keinen typ
er ist genau so deklariert wie oben angegeben.

mkinzler 7. Dez 2008 20:20

Re: Buffer beibringen von Indys akzeptiert zu werden
 
Er muss aber einen Typ haben

gsh 7. Dez 2008 20:35

Re: Buffer beibringen von Indys akzeptiert zu werden
 
müssen tut er nicht ...
ich kann ja z.b. die Methode so aufrufen:
Delphi-Quellcode:
TransferBuffer.Write(FileStream, 1);
Meine einzige überlegung ist das ich das ganze über einen zusätzlichen Memory Buffer laufen lasse (läuft aber aus da nicht performant genug). Das würde dann so aussehen:
Delphi-Quellcode:
var
  TempMemory : TMemoryStream;
begin
  TempMemory := TMemoryStream.Create;
  SetLength(TempMemory, 1000);
  TransferBuffer.Read(TempMemory, 1000);
  IOHandler.Write(TempMemory, 1000);
  TempMemory.Free;
end;

mkinzler 7. Dez 2008 20:36

Re: Buffer beibringen von Indys akzeptiert zu werden
 
Doch in Delphi muss jede Variable/Parameter einen Typ besitzen.

Die Muhkuh 7. Dez 2008 20:45

Re: Buffer beibringen von Indys akzeptiert zu werden
 
Muss nicht. Schau Dir mal TStream.Read oder Write an, die haben auch keinen Typ. (-:

SirThornberry 7. Dez 2008 21:00

Re: Buffer beibringen von Indys akzeptiert zu werden
 
Richtig, ein Typ ist da nicht zwingend. Aber letzendlich läuft es dann darauf hinaus das es intern als Pointer übergeben wird.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:27 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz