Главная страница
    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.042 c
2-1195042234
Nightmare
2007-11-14 15:10
2007.12.09
XML


1-1189288423
Dr. Andrew
2007-09-09 01:53
2007.12.09
Чем можно заменить GetTickCount? Нужна точность до 1 мсек!


15-1194337973
Evanescence
2007-11-06 11:32
2007.12.09
Кажется, я убил вирус :)


3-1186039117
Dmitry_177
2007-08-02 11:18
2007.12.09
Delphi + 1Cv77


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