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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.04.2007, 16:06   #1
Bibigul
Новичок
Джуниор
 
Регистрация: 05.04.2007
Сообщений: 2
По умолчанию Вставка записи в поле графического типа

Здравствуйте! Можете подсказать как можно вставить изброжение в поле графического типа через Query, таблицы Paradox.
Bibigul вне форума Ответить с цитированием
Старый 06.04.2007, 16:11   #2
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

ипользовать вот этот модуль... писал для себя... до сих пор им пользуюсь
Код:
unit uJobFieldBlob;
interface
uses jpeg, Classes, Graphics, DB, SysUtils;
  function GetStreamImgType(Stream: TStream): TClass;
  procedure LoadProperImage(Stream: TStream; Picture: TPicture);
  function LoadPictureFromBLOB(Picture: TPicture; Field: TBlobField): boolean;
  procedure SavePictureToBlob(Picture: TPicture; Field: TBlobField);
implementation
function GetStreamImgType(Stream: TStream): TClass;
var
  StreamPos: int64;
  ImgSign: string;
begin
  StreamPos := Stream.Position;
  try
    //BMP если не определено
    Result := Graphics.TBitmap;
    //JPEG
    SetLength(ImgSign, 4);
    Stream.Seek(6, soFromCurrent);
    Stream.Read(ImgSign[1],4);
    if (UpperCase(ImgSign) = 'JFIF') or (UpperCase(ImgSign) = 'EXIF') then
      Result := Jpeg.TJPEGImage;
    //WMF
    Stream.Position := StreamPos;
    SetLength(ImgSign, 4);
    Stream.Read(ImgSign[1],4);
    if ImgSign = #$D7#$CD#$C6#$9A then
      Result := Graphics.TMetafile;
  finally
    Stream.Position := StreamPos;
  end;
end;
procedure LoadProperImage(Stream: TStream; Picture: TPicture);
var
  Img: TGraphic;
  StreamPos: int64;
begin
  StreamPos := Stream.Position;
  Img := TGraphicClass(GetStreamImgType(Stream)).Create;
  try
    Stream.Position := StreamPos;
    Img.LoadFromStream(Stream);
    Picture.Graphic := Img;
  finally
    Img.Free;
  end;
end;
function LoadPictureFromBLOB(Picture: TPicture; Field: TBlobField): boolean;
var
  Stream: TStream;
begin
  Result := False;
  if not Field.isNULL then
  begin
    Stream := TMemoryStream.Create;
    try
      Field.SaveToStream(Stream);
      Stream.Position := 0;
      LoadProperImage(Stream, Picture);
      Result := True;
    finally
      Stream.Free;
    end;
  end;
end;
procedure SavePictureToBlob(Picture: TPicture; Field: TBlobField);
var
  Stream: TStream;
begin
  if not (Field.DataSet.State in [dsEdit, dsInsert]) then
    Field.DataSet.Edit;
  Field.Clear;
  if Assigned(Picture.Graphic) then
    if not Picture.Graphic.Empty then
      begin
        Stream := TMemoryStream.Create;
        try
          Picture.Graphic.SaveToStream(Stream);
          Stream.Position := 0;
          Field.LoadFromStream(Stream);
        finally
          Stream.Free;
        end;
      end;
end;
end.
я здесь его уже выкладывал...
как использовать разберёшься..
dron-s вне форума Ответить с цитированием
Старый 10.04.2007, 15:59   #3
Bibigul
Новичок
Джуниор
 
Регистрация: 05.04.2007
Сообщений: 2
По умолчанию

Спасибо!Надо только теперь его разобрать.
Bibigul вне форума Ответить с цитированием
Старый 10.04.2007, 16:07   #4
dron-s
Форумчанин
 
Регистрация: 04.03.2007
Сообщений: 615
По умолчанию

Цитата:
Сообщение от Bibigul Посмотреть сообщение
Спасибо!Надо только теперь его разобрать.
код рабочий на все 100%!!!!!!
dron-s вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вставка текста в активное поле Dj_smart Общие вопросы Delphi 6 11.08.2008 18:11
Вставка в поле Edit EVO-X Общие вопросы Delphi 10 11.07.2008 22:25
Поиск слова в поле типа МЕМО БД PARADOX KAZAKH БД в Delphi 2 05.06.2008 07:22