Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.05.27;
Скачать: CL | DM;

Вниз

Опять TStream -   Найти похожие ветки 

 
eSKey   (2002-05-17 12:53) [0]

Напомню, у меня такой метод, и в нем выполняется такие строки:
//iStream - внутренняя переменная треда типа TStream
constructor Create
(inStream:TStream; outStream:TStream);
...
iStream:=TStream.Create;
iStream.CopyFrom(inStream,HPos);


Тако вот, как видите он принимает как параметры 2 потока - вх. и выходной. Когда я передаю в качестве inStream поток ТМемориСтрим - все ОК, а вот когда ТФайлСтрим - на последней строчке эксепшн EAbstractException с сообщением "Abstract Error"... Бред какой-то, помогла замена типа iStream на ТМемориСтрим, но вопрос остался - какого чёрта? Я понимаю, в ТСтрим метод CopyFrom абстрактный, но ведь он есть и в Мемористрим, и в Файлстрим! Разъясните плиз, в чем дело?


 
Song ©   (2002-05-17 12:55) [1]

Сколько можно говорить что TSream это абстрактный класс для создания наследников. Вся функциональность класс заключается в TFileStream и TMemoryStream


 
Song ©   (2002-05-17 12:58) [2]

Извиняюсь, до конца вопрос не догрузился. Только сейчас увмдел суть.


 
Игорь Шевченко ©   (2002-05-17 13:05) [3]


iStream:=TStream.Create;
iStream.CopyFrom(inStream,HPos);

Что делает CopyFrom? (он не абстрактный):
....
WriteBuffer (...)
....

Что делает WriteBuffer (он не абстрактный):
вызывает Write

смотрим объявление метода Write в TStream:
function Write(const Buffer; Count: Longint): Longint; virtual; abstract;

Получили, что ожидали.

С уважением,

P.S. Любите отладчик - источник знаний.



 
MBo ©   (2002-05-17 13:10) [4]

iStream:=TStream.Create;
таким способом ведь создается объект с абстрактными методами, чего тогда удивляться
Song 12:55 прав


 
eSKey   (2002-05-17 13:24) [5]

Ну а как тогда делать правильно?


 
MBo ©   (2002-05-17 13:29) [6]

ну так замени на tmemorystream , как уже делал



Страницы: 1 вся ветка

Текущий архив: 2002.05.27;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.011 c
3-88344
kan2002
2002-04-30 16:11
2002.05.27
Johnman по ZReport, у меня нету компоненты dxBar?


3-88318
AndyM
2002-04-29 17:49
2002.05.27
Как можно получить message выполнения запроса от сервера???


14-88598
Digitman
2002-04-17 13:38
2002.05.27
Задачка для начинающих


4-88677
Chris
2002-03-27 14:18
2002.05.27
Диалог с проверкой наличия файла


14-88617
ruslan_as
2002-04-18 11:17
2002.05.27
Нужен BAT-ник