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

Вниз

Создать вот так канвас   Найти похожие ветки 

 
Canvas   (2004-07-25 07:42) [0]

почему я не могу просто создать вот так канвас:
cc:=TCanvas.Create;
и сразу на ней рисовать?
почему надо ей hDC присваивать?

без присваивания hDC функции Draw и CopyRect говорят "канвас дро нот аллоу"......

и как присвоить? любой hDC.. (поскольку это врем. объект для хранения врем. инфы)

А?


 
Canvas   (2004-07-25 09:32) [1]

Как вообще создать пустой временный TCanvas?


 
Ertong ©   (2004-07-25 09:47) [2]

Создавай Bitmap. И на нем рисуй! У него тоже есть канвас.


 
Canvas   (2004-07-25 12:04) [3]

Это то да..
Но меня интересует именно TCanvas и его Handle...

можно ли получить хэндл не конкретного объекта, а просто..
временный..


 
Gero ©   (2004-07-25 12:23) [4]


> Canvas   (25.07.04 12:04)

Что значит времменный?
Хэндл по определению это идентефикатор объекта.

И зачем это надо?


 
Canvas   (2004-07-25 13:33) [5]

то есть нет.
у куда потенциально можно вообще записать кусок картинки..
тока чтоб его (если там в буфер) не затерли..

чтоб он меня дождался.. )


 
14560   (2004-07-25 13:33) [6]

хендл канваса и есть HDC, это же просто обертка


 
dmk ©   (2004-07-25 13:35) [7]

Если вы внимательно посмотрите на исходные функции
WinApi, для которых TCanvas является оберткой,
то увидите, что почти каждой API-функции нужно
указывать контекст(DC) на котором требуется
отрисовка. Можно на ходу менять контекст вывода.
Например:
var
 dc:    hdc;
 mc:    TCanvas;

begin
 dc := GetDC(0);
 mc := TCanvas.Create;
 mc.Handle := dc;
 mc.Ellipse(10, 10, 300, 200);
 ReleaseDC(0, dc);
 dc := GetWindowDC(Self.Handle);
 mc.Handle := dc;
 mc.Ellipse(100, 300, 300, 400);
 mc.Free;
 ReleaseDC(Self.Handle, dc);
end;


 
Canvas   (2004-07-25 13:40) [8]

Ж-)

Да.. на счет этого я тоже в курсе......
и этого:

> хендл канваса и есть HDC, это же просто обертка


но в том  то и дело что мне не нужно конкретное окно..
чужое там.. или мое..
мне нужно просто на время (как в буфер) кусок графики залить..
только,

> чтоб он меня дождался..


 
Gero ©   (2004-07-25 13:47) [9]

Для этого есть bitmap.


 
dmk ©   (2004-07-25 14:11) [10]

CreateBitmap
CreateBitmapIndirect
CreateCompatibleBitmap
CreateDIBitmap
CreateDIBSection

выбор хороший

Или просто TBitmap
у него и канвас есть ;)
и не затирается ничего =)


 
Canvas   (2004-07-25 14:17) [11]

Псибо.


 
OSokin   (2004-07-25 17:13) [12]

CreateDC


 
parovoZZ ©   (2004-07-25 20:27) [13]

Если знаешь хэндл окна, то сможешь узнать его дескриптор, ну а дальше можно делать с кном всё, что душа пожелает. Ну почти всё.



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

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

Наверх




Память: 0.49 MB
Время: 0.024 c
3-1095565861
Fedia
2004-09-19 07:51
2004.10.17
Остановка выполнения SQL запроса


14-1096462546
Aleckceych
2004-09-29 16:55
2004.10.17
Уважаемые мастера, помогите, пожалуйста!...


6-1091989502
oleg_SYS
2004-08-08 22:25
2004.10.17
Как послать запрос аутентификацию по HTTP?


3-1095335493
analyser
2004-09-16 15:51
2004.10.17
Наследуемые формы и ADOCommand на форме-предке


1-1096550367
Zilog
2004-09-30 17:19
2004.10.17
Вопрос! Некорректное завершение работы приложения