![]() |
indy10 / TCPServer /TCPClient ->Datei versenden
hi Leuts
Ich mach grad n kleines Testprogramm. Ich möchte eine Datei vom einen zum anderen Client verschicken, übers Netzwerk mit Progressbaranzeige auf beiden seiten! Habe leider aber nach langer Suche immer noch nichts dazu gefunden, weder hier im Forum noch auf google. Vielleicht kennt ja jmd von euch ein brauchbares Tutorial! Liebe Grüsse |
Re: indy10 / TCPServer /TCPClient ->Datei versenden
|
Re: indy10 / TCPServer /TCPClient ->Datei versenden
Hi Kaktus und Danke vielmals.
Bin den Code soeben am testen, aber ich stelle leider fest, dass wenn ich die variable
Delphi-Quellcode:
deklarieren will, der Typ TIdStreamVCL NICHT gefunden wird obwohl ich das
IDS: TidStreamVCL;
Delphi-Quellcode:
drin habe!
uses IdStreamVCL;
Jmd eine Idee? |
Re: indy10 / TCPServer /TCPClient ->Datei versenden
suche einmal nach der Datei "idStreamVCL.pas", wenn es sie auf deinem Rechner nicht gibt, dann weißt du es
oder du hast die Datei nicht in den Suchpfad eingefügt |
Re: indy10 / TCPServer /TCPClient ->Datei versenden
daran liegts eben nicht. die Datei ist vorhanden und BDS findet sie auch. in den uses habe ich sie angegeben und dort wird sie auch erkannt! (nicht rot unterstrichen) aber es scheint, als sei dieser Typ (TIdStreamVCL) gar nicht vorhanden dort?!
Die Datei liegt in C:\Programme\BDS\4.0\Indy10\System Der gesamte Inhalt der Datei:
Delphi-Quellcode:
Da seh ich nichts von TIdStreamVCL!
{
$Project$ $Workfile$ $Revision$ $DateUTC$ $Id$ This file is part of the Indy (Internet Direct) project, and is offered under the dual-licensing agreement described on the Indy website. ([url]http://www.indyproject.org/[/url]) Copyright: (c) 1993-2005, Chad Z. Hower and the Indy Pit Crew. All rights reserved. } { $Log$ } unit IdStreamVCL; interface {$I IdCompilerDefines.inc} uses Classes, IdGlobal; type TIdStreamHelperVCL = class public class function ReadBytes( const AStream: TStream; var VBytes: TIdBytes; const ACount: Integer = -1; const AOffset: Integer = 0) : Integer; {$IFDEF DOTNET} static; {$ENDIF} class procedure Write( const AStream: TStream; const ABytes: TIdBytes; const ACount: Integer = -1); {$IFDEF DOTNET} static; {$ENDIF} end; implementation class function TIdStreamHelperVCL.ReadBytes(const AStream: TStream; var VBytes: TIdBytes; const ACount, AOffset: Integer): Integer; var aActual:Integer; begin Assert(AStream<>nil); Result:=0; if VBytes = nil then begin SetLength(VBytes, 0); end; //check that offset<length(buffer)? offset+count? //is there a need for this to be called with an offset into a nil buffer? aActual:=ACount; if aActual = -1 then begin aActual := AStream.Size - AStream.Position; end; //this prevents eg reading 0 bytes at Offset=10 from allocating memory if aActual=0 then begin Exit; end; if Length(VBytes) < (AOffset+aActual) then begin SetLength(VBytes, AOffset+aActual); end; Assert(VBytes<>nil); Result := AStream.Read(VBytes[AOffset], aActual); end; class procedure TIdStreamHelperVCL.Write(const AStream: TStream;const ABytes: TIdBytes; const ACount: Integer); var aActual:Integer; begin Assert(AStream<>nil); aActual:=ACount; //should we raise assert instead of this nil check? if ABytes <> nil then begin if aActual = -1 then begin aActual := Length(ABytes); end else begin aActual := Min(aActual, Length(ABytes)); end; if aActual > 0 then begin AStream.Write(ABytes[0], aActual); end; end; end; end. Wenn ich diesen Typ: TIdStreamHelperVCL verwende, kann ich im Konstruktor aber keinen TFileStream angeben! so sollte es sein:
Delphi-Quellcode:
das kann ich nur:
TidStreamVCL.Create(FStream);
Delphi-Quellcode:
aber das bringt mir nichts!
TidStreamHelperVCL.Create
Ideeen? |
Re: indy10 / TCPServer /TCPClient ->Datei versenden
füge einmal "IdGlobal" in die Uses Liste ein ;)
|
Re: indy10 / TCPServer /TCPClient ->Datei versenden
das hab ich auch schon versucht. Leider kein Erfolg!
|
Re: indy10 / TCPServer /TCPClient ->Datei versenden
@TidStreamVCL
es ist ja keine visuelle Komponente, daher kannst du davon auch nichts sehen (da auch kein Registryeintrag da ist kann es auch unmöglich eine Komponente sein) |
Re: indy10 / TCPServer /TCPClient ->Datei versenden
Hä? Wie meinste das jetz?! mir ist bewusst das dies keine visuelle Komponente ist. Tatsache ist aber, dass es den Typ (TidStreamVCL) nicht gibt bei mir?!
Fehler beim versuch das Programm zu compilieren:
Delphi-Quellcode:
[Pascal Fehler] main.pas(39): E2003 Undefinierter Bezeichner: 'TidStreamVCL'
|
Re: indy10 / TCPServer /TCPClient ->Datei versenden
schau dir einmal den Thread
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:39 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 by Thomas Breitkreuz