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

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

Как из БД InterBase 6.x картинку затолкать в TImageList? [D6, IB6.x]


Z_man7777 ©   (2003-04-04 08:32:00) 

В принципе весь вопрос. Всем заранее спасибо!!!


Z_man7777   (2003-04-04 09:50:00) [1]

Так что мне сделать нужно, чтобы не выходило такой ошибки и все работало бы нормально?


Reindeer Moss Eater   (2003-04-04 09:42:00) [2]

Я про твое сохранение на диск.


Reindeer Moss Eater   (2003-04-04 09:41:00) [3]

Круто.
Ты в курсе что есть TBitmap.LoadFromStream???


Z_man7777   (2003-04-04 09:39:00) [4]

!Reindeer Moss Eater!
Короче, я уже сделал, но сделал с сохранением на винт:

procedure TFFlatsFound.GetSmaylesFromDB(ImageList: TImageList; cbImage: TComboBoxEx);
var
Bitmap: TBitmap;
MemStream: TMemoryStream;
Item: TComboExItem;
begin
cbImage.Items.Clear;
ImageList.Clear;
QRab.Active:=False;
QRab.SQL.Text:="select * from smayles";
QRab.Active:=True;
Bitmap:=TBitmap.Create;
MemStream:=TMemoryStream.Create;
try
while not QRab.EOF do
begin
MemStream.Clear;
Bitmap.FreeImage;
TBlobField(QRab.Fields[1]).SaveToStream(MemStream);
MkDir("c:\Temp");
MemStream.SaveToFile("c:\temp\"+QRab.Fields[0].AsString+".bmp");
Bitmap.LoadFromFile("c:\temp\"+QRab.Fields[0].AsString+".bmp");
ImageList.Add(Bitmap,Bitmap);
Item:=cbImage.ItemsEx.Add;
Item.Caption:=QRab.Fields[0].AsString;
Item.ImageIndex:=QRab.Fields[0].AsInteger-1;
DeleteFile("c:\temp\"+QRab.Fields[0].AsString+".bmp");
QRab.Next;
end;
finally
MemStream.Free;
Bitmap.Free;
end;
end;

А хотелось бы обойтись без сохраниения на винт, то есть с помощью:
...
Bitmap.LoadFromStream(MemStream);
...
Но выходит ошибка: "Invalid image size"
Что мне нужно сделать?


Reindeer Moss Eater   (2003-04-04 09:24:00) [5]

Я исходил из того, что если ты спрашиваешь, как затолкнутькартинку, то картинка у тебя уже есть.

Как получить картинку из поля БД?
Каждая операция записи имеет свою пару - операцию чтения.
Действуй так же как и при записи картинки, но в обратном порядке.


Z_man7777   (2003-04-04 09:20:00) [6]

!Reindeer Moss Eater!
Я имею в виде, распиши вот это - "Картинка_из_БД_Interbase_в_виде_TBitMap"
Как оно выглядеть будет в коде?


Reindeer Moss Eater   (2003-04-04 09:13:00) [7]

ImageList1.Add(....

Это не пример????


Z_man7777   (2003-04-04 09:04:00) [8]

!Reindeer Moss Eater!
Если можешь, то приведи пример, так нагляднее будет. Буду очень признателен!!!


Reindeer Moss Eater   (2003-04-04 08:46:00) [9]

ImageList1.Add(Картинка_из_БД_Interbase_в_виде_TBitMap,Маска_в_виде_TBitMap);


Наверх

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