Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.27;
Скачать: CL | DM;

Вниз

О прорисовке на битмапе   Найти похожие ветки 

 
DmiSb   (2005-01-12 09:18) [0]

Уважаемые местера, дайте совет. Если я в отдельно процедуре рисую на битмапе текст, приходится вызывать её  какждый раз при onPaint (перерисовавыть все заново).  На медленной машине видно, как идет прорисовка, это не очень приятно. Да и в процедуре идут некоторые вычисления, что тоже подтормаживает. Может кто подскажет как это исправить ?


 
tesseract   (2005-01-12 10:50) [1]

рисуё на отдельной канве потом BitBlt


 
DmiSb   (2005-01-12 11:36) [2]

2 tesseract

Немного поясню как у меня : На ScrollBox кладу PaintBox (размер А4), затем на нем cоздаю BitMap и на нем рисую текст и пр. Если я буду рисовать на отдельной канве нужно ли для этого дополнительный BitMaр и не сильно ли это будет отедать память, все таки два больших BitMaр`а?


 
DmiSb   (2005-01-13 06:22) [3]

Чёт не получается у меня. Нашел пример рисования через BitBlt/

var
 MemDc : hdc;
 dc : hdc;
 MemBitmap : hBitmap;
 OldMemBitmap : hBitmap;

При открытии формы
 dc := GetDc(0);
 MemDc := CreateCompatibleDc(dc);
 MemBitmap := CreateCompatibleBitmap(dc, 100, 100);
 ReleaseDc(0, dc);

В процедуре рисую
 OldMemBitmap := SelectObject(MemDc, MemBitmap);
 PatBlt(MemDc, 0, 0, 100, 100, WHITENESS);
 Ellipse(MemDc, 0, 0, 100, 100);

 BitBlt(PB.Canvas.Handle, 100, 100, 100, 100,
   MemDc, 0, 0, SRCCOPY);
 SelectObject(MemDc, OldMemBitmap);

В onPaint
 BitBlt(PB.Canvas.Handle, 100, 100, 100, 100,
   MemDc, 0, 0, SRCCOPY);

Освобождаю объекты только при закрытии формы
 DeleteObject(MemBitmap);
 DeleteDc(MemDc);

Рисоваться, то рисуется, но при скроллинге размазывается.
Может у кого есть примерчик ?


 
Kerk ©   (2005-01-13 06:32) [4]

DmiSb   (13.01.05 6:22) [3]
перерисовывай при скролинге


 
DmiSb   (2005-01-13 11:03) [5]

Kerk
перерисовывай при скролинге


В этом случае не перерисовывается вообще.


 
DmiSb   (2005-01-13 11:18) [6]

Точнее сказать, он прорисовывается, но после того как отпускаешь скроллер. В время скроллирования вообще ничего нет.


 
Kerk ©   (2005-01-13 12:37) [7]

DmiSb   (13.01.05 11:18) [6]
используй ScrollBox


 
DmiSb   (2005-01-13 13:46) [8]

Дык я так и делаю. На форме лежит ScrollBox, на нем PaintBox заведомо больших чем он размеров. На него я накладываю временный рисунок. И тут возникает бяка :(
А примера нету ?


 
Kerk ©   (2005-01-13 15:03) [9]

DmiSb   (13.01.05 13:46) [8]
покажи код рисования. не тот пример. а твою реализацию



Страницы: 1 вся ветка

Текущий архив: 2005.02.27;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
1-1108368951
Игорь нтк
2005-02-14 11:15
2005.02.27
ограничение символов в Мемо


1-1108450650
Pashkerton
2005-02-15 09:57
2005.02.27
Динамическое TMemo


3-1107237294
Aleks_666
2005-02-01 08:54
2005.02.27
tdbGRID


14-1107704183
Ivolg
2005-02-06 18:36
2005.02.27
Java Virtual Machine


3-1106732533
}|{yk
2005-01-26 12:42
2005.02.27
Как сделать выборку по главной таблице