Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Звук, графика и видео > TPicture в file of record.


Автор: NiJazz 9.1.2004, 22:27
Есть большая структура... ой, запись... smile.gif
Код
type MyRecord = record

Я хочу в программе с помощью OpenPictureDialog сохранять объекты TPicture в файл как элементы массива. Выдаёт делфа ошибку при таком коде:
Код

procedure TForm1.BitBtn55Click(Sender: TObject);
var i: byte;
   fname: string;
begin
i := PhotosInd;
while Crm.Photos[i] <> nil do i:=i+1;
OpenPictureDialog1.Execute;
fname := OpenPictureDialog1.FileName;
Crm.Photos[i].LoadFromFile(fname);
end;

Как быть? withstupid.gif

Автор: NiJazz 9.1.2004, 22:29
Что-то кнопка CODE глючить стала.... Приходится ручками... sad.gif
Вот она, структура:
Код

type MyRecord = record
                             {что-то}
                             Photos: array[1..5] of TPicture;
                             {ещё что-то}

Автор: NiJazz 10.1.2004, 10:51
Что, нельзя?
В принципе, конечно можно ограничиться ссылкой в виде string'a на файл. Но всё же...

Автор: Paradox 10.1.2004, 12:08
ИМХО конечно можно запихать в один файл все это хозяйство (просто как последовательность бит) , а как потом вынать отттуда быдешь и доказыать компоненту что вынул ты jpeg например ?
Зачем такое извращение ?

Автор: p0s0l 10.1.2004, 14:59
В файле record'ов сохранить динамический объект нельзя. Лучше храни все картинки в отдельном нетипизированном файле, а в рекорде храни смещение картинки относительно начала файла.
Если мне не изменяет память, то у TPicture есть свойства LoadFromStream и SaveToStream - они тебе помогут без геморроя сохранить/считать объекты TPicture из файлового потока (если есть такие методы).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)