Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Вниз

Надо ли очищать Canvas   Найти похожие ветки 

 
anbezr   (2003-02-07 18:26) [0]

Привет!
может быть вопрос глупый, но...
я неоднократно (про каждом WM_PAINT) затираю Canvas:
R := ClientRect;
Brush.Color := clBtnFace;
Brush.Style := bsSolid;
Pen.Color := clBtnFase;
Rectangle(R);
и тут я вспомнил про метод, который позволяет сохранить Canvas как метафайл, т.е. все мои перетирания хранились как боксы в памяти?


 
MBo   (2003-02-07 18:28) [1]

вопрос неясен


 
anbezr   (2003-02-07 18:37) [2]

Вопрос в следующем: сохраняется ли каждый Rectangle в памяти при каждом вызове метода Paint, или же в памяти сохраняется только результат последнего Paint"а. другими словами - Canvas - это метафайл или Bitmap?


 
MBo   (2003-02-07 18:39) [3]

1) Не сохраняется
2) Ни то, ни другое.


 
Юрий Федоров   (2003-02-07 18:40) [4]

Ничего не хранится.
Можно не затирать, если в ответ на
WM_ERASEBKGND вернуть 0 (или не 0, точно не помню - посмотри по F1)


 
anbezr   (2003-02-07 18:43) [5]

просто из любопытства - а что тогда.


 
Юрий Зотов   (2003-02-07 21:02) [6]

Canvas - это объект Delphi, инкапсулирующий контекст устройства (DC), объекты GDI (Pen, Font, Brush) и методы рисования этими объектами на этом DC.


 
Style   (2003-02-07 21:20) [7]

А канву затирать не желательно. GUI и без того достаточно тормозит. Если ты например рисуешь линию, то запоминай ее старые координаты и затирай именно линию а не всю канву, если рисуешь Текст опять же запоминай координаты и рисуй текст фоновым цветом чтобы его предварительно стереть. Так же можно поступать и с TBitmap и т.д. Неудобно но практично!
А вообще есть такие интересные компоненты Delphi DirectX поищи их а именно TDXPaintBox, TDIB, у них есть тоже Canvas но рисуеться он раз в 20 быстрее и кроме того не трубуеться установки самого DirectX эти 2 компонента не используют его самого и соответственно работают на всех платформах 95,9x,NT,2000,XP..

Удачи!



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

Форум: "Основная";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.009 c
1-52923
Barman
2003-02-06 06:42
2003.02.17
Excel


1-52983
ltexcimer
2003-02-10 11:29
2003.02.17
номер строки в StringGrid


6-53149
Hawk2
2002-12-26 14:51
2003.02.17
Написание cgi-скриптов.


4-53329
AlexRu
2003-01-05 13:55
2003.02.17
Какое значение у константы FOF_NORECURSION ?


3-52713
samson
2003-02-01 11:14
2003.02.17
XL Report





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский