Главная страница
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.025 c
11-1092376972
DmiSb
2004-08-13 10:02
2005.02.27
KOL & Excel


14-1107917470
Думкин
2005-02-09 05:51
2005.02.27
С Днем рождения! 9 февраля


3-1106770851
MakedoneZ
2005-01-26 23:20
2005.02.27
На счет хорошего стиля и TDBGrid.


1-1108460010
Timofey
2005-02-15 12:33
2005.02.27
HTML


10-1082127000
Koster
2004-04-16 18:50
2005.02.27
Передача массивом Ole объекту