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

Вниз

Как нарисовать что-нибудь на контроле, не имеющем Canvas a?   Найти похожие ветки 

 
Romeo ©   (2003-09-30 16:59) [0]

Собственно все...
Заранее спасиба


 
ZEE ©   (2003-09-30 17:02) [1]

положить на этот контрол TPaintBox или TImage и на нем нарисовать...


 
willys ©   (2003-09-30 17:05) [2]

смотря что за контрол. если у него есть хендл, то можно получить его DC и рисовать с помощь WinAPI.


 
Nikolay M. ©   (2003-09-30 17:05) [3]

Если Handle окна у контрола имеется, тогда
var
DC : HDC;
begin
DC := GetDC (MyControl.Handle);
try
... // API-функции для работы с DeviceContext
finally
ReleaseDC (DC, MyControl.Handle);
end;
end;

примерно так. ПисАл по памяти, мож где споткнулся...


 
han_malign ©   (2003-09-30 17:15) [4]

> положить на этот контрол TPaintBox или TImage и на нем нарисовать...
- обычно этот "контрол" не является потомком TWinControl и поэтому "положить" на него - не получится.

>Romeo ©
- посмотри реализацию TGraphicControl и/или TCustomControl в Controls.pas и все вопросы отпадут...(ну, немножко методов дописать/перекрыть придется, но на то он и ООП)


 
han_malign ©   (2003-09-30 17:19) [5]

>DC := GetDC (MyControl.Handle);
- если Handle имеется (а у "контролов" он имеется всегда) то можно и не мудрствуя лукаво:
FCanvas := TControlCanvas.Create;
TControlCanvas(FCanvas).Control := Self;
:)))
З.Ы. Хотя с DC тоже поковыряться полезно...


 
romeo ©   (2003-09-30 17:27) [6]


> han_malign ©


RESPECT


 
Nikolay M. ©   (2003-09-30 17:32) [7]


> han_malign © (30.09.03 17:19) [5]

Handle - это привилегия T WinControl, а не TControl.


 
PVOzerski ©   (2003-10-01 17:53) [8]

А если это не потомок tWinControl, то фактически он (скорее всего - если только это не окошко, созданное "мимо" VCL) использует DC (=Canvas.Handle) окошка, на котором расположен, надо только пересчитать координаты.



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

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

Наверх




Память: 0.48 MB
Время: 0.036 c
7-40687
mox
2003-07-29 15:38
2003.10.13
Как можно запустить программу до старта Windows?


6-40561
Vredina
2003-08-01 15:20
2003.10.13
UDP Message


7-40683
BlackIce
2003-08-01 14:31
2003.10.13
Регистрация драйвера


6-40539
Checist [root]
2003-08-16 02:57
2003.10.13
Анализ Html


1-40448
Filat
2003-10-02 17:56
2003.10.13
Программно переместить курсор в RzDBCombobox.