щелчка надо проверять, какая стопка выбирается — исходная или конечная. Для этого в классе TForm") создадим две переменные:

int Line, Pos;

Line определит группу стопок, Pos — конкретную стопку. Если в Line хранится значение (-1), то будем считать, что никакая стопка пока не выбрана.

Это начальное значение надо задать переменной Line в самом начале работы программы, в уже сгенерированном автоматически, при создании нового проекта, конструкторе формы Form1:

_fastcall TFormI::TForml(TComponent* Owner) : TForm(Owner)

{ Line = -1;

}

Сразу после того как был сделан щелчок мышкой, надо проверить, какая кнопка при этом использовалась. Если пользователь щелкнул правой кнопкой, то в Line запишем (-1) (как бы произошел отказ от выбора стопки и перемещение карты надо начинать заново — такой отказ от текущего выбора бывает полезен во многих приложениях) и прервем выполнение метода оператором return — в ожидании следующего щелчка.

Далее надо выяснить, на какой конкретно стопке какой группы был сделан щелчок. В этом поможет условный оператор. Например, чтобы определить, выбрана ли стопка 0 группы 0, надо выяснить, попали ли координаты точки, где находился указатель мыши в момент щелчка, в прямоугольник, левой верхней координатой которого является точка (LEFT11, ТОР11), а правой — точка с теми же координатами плюс размеры карты (LEFT11+CARD_WIDTH, TOP11+CARDJ-IEIGHT):

if( X > LEFT11 && X < LEFT11+CARD_WIDTH && Y > ТОРИ && Y < TOP11+CARD_HEIGHT ) { line = 0; pos =0; } Найденные группу и стопку сохраним во временных переменных line и top.

Таких условных операторов потребуется 18. Их можно записывать поочередно — вслед за первым условным оператором выполнить втррой:

if( X > LEFT12 && Х < LEFT12+CARD_WIDTH && Y > ТОР12 && Y < TOP12+CARD_HEIGHT ) { line = 0; pos =1; }

212