Текущий архив: 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?? если он не PublicDC := 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.44 MB
Время: 0.036 c