Основная часть пасьянса

Самый главный метод-2

Для «умной» перерисовки окна — именно тогда, когда это реально необходимо, в C++Builder имеется специальное событие OnPaintQ. Оно действует для большинства элементов управления и, конечно, для окон. Выберите в Инспекторе объектов главную форму Form1, перейдите на закладку Events и дважды щелкните на правой части строки OnPaint.

C++Builder автоматически сгенерирует метод FormPaint(), который также автоматически будет вызываться, именно тогда, когда окно потребуется перерисовать. Все что нам осталось сделать — это вызвать в FormPaintQ метод ShowAIIQ.

void _fastcall TFormI::FormPaint(TObject *Sender)

{

ShowAlK);

}

Теперь о правильном отображении содержимого окна можно не беспокоиться.

h02091.jpg

На событие OnPaintQ требуется реагировать только если в программе имеются операторы вывода различной графической информации на канву. Внешний вид элементов управления, спроектированный с помощью Инспектора объектов, будет поддерживаться и перерисовываться программой автоматически — то есть не надо пытаться самому выводить название на кнопке, для этого есть свойство Caption.

А есть ли карты?

При реализации метода ShowAIIQ использовался пока не упоминавшийся метод IsCardsQ. Он проверяет, есть ли карты в указанной стопке соответствующей группы:

bool IsCards(int line, int pos);

Этот метод возвращает значение true, если в стопке pos группы line карты есть. Выполняется такая проверка следующим образом:

bool TFormI::IsCards(int line, int pos)

{

int i ;

for( i = 0; i < PACK_TOTAL; i ++ )

209