// в загалокве формы
class TForm1 : public TForm
{
__published:
private:
void __fastcall Painting(TObject* obj);
public:
__fastcall TForm1(TComponent* Owner);
};
//-------------------------------------------------------
// в cpp-шнике
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
this->OnPaint = Painting;
}
//-------------------------------------------------------------------
void __fastcall TForm1::Painting(TObject* obj)
{
// здесь считываешь и прорисовываешь
}
Рисование на форме (оптимальный путь?)
Вопрос, какой оптимальный путь выбрать для решения этой задачи? Использовать стандартные ф-ции LineTo, и т.д. или есть готовый сторонний компонент для облегчения задачи?
Спасибо.
Чтоб рисунок не затерался записывай все нарисованное (параметры рисунка) в какой-нибудь массив структур (координаты точек линий и ломанных, например), а в обработке события OnPaint считывай данные и перерисовывай.
Код:
Можно конечно каждую фигуру (линию, ломаную и т.п.) задавать отдельным объектом, который бы сам себя прорисовывал и помнил бы свои параметры, но это по моему только усложнит задачу --- это же не графический редактор.
Не забудь поставить DoubleBuffered в true у формы --- тогда мигать не будет при перерисовке.
А как добавить следующее в программу:
нарисовала несколько многоугольников на форме, потом захотела стереть один из них?
При новом старте программы все нарисованные в прошлом сеансе многоугольники должны отображаться на форме. Как проще это реализовать?
Подскажите по шагам реализацию такой программы.
Спасибо.