Турбо Паскаль 6.0

         

Коллекции в потоках: полный пример.


В главе 7 "Коллекции" Вы видели как можно сохранять в коллекциях различные, но связанные объекты. К потокам так же применимы полиморфные свойства и они могут использоваться для сохранения целой коллекции на диске для восстановления в другое время или даже другой программы. Посмотрим еще раз TVGUID20.PAS. Что нужно сделать, чтобы эта программа вывела коллекцию в поток? Ответ удивительно прост. Во-первых, начнем с базового объекта TGraphObject и "научим" его как сохранять его данные (X и Y) в потоке. Это делает метод Store. Затем определим новый метод Store для каждого наследника TGraphObject, который добавляет новые поля (TGraphCircle добавляет Radius; TGraphRect добавляет Width и Height). Затем создадим регистрационную запись для каждого типа объекта, который будет сохраняться и зарегистрируем каждый из этих типов. Это все. Все остальное как при обычном вводе/выводе: объявите переменную потока; создайте новый поток; поместите всю коллекцию в поток одним оператором; закройте поток.



Содержание раздела