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

Вниз

Победить мерцание на Canvas е.   Найти похожие ветки 

 
AlexanderMS ©   (2007-11-10 16:19) [0]

При вводе каждого символа в текстовое поле происходит рисование текста на Canvas"е PaintBox"а. При этом возникает мерцание, которое, естественно, мешает. Как можно его победить? А именно:
1) Как сделать механизм двойной буферизации, как в OpenGL? Может быть, это поможет?
2) Можно ли выводить текст XOR-ом?


 
Kolan ©   (2007-11-10 16:21) [1]

1. DuobleBuffered := True?


 
AlexanderMS ©   (2007-11-10 16:39) [2]


> 1. DuobleBuffered := True?

У какого объекта?


 
Kolan ©   (2007-11-10 16:44) [3]

TWinControl ?


 
AlexanderMS ©   (2007-11-10 17:36) [4]

Спасибо, сделал, но, скорее всего неверно: мерцание всё равно есть.

// Target : TComponent

     TPanel(Target).DoubleBuffered := true;
     Canvas := THackedPanel(Target).Canvas;//TPaintBox(Target).Canvas;
     Canvas.Brush.Color := BGColor;


и так далее.

Я просто хотел реализовать вручную, то есть создать Canvas, на него вывести, а затем через CopyRect скопировать. Как это сделать? Я пробовал, но не получалось: Canvas "не разрешал рисование".


 
homm ©   (2007-11-10 18:11) [5]

> [4] AlexanderMS ©   (10.11.07 17:36)
> Спасибо, сделал, но, скорее всего неверно

Конечно нет.

Вот рецепт.
TPanel(Target).DoubleBuffered := true; — это при загрузки формы, один раз.

Canvas.Brush.Color := BGColor; — это и прочее рисоание в OnPaint твоего TPaintBox в течении дня по мере необходимости.

Обновлять изображение — PaintBox.invalidate();


 
AlexanderMS ©   (2007-11-10 19:07) [6]


> homm ©   (10.11.07 18:11) [5]


Спасибо, попробую.

Если панель будет прорисовывться в секунду несколько раз (скорость набора на клавиатуре), мерцания не будет?
Ладно, посмотрю сам. :)


 
Kolan ©   (2007-11-10 19:15) [7]

> Ладно, посмотрю сам. :)

А ты хотел чтобы мы проверили? о_0


 
AlexanderMS ©   (2007-11-10 19:30) [8]


> А ты хотел чтобы мы проверили? о_0

Предположили :)

Большое спасибо, теперь рисую на Image, и вообще нет мерцания!


 
Gydvin ©   (2007-11-11 19:39) [9]

ну и рисовал бы на битмапе, а затем отрисовывал на паинтбокс.

зы. timage компонент вредный имхо ((


 
AlexanderMS ©   (2007-11-11 19:47) [10]


> зы. timage компонент вредный имхо ((

Да уж. Долго бился над тем, как изменить его размер... :) Да ещё с чёрным проблескиванием.


 
homm ©   (2007-11-11 19:51) [11]

> [9] Gydvin ©   (11.11.07 19:39)
> ну и рисовал бы на битмапе, а затем отрисовывал на паинтбокс.

Верно, нафига пользоватся отлаженым кодом, созданым дядушкой борландом, куда лучше свое кривое на коленке состряпать, ага? Впрочем для самообучения может и лучше.


 
Gydvin ©   (2007-11-11 20:17) [12]


> куда лучше свое кривое на коленке состряпать, ага?

Ну, смотря как стряпать )


 
homm ©   (2007-11-11 20:52) [13]

> [12] Gydvin ©   (11.11.07 20:17)
> Ну, смотря как стряпать )

А как ты думаешь, состряпает автор. если он текст на Canvas"е PaintBox"а рисуне в ON_PAINT.


 
homm ©   (2007-11-11 20:53) [14]

> [13] homm ©   (11.11.07 20:52)
> рисуне в

рисует не в

начинаю задумываться о клавиатуре дороже 100р.


 
Anatoly Podgoretsky ©   (2007-11-11 20:56) [15]

> homm  (11.11.2007 20:53:14)  [14]

Гни ее



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

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

Наверх




Память: 0.47 MB
Время: 0.047 c
11-1179996237
=BuckLr=
2007-05-24 12:43
2007.12.09
ScrollBars в рантайм


2-1195117909
Новичек
2007-11-15 12:11
2007.12.09
Обработка событий от нескольких сокетов.


15-1194439274
Kerk
2007-11-07 15:41
2007.12.09
Нужно 10wmz


2-1194762738
boalse
2007-11-11 09:32
2007.12.09
Получение сгенерированного акцессом ключа для новой записи


1-1189867818
andreil
2007-09-15 18:50
2007.12.09
Преобразовать строку в дробное число





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский