![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как из БД 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);