C++ Builder 6. Как инициализировать Shape на уже созданной форме.
Ребят, первый раз надо написать программку на плюсах, нужен небольшой хелп. Использую Builder 6.
При запуске программы создается форма, на которой изображен прямоугольник, 4 edit и две кнопки изменить и удалить.
Изначально прямоугольник задается через Shape, т.е. при открытии программы прямоугольник уже есть на форме. Далее в edit вводим координаты, прямоугольник изменяет положение. При нажатии "Удалить" вызывается деструктор, который удаляет прямоугольник.
Проблема в следующем. Если нажать "Удалить", то потом при вводе координат и нажатии "Изменить" выдает ошибку. Причина понятна - идет попытка изменить координаты несуществующего прямоугольника. Идея проста: проверяем есть ли прямоуголиник, если нет - создаем, потом меняем координаты. Если есть - сразу меняем координаты. Но... перерыла кучу исходников, не могу найти, как инициализировать Shape на уже созданной форме. Понимаю, что, скорее всего, будет как-то совсем уж просто... Но, если кто знает, буду очень благодарна.
Сейчас код выглядит так:
// изменение координат
void __fastcall TForm1::Button2Click(TObject *Sender)
{
// проверяем, есть ли треугольник
if (Shape1 == NULL)
{
TShape *Shape1; // так инициализируется при создании формы. при нажатии на кнопку - не работает (((
};
//изменяем координаты
float fLeft, fTop, fWidth, fHeight;
fLeft=StrToFloat(Edit1->Text);
fTop=StrToFloat(Edit2->Text);
fWidth=StrToFloat(Edit3->Text);
fHeight=StrToFloat(Edit4->Text);
Shape1->Left = fLeft;
Shape1->Top = fTop;
Shape1->Width = fWidth;
Shape1->Height = fHeight;
}
//------------------------------------------------------------------------
//удаление проямоугольника
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Shape1->~TShape();
}
|