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

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

Как скопировать небольшую часть картинки в новый битмап? [D7, WinXP]


Artemiy2004 ©   (2004-10-30 13:55:00) 

Добрый день, вот нашел такой исходник на вашем форуме. В нем предполагалось копирование изображения панельки в битмап. Хотел тоже самое сделать, но только скопировать маленький кусочек размером 16х16 из большой картинки которая загружена в Image1.
Далее этот новый маленький битмап делаю глифом SpeedButton. Результат, вместо картинки вставляется пустота. Что я тут неверно делаю, поправьте исходник пожалуйста.

procedure TForm1.MakeBitMap;
var
srcDC, destDC: HDC;
hbm: HBITMAP;
resBMP: TBitMap;
begin
resBMP := TBitMap.Create;

srcDC := GetDC(Image1.Picture.Bitmap.Handle);
destDC := CreateCompatibleDC(srcDC);

// создаем битмап
hbm := CreateCompatibleBitMap(srcDC, 16, 16);

SelectObject(destDC, hbm);

// копируем содержимое
BitBlt(destDC, 0, 0, 16, 16, srcDC, 0, 0, SRCCOPY );

resBMP.Handle := hbm;

// после использования удаляем все лишнее
DeleteDC( destDC );
ReleaseDC(Image1.Picture.Bitmap.Handle, srcDC );
DeleteObject( hbm );

SpeedButton1.Glyph := resBMP;
end;


Mihey_temporary   (2004-10-30 23:39:00) [1]

Кстати, ты знаешь, что TBitmap.Canvas.Handle имеет тип HDC??? Действуй.


Defunct   (2004-10-30 21:17:00) [2]

CopyRect


Artemiy2004   (2004-10-30 14:12:00) [3]

очень нужно, помогите плиз.


Наверх

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