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

Вниз

стирается Canvas   Найти похожие ветки 

 
kirilllius   (2004-11-02 21:09) [0]

В чем проблема?
Я хочу рисовать на панели, но, как известно она не содержит Canvas. Я делаю следующее

var Pan: TControlCanvas;
begin
 Pan:=TControlCanvas.Create;
 Pan.Control := Panel1;
 Pan.StretchDraw(…);
end;

Все работает, НО, когда я минимизирую приложение и восстанавливаю обратно, все нарисованное на панели исчезает, т.е. стирается. Подскажите, как рисовать на панели (используя Canvas) чтобы ничего никуда не исчезало?


 
Юрий Зотов ©   (2004-11-02 21:28) [1]

У панели ЕСТЬ canvas, только он находится в секции protected. Получить к нему доступ можно так:

type
 TFriendPanel = class(TPanel);

with TFriendPanel(Panel1).Canvas do
begin
...
end;

И не надо создавать никаких своих canvas"ов. А чтобы ничего никуда не исчезало, рисунок нужно своевременно обновлять (то есть, перерисовывать).


 
kirilllius   (2004-11-03 00:56) [2]

Всё ясно, буду своевременно обновлять.


 
Stexen   (2004-11-03 02:17) [3]

ну там событие наверняка есть onPaint если у него нет то повесь на onPaint у формы перерисовку!
Вот и еще зачем нафиг использовать Canvas?? если он не Public

DC := GetDC(Panel.Handle);
получил дескриптор а там уже делай че хошь


 
Юрий Зотов ©   (2004-11-03 11:53) [4]

> Stexen   (03.11.04 02:17) [3]
> нафиг использовать Canvas?? если он не Public

Вот как раз затем, чтобы не надо было получать DC. Каждый GetDC - это захват ресурсов GDI, а они совсем не бесконечны.



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

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

Наверх




Память: 0.47 MB
Время: 0.028 c
14-1099588904
Yegorchic
2004-11-04 20:21
2004.11.21
Территория


4-1097414017
Ralf
2004-10-10 17:13
2004.11.21
Как выключить монитор


1-1099462739
hgd
2004-11-03 09:18
2004.11.21
Как можно зашить в программу dll?


14-1099135392
Yuri Btr
2004-10-30 15:23
2004.11.21
Входящие подключения - проблема с модемом в XP


14-1098946507
1008
2004-10-28 10:55
2004.11.21
Я уж и забыл, что такое от души посмеяться