Newsgroups : Borland : borland.public.delphi.internet.winsock : 2006 Apr : Re: TidStreamVCL or TIdStreamVCLWin32???
| Subject: | Re: TidStreamVCL or TIdStreamVCLWin32??? |
| Posted by: | "Remy Lebeau (TeamB)" (no.spam@no.spam.com) |
| Date: | Thu, 6 Apr 2006 12:16:03 |
"Jacques Noah" <jacques.noah@btinternet.com> wrote in message
news:4435561a$1@newsgroups.borland.com...
> I just upgraded my app from indy10.0.52 to 10.1.5 and find that it
> does not work anymore,because somehow the TidStreamVCL
> does not contain the implementations that it used to have before.
That is because Indy 10 underwent a large re-write awhile back to better
address cross-platform issues. The only reason TIdStreamVCL existed in the
first place was to wrap the VCL's TStream class so it could be passed around
Indy in a generic manner. There were other wrapper classes available for
platform-specific stream classes as well. This is no longer the case.
There are new IdSys and IdObjs units in the current Indy 10 build that
abstract the platform-specific class and data types into generics that Indy
uses everywhere now. What this means is that wrapper classes are no longer
needed. For example, when working with VCL code, you can now pass TStream
objects directly to Indy again without having to wrap them first. When
running under .NET code, .NET streams can be passed directly to Indy. And
so on for other platforms.
> I'm usinfg streams to send files.
You will have to re-write your code to get rid of TIdStreamVCL everywhere.
> I've noticed that there is a TidStreamVCLWin32.pas
Do not use the IdStream units directly. They are only for Indy's internal
use.
As for TIdStreamVCLWin32.pas specifically, it is an obsolute file.
TIdStreamVCLWin32 is not used anywhere.
> All these errors are in the 'IdStreamRandomAccess.pas' file
That is also an obsolete file.
> Is there are alternative unit ican use with streams?
Stop using wrappers and just pass your TStream objects directly now.
Gambit