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

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

TBitMap выдает Exception [D6]


Frozzen ©   (2004-08-11 12:17:00) 

Здравствуйте!
Я пытаюсь создать TBitMap, допустим 2000х1900, и в момент присваивания TempBitmap.Height := BitmapHeight;
вылетает исключение о нехватке памяти.
Можно ли это побароть и как?


Mihey_temporary   (2004-08-11 14:26:00) [1]

Если хочешь почитать, то...
Graphics Program Cannot Create Large Bitmap
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q227617
Why am I having trouble displaying and/or printing a very large bitmap? - by Borland Developer Support Staff
http://community.borland.com/article/0,1410,17418,00.html


Mihey_temporary   (2004-08-11 14:21:00) [2]

Лучше не создавать битмапы с HandleType = bmDDB больше размеров экрана. А как известно, когда PixelFormat не указывается явно (или HandleType не ставится в bmDIB), то создаётся аппаратно-зависимый битмап (DDB) и PixelFormat = pfDevice.


wicked   (2004-08-11 13:44:00) [3]

1. слинковать с debug library (птица в Project-Options)
2. зайти по F7 в присвоении св-ва TempBitmap.Height := BitmapHeight
3. найти вызовы CreateCompatibleBitmap (в случае с ошибкой)/что то другое, скорей всего CreateDIBSection (в случае без ошибки)
4. почитать раздел MSDN об упомянутых функциях и о битмапах вообще... :)


Frozzen   (2004-08-11 13:38:00) [4]

спасибо за подсказку
а пояснений буду ждать


Frozzen   (2004-08-11 13:26:00) [5]

вроде помогло
а почему так поясните чуть


wicked   (2004-08-11 13:07:00) [6]

скорее уж TempBitmap.HandleType := bmDIB....


icWasya   (2004-08-11 12:36:00) [7]

Попробуй  перед изменением размера сделать так
TempBitmap.Pixelformat:=pf24Bit; //или pf32Bit


Наверх

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