Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Работа с изображениями [D7, IB6.x]


Inkotex ©   (2003-12-11 19:36:00) 

Возникла вот такая проблема.
Как сделать так чтоб в своей програме (работа с базой даных) я мог хранить некоторые избражения, которые потом мог выводить(использовать) при определенных условиях, но не в самой базе?


Denis   (2003-12-12 09:16:00) [1]

Для себя я написал следующую процедуру:
procedure ShowImage(Table:TBlobField;Jim:TImage;);

Procedure TfmEditing.ShowImage;
var
FName :string;
Stream:TMemoryStream;
Img:TJpegImage;
Rect:TRect;
begin
Img:=TJpegImage.Create;
Rect.Left:=0;
Rect.Top:=0;
Rect.Right:=Jim.Width;
Rect.Bottom:=Jim.Height;
//пишем из файла в память
FName:=OpenDialog1.FileName;
Stream:=TMemoryStream.Create;
Stream.LoadFromFile(FName);
//и из памяти в поле таблицы
Stream.Position:=0;
Table.LoadFromStream(stream);
Streem.Free;
end;
//сразу же считываем из таблицы в память - как бы проверка
if not Table.IsNull then
begin
Stream:=TMemorystream.Create;
Table.SaveToStream(Stream);
//и прорисовываем на форме
streem.Position:=0;
try
Img.LoadFromStream(Stream);
Jim.canvas.StretchDraw(Rect,Img)
except

begin
Img.Free;
end;
end;
Stream.Free;
end
else
//если поле таблицы пусто
begin
Jim.Canvas.Brush.Color:=fmEditing.Color;
Jim.Canvas.Rectangle(0,0,Jim.Width,Jim.Height);
end;
Jim.Free;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо