![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с TBitmap в KOL
<Falcon> © (2005-01-21 14:39:00)Возможно кто-то сталкивался с подобной ситуацией.
На форме лежит PaintBox, в onPaint событии есть такой код
procedure TForm4.PaintBox1Paint(Sender: PControl; DC: HDC);
begin
PaintBox1.Canvas.Brush.Color:=clBtnFace;
PaintBox1.Canvas.FillRect(MakeREct(0,0,PaintBox1.Width,PaintBox1.Height));
PaintBox1.Canvas.Brush.Color:=clWhite;
PaintBox1.Canvas.FillRect(ListR);
if Page <> 0 then
StretchBlt(PaintBox1.Canvas.Handle,X,Y,DRect.Right-DRect.Left, DRect.Bottom-DRect.Top,
SumBitmap.Canvas.Handle,SRect.Left,SRect.Top,SRect.Right-SRect.Left, SRect.Bottom-SRect.Top,SRCCOPY);
end;
SumBitmap создается при создании формы, освобождается по закрытию, а его содержимое меняется по событиям в программе (а также ширина, высота, свойства кисти)
При этом после одного-двух изменений в битмэпе программа вылетает с ошибкой AccessVialation на коловской функции Canvas.GrtPen
Что может быть причиной?
D7 WinXP KOL2.0
miek (2005-01-23 00:08:00) [1]О, DDB - это плохо, с ним всегда бывают глюки. Создавай битмап через NewDIBitmap (могу ошибиться в названии) и сразу задавай его формат. 90% уверенности, что все проблемы исчезнут.
<Falcon> (2005-01-22 19:54:00) [2]
> Такое было в старых версиях KOL. У тебя какая?
У меня версия 2.0
К стати, при изменении высоты битмэпа вводится строка
HandleType := bmDDB;
при изменении ширины - нет. Почему и вообще, для чего это нужно?
thaddy (2005-01-22 00:59:00) [3]I can not reproduce this ..
.. did a loop of 100 times... (without pause)
Maybe something different?
miek (2005-01-21 20:16:00) [4]Такое было в старых версиях KOL. У тебя какая?