Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2008, 20:41   #11
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Цитата:
Сообщение от Air Посмотреть сообщение
К примеру:
Код:
...
var D:TStream;
begin
 D:=TFileStream.Create('C:\1.txt',fmOpenWrite);
 d.Write('sdsdsd',6);
 d.Free;

 d:=TMemoryStream.Create;
 d.LoadFromFile('C:\1.txt');
 d.SaveToFile('C:\2.txt');
 d.Free;
end;
однако не так.
Дело в том, что метод LoadFromFile специфичен для класса TMemoryStream.

С другой стороны:
Код:
var D:TStream;
begin
   D:=TFileStream.Create('C:\1.txt',fmOpenWrite);
   D.Write('sdsdsd',6);
   D.Free;

   D:=TMemoryStream.Create;
   D.Write('sdsdsd',6);
   D.Free;
Отлично работает. Чем это хорошо ?
К примеру, мы пишем метод для записи объекта в поток:

[CODE]
procedure TMyObject.Write(F:TStream);
begin
F.Write(...
end;
[CODE]

Обращаю внимание, мы используем в параметрах абстрактный класс и
внутри метода только методы этого класса. Теперь можно вызвать этот метод с любым типом потока. Даже с тем, который, возможно, создадим позже, унаследовав его от TStream. Было бы ошибкой (стратегической) указать в параметрах конкретный класс, например TFileStream, даже если мы будем писать объект только в файл. Например, предположим, что в будущем нам нужно будет сохранить объект в другой поток. Тогда нужно будет или добавить новый метод или исправлять этот. Вот почему использование абстрактных классов экономит время.
alexBlack вне форума Ответить с цитированием
Старый 16.02.2008, 20:42   #12
Air
Участник клуба
 
Аватар для Air
 
Регистрация: 30.04.2007
Сообщений: 1,307
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Да и по Вашему мемо в памяти не помещается?
- В памяти, Да, но и на форме место занимает.

Чтоб не продолжать эту дискуссию, поясню, что сравнивал я не сам класс TMemo, а его св-во TMemo.Items (просто написал коряво)
Возможно из-за этого и пошли разногласия.
Всё гениальное - просто!
Air вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как правильно работать с массивом TStrings Air Общие вопросы Delphi 6 19.12.2007 17:55
проблема с *.chm FAiver Свободное общение 5 28.09.2007 21:01
Функции и TStrings tebeen Паскаль, Turbo Pascal, PascalABC.NET 7 18.09.2007 20:09