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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2009, 14:19   #1
soccer
Новичок
Джуниор
 
Регистрация: 12.05.2009
Сообщений: 1
По умолчанию Сохранения картинок в БД. Ole.

Нужно чтобы в базе данных сохранялся рисунок, вставленный через OpenPictureDialog.
Поставил в БД компонент OLE. Рисунок вставляется, однако не хочет сохраняться.

Последний раз редактировалось soccer; 12.05.2009 в 14:38.
soccer вне форума Ответить с цитированием
Старый 12.05.2009, 14:21   #2
Neeter
Форумчанин
 
Аватар для Neeter
 
Регистрация: 22.02.2009
Сообщений: 875
По умолчанию

Вот пример:
Код:
procedure TfrmFilms.MOpenPictureClick(Sender: TObject);
var
 C: TClipboard;
 img: TImage;
begin
 if sOpenPictureDialog1.Execute then
 begin
  C := TClipboard.Create;
  try
   img := TImage.Create(Self);            //Создаем экземпляр TImage
   img.Picture.LoadFromFile(sOpenPictureDialog1.FileName);    //Загружаем изображение
   //Тут проверяется расширение, и в зависимости от него присваиваем буферу картинку
   if (ExtractFileExt(sOpenPictureDialog1.FileName) = '.jpg') or
     (ExtractFileExt(sOpenPictureDialog1.FileName) = '.jpeg') then
    C.Assign(img.Picture.Graphic);
   if (ExtractFileExt(sOpenPictureDialog1.FileName) = '.bmp') or
     (ExtractFileExt(sOpenPictureDialog1.FileName) = '.png') then     //PNG поддерживается только в Delphi 2009, если у вас версия меньше, то удаляйте эту строчку
    C.Assign(img.Picture.Bitmap);
   if (ExtractFileExt(sOpenPictureDialog1.FileName) = '.wmf') or
     (ExtractFileExt(sOpenPictureDialog1.FileName) = '.emf') then
    C.Assign(img.Picture.Metafile);

   DBImage1.PasteFromClipboard;

   DataModule1.tb_Films.Edit;
   DataModule1.tb_FilmsНазвание.Value := DataModule1.tb_FilmsНазвание.Value;   //Здесь любому другому полю присваиваем себя, это чтобы сохранилось сразу
  finally
   C.Free;
  end;
 end;
end;
Надо в Uses добавить Clipbrd
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.

Последний раз редактировалось Neeter; 12.05.2009 в 14:28.
Neeter вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для сохранения всех картинок из Word в файл Nitro Microsoft Office Word 5 24.05.2012 21:05
OLE Maks1978 БД в Delphi 1 29.10.2008 10:06
OLE ??? Selena Общие вопросы Delphi 3 05.01.2008 18:00
Сохранения программы niva622 Помощь студентам 8 21.01.2007 09:10