Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.05.27;
Скачать: [xml.tar.bz2];

Вниз

Опять 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
1-88417
MisterBin
2002-05-16 21:21
2002.05.27
Ну ответьте плиз


7-88666
George Wheels
2002-02-28 10:27
2002.05.27
Проблема с IPX/SPX в


3-88324
Fareader
2002-04-29 19:51
2002.05.27
Two-Phase Commit


7-88658
lipskiy
2002-03-02 19:00
2002.05.27
Что надо учесть, чтобы быть уверенным, что мое приложение будет работоспособно на всех пользовательских машинах?


7-88662
Lizard
2002-02-22 21:10
2002.05.27
Как считать информацию из *.ini файла ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский