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

Вниз

Как создать на клиентской части формы БИТМАП (НЕ канву).   Найти похожие ветки 

 
xn0bys ©   (2003-08-29 08:23) [0]

Мне нужно добраться до scanlines не используя временный битмап.

У меня есть вот что:

procedure OnPaint;
Var
Temp:TBitmap;
begin
Temp:=TBitmap.Create;
Temp.Width:=ClientWidth;
Temp.Height:=ClientHeight;
...
здесь рисую на временном битмапе (через сканлайны)
...
Canvas.Draw(0,0,Temp);
Temp.free;
end;


А нужно чтоб не использовать Temp.
Я пробовал так:

procedure OnPaint;
Var
DC1, DC2: HDC;
Temp : TBitmap;
begin
Temp:=TBitmap.Create;
DC1:=CreateCompatibleDC(Canvas.Handle);
DC2:=CreateCompatibleBitmap(Canvas.Handle, nil, nil, nil);
Temp.Handle:=DC2;
...
здесь рисую на временном битмапе (через сканлайны)
...
DeleteDC(DC2);
DeleteDC(DC1);
Temp.free;
end;


Так работает быстрее, но почему-то не рисует (ошибки не выдает).
Может я чего не то делаю? Подскажите.

Заранее Спасибо!!!


 
mrAld ©   (2003-08-29 12:31) [1]

Во втором коде что-то мне подсказывает, что ты забыл забыл привязать DC2 к DC1. Сам посуди, DC1 в этом коде не используется.


 
xn0bys ©   (2003-08-29 12:49) [2]

Всё равно не рисует!


 
Крот ©   (2003-09-02 10:22) [3]

1. Почему значение, возвращаемое CreateCompabliteBitmap ты помещаешь в переменную типа HDC, ведь возвращается HBITMAP?

2. Где собственно код рисования (в первом примере это Canvas.Draw, а во втором?)



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

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

Наверх




Память: 0.47 MB
Время: 0.03 c
14-12050
albatros
2003-12-09 18:39
2004.01.05
Наибольшее натуральное число, кодируемое 16 битами?


1-11919
Magician
2003-12-21 10:07
2004.01.05
Прокрутка коипонента


1-11968
frost
2003-12-19 13:41
2004.01.05
Проблема с chm файлом справки.


4-12195
MaG
2003-11-04 20:08
2004.01.05
.............помощь в создании


3-11800
OlegM
2003-12-09 06:51
2004.01.05
Использование компонента TDBF (добавление получение картинок)