Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.06.2008, 08:53
Жендос Жендос вне форума
Прохожий
 
Регистрация: 10.06.2008
Адрес: Ижевск
Сообщения: 8
Репутация: 10
Сообщение Как сохранить Bitmap в Record

Помогите! Есть запись типа TRecord, нужно в нее сохранить небольшой рисунок, возможно ли такое! Сам пробовал, никак не получается!
__________________
Я бы изменил мир, но бог исходников не дает!
Ответить с цитированием
  #2  
Старый 10.06.2008, 10:17
Аватар для Thrasher
Thrasher Thrasher вне форума
Illuminati
 
Регистрация: 06.03.2008
Адрес: Крым, г. Симферополь
Сообщения: 348
Репутация: 8808
По умолчанию

Есть ли осмысленная цель у поставленной задачи? Может быть достаточно такого класса как TBitmap?
__________________
Хорошо написанная программа не требует документации
ICQ 9-184-668.
Ответить с цитированием
  #3  
Старый 10.06.2008, 10:21
Жендос Жендос вне форума
Прохожий
 
Регистрация: 10.06.2008
Адрес: Ижевск
Сообщения: 8
Репутация: 10
По умолчанию

Просто у меня в записи хранятся информация различного вида и в том числе хочу сохранить туда рисунок! Помогите пожалуста кто может!
__________________
Я бы изменил мир, но бог исходников не дает!
Ответить с цитированием
  #4  
Старый 10.06.2008, 10:42
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Почему задающие вопрос не могут понять, что та скудная информация в вопросе не позволяет ответить полноценно. От того и получают ответы в этом же стиле или не получают ответы вовсе.
1. TRecord - это класс или record? Если record, то какова его структура?
2. Откуда будут браться картинки?
3. Куда сохранять? В файл, поток, память, буфер обмена, СУБД?

А если без словоблудия, то "какой вопрос, такой ответ":
Сказано же выше, что можно использовать TBitmap, который имеет методы SaveToFile и SaveToStream.
__________________
Не забывайте делать резервные копии

Последний раз редактировалось san-46, 10.06.2008 в 10:45.
Ответить с цитированием
  #5  
Старый 10.06.2008, 10:56
Жендос Жендос вне форума
Прохожий
 
Регистрация: 10.06.2008
Адрес: Ижевск
Сообщения: 8
Репутация: 10
По умолчанию

В общем:

TMaterials = record
Name, Article: String[100];
Manufacturer:String[20];
Image: TBitMap;
End;

Картинка будет открываться из файла в TImage и из TImage сохраняться в TMaterials.Image
__________________
Я бы изменил мир, но бог исходников не дает!
Ответить с цитированием
  #6  
Старый 10.06.2008, 11:19
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Ага, это уже "ближе к телу".
Код:
  Materials.Image := TBitMap.Create;
  Materials.Image.Assign(Image1.Picture.Bitmap);
Копирование картинки из Timage на форме в TBitmap структуры.
Только надо не забыть освободить память (Materials.Image.Free) тогда, когда рекорд уже не будет нужен.
__________________
Не забывайте делать резервные копии
Ответить с цитированием
  #7  
Старый 10.06.2008, 12:14
Жендос Жендос вне форума
Прохожий
 
Регистрация: 10.06.2008
Адрес: Ижевск
Сообщения: 8
Репутация: 10
По умолчанию

Спасибо, сегодня попробую!
__________________
Я бы изменил мир, но бог исходников не дает!
Ответить с цитированием
  #8  
Старый 10.06.2008, 22:12
Жендос Жендос вне форума
Прохожий
 
Регистрация: 10.06.2008
Адрес: Ижевск
Сообщения: 8
Репутация: 10
По умолчанию

Запись происходит, только картинка туда не записывается!!! А я хочу чтоб туда писалась вся картинка! Чтоб в одном файле хранились и записи и числа и картинки!
__________________
Я бы изменил мир, но бог исходников не дает!
Ответить с цитированием
  #9  
Старый 10.06.2008, 23:38
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

"только картинка туда не записывается". Куда "туда" и откуда понятно, что не записывается?
Неужели трудно сделать над собой усилие и обрисовать ситуацию конкретно? Общие слова ничего другим не объясняют. Например, опубликуйте код, в котором вы сохраняете записи, числа и картинки - это будет конкретно. Можно будет проанализировать чего происходит и в чем проблема.

Из того чего догадался (наверное).
Если вы записываете свой record TMaterials как запись в типизированный файл (file of TMaterials), то картинка, естественно, не будет записываться, т.к. в файл будет записана лишь ссылка на изображение (в элементе структуры Image хранится только ссылка). Необходимо record преобразовать в class и записывать картинки его методами.
__________________
Не забывайте делать резервные копии

Последний раз редактировалось san-46, 10.06.2008 в 23:49.
Ответить с цитированием
  #10  
Старый 10.06.2008, 23:54
Жендос Жендос вне форума
Прохожий
 
Регистрация: 10.06.2008
Адрес: Ижевск
Сообщения: 8
Репутация: 10
По умолчанию

Задача:
Создаем файл, например baza.txt
Создаем запись TRecord
Код:
Type
 TMaterials = record
  Name, Artaicle, Manufactured = String[100];
  Image: TBaitMap;
 End;

Var
    Materials: TMaterials;
    MaterialsFile: File of TMaterials;

Картинку к примеру загрузили из файла и поместили ее в TImage.
Name, Artaicle, Manufactured берем из TEdit.
Image из TImage.

Далее присваиваем всем переменным их значения и записываем в файл. Проблема в том, что нужно записать TBitMap в файл!!
Код:
AssignFile(MaterialsFile,'C:\Baza.txt');
ReWrite(MaterialsFile);
Materials.Name:=Edit1.Text;
Materials.Article:=Edit2.Text;
Materials.Manufactured:=edit3.Text;
Materials.Image:=Image1.Picture.BitMap;
Write(MaterialsFile,Materials);
CloseFile(MaterialsFile);
Admin: Пользуемся тегами для оформления кода!

В этом виде он записывает так сказать ссылку на Image1 и если удалить картинку из Image1, то при чтении из файла записи Materials.Image и помещения ее например в Image2 возникает ошибка!

Цель: Записать всю картинку целиком в эту запись!

Если нужно записать все это в Class то приведите пример пожалуста, не приходилось работать с ним!
__________________
Я бы изменил мир, но бог исходников не дает!

Последний раз редактировалось Admin, 12.12.2010 в 13:23.
Ответить с цитированием
  #11  
Старый 11.06.2008, 02:25
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

В прицепе работоспособный набросок класса, который сохраняет значения своих полей (в т.ч. и картинку) в файл. Читать из файла тоже может.
Вложения
Тип файла: zip project.zip (5.0 Кбайт, 127 просмотров)
__________________
Не забывайте делать резервные копии
Ответить с цитированием
Этот пользователь сказал Спасибо san-46 за это полезное сообщение:
tapky666 (10.12.2013)
  #12  
Старый 12.06.2008, 22:28
Жендос Жендос вне форума
Прохожий
 
Регистрация: 10.06.2008
Адрес: Ижевск
Сообщения: 8
Репутация: 10
По умолчанию

Большое спасибо, попробовал! Все работает! Буду кодить дальше )))
__________________
Я бы изменил мир, но бог исходников не дает!
Ответить с цитированием
  #13  
Старый 11.12.2010, 02:01
pk-udm pk-udm вне форума
Прохожий
 
Регистрация: 11.12.2010
Сообщения: 1
Репутация: 10
По умолчанию

Просто спасибо за пример
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 15:12.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025