C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Использование Image
OlegK
Отправлено: 24.04.2005, 20:03


Не зарегистрирован







Здравствуйте! Я пишу графический редактор. Как основу для рисования использую компонент Image. При добавлении новых элементов чертежа: линий, полигонов и тд
мигает все нарисованное ранее изображение, т.е., как я понимаю оно перерисовывается. Как избавиться от этого неприятного эффекта? Может лучше использовать другой, более подходящий для редактора компонент?
Заране благодарен за любой совет!!!
Sl@Sh
Отправлено: 24.04.2005, 20:54


Мастер участка

Группа: Участник
Сообщений: 383



Этот вопрос уже где-то описывался, но на всякий случай :
DoubleBuffered = true;

DoubleBufferd — свойство формы. В true рекомендую ставить только на момент прорисовки.

Удачи !

Отредактировано Sl@Sh — 24/04/2005, 20:55
OlegK
Отправлено: 24.04.2005, 21:04


Не зарегистрирован







Спасибо, сейчас попробую!

Но хочу спросить еще вот о чем: почитав сообщения форума, обратил вниманее, что советуют использовать GDI для рисования , а не методы TImage. В этом случае на чем рисовать средсвами GDI, все на томже Image или на другом компоненте?
FataLL
Отправлено: 25.04.2005, 04:56


Дежурный стрелочник

Группа: Участник
Сообщений: 37



Можно рисовать на любом контексте (см. CreateDC, CreateCompatibleDC), а потом присваивать этот контекст компоненту. Или копировать его.
Sl@Sh
Отправлено: 25.04.2005, 13:53


Мастер участка

Группа: Участник
Сообщений: 383



QUOTE

В этом случае на чем рисовать средсвами GDI, все на томже Image или на другом компоненте?


Рисовать можно и на TImage, но вот о каих конкретно методах вы говорите ? Методах TCanvas ? Так некоторые из них идентичны GDI, например Rectangle(x1, y1, x2, y2) — метод TCanvas, а в GDI — Rectangle(HDC, x1, y1, x2, y2), где HDC — контекст устройства, на котором вы рисуете.

А по большому счёту TCanvas и.т.п. это классы для работы с тем-же GDI. Загляните в graphics.pas и убедитсь.

Вернуться в Вопросы программирования в C++Builder