На скорую руку.
Заводим глобальную переменную
Код:
var
Flag: Boolean = True;
Заворачиваем вызов процедуры рисующей фигуры в case
Код:
procedure TForm1.FormMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
Mess: String;
begin
...
case Flag of
True: PaintKN(knKrestik, (X div C_CellWH), (Y div C_CellWH));
False: PaintKN(knNolik, (X div C_CellWH), (Y div C_CellWH));
end;
...
End;
А в самой процедуре рисования фигур меняем состояние глобальной переменной.
Код:
Case S of
knKrestik:
begin
...
Flag := False;
end;
knNolik:
begin
...
Flag := True;
end;
End;
При таком раскладе первый игрок всегда ходит крестиками.