11. Создайте функцию lmageInShape для проверки расположения
рисунка (объекта Image) в середине некоторой геометрической фигуры (объекта Shape).
bool lmageInShape(TImage* I,TShape* S)
{
if ((I -> Left> = S -> Left) &&
(I -> Left+ I -> Width <= S -> Left + S -> Width) &&
(I -> Top >= S -> Top) &&
(I -> Top + I -> Height <= S -> Top + S -> Height))
return true; // Рисунок в середине фигуры
Else
return false; // Рисунок вне фигуры
}
l2. Запрограммируйте кнопку "Готово", которая проверяет правильность расположения рисунков внутри фигур:
__ void__fastcall TForm1::BitBtn1Click(TObject *Sender)
{ // Если: первый рисунок во второй фигуре
if (ImageInShape(Image1, Shape2) &&
// второй рисунок в третьей фигуре lmageInShape(Image2, Shape3) &&
// третий рисунок в первой фигуре ImageInShape(Image3, Shape1))
Result(right);
Else
Result(wrong);
}
13. Запрограммируйте второй таймер, который обеспечивает индикацию времени выполнения от 100 до 0% со скоростью, обратно пропорциональной к числу в CSpinEdit1.
В случае, когда пользователь не успел расположить рисунки в
прямоугольниках и нажать на кнопку "Готово" в отведенное
время, подается звук "ДИНГ" и открывается информационное окно с сообщением "Попробуйте еще раз!".
void_fastcall TForm1::Timer2Timer(TObject *Sender)
{
// Задаем скорость движения индикатора:
Timer2 -> Interval = CSpinEdit1 -> Value * 50;
// Работает индикатор времени:
ProgressBar1 -> Position = ProgressBar1 -> Position - 1;
// Если время исчерпано "Попробуйте еще раз!"
if (ProgressBar1 -> Position = = 0)
Result(more);
}