if( Well[line][pos][i].Is ) return true;
return false;
}
Логика работы интерфейса
Большинство методов пасьянса определены. Программа даже готова нарисовать начальный игровой расклад. Но как она будет взаимодействовать с пользователем?
Очень просто — как и положено Windows-приложению, с помощью мыши. Человек в первый раз щелкает на карте, которую хочет переместить, и второй раз — на стопке, куда он ее хочет переместить. Программа проверяет, допустимо ли такое перемещение, и если допустимо, происходит вызов метода Mov^CardQ и новый расклад перерисовывается. *
Ловим мышку
А как узнать, в каком месте главной формы был выполнен щелчок? В этом поможет событие OnMouseUp. Надо дважды щелкнуть на этом событии (как ранее — на событии OnPaint), и C++Builder сгенерирует реакцию программы на щелчок кнопкой мыши:
void _fastcall TFormI::FormMouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
У этого стандартного метода формы, вызываемого при щелчке на форме (а еще точнее, на канве, но не на каком-нибудь из элементов управления!), несколько параметров. Самые важные из них следующие:
TMouseButton Button
Тип TMouseButton состоит из нескольких констант. Это mbLeft — означает, что щелчок был сделан левой кнопкой мыши, mbRight — щелчок правой кнопкой мыши, mbMiddle — щелчок средней кнопкой мыши. Соответствующее значение хранится в переменной Button.
int х, int Y
#-
Это, как вы, наверное, догадались, координаты точки, в которой был сделан щелчок мышкой. Данные координаты отсчитываются от верхнего левого угла канвы.
210