Сейчас эти данные отображаются на аналоговых датчикахнекорректна. Датчики только измеряют/контролируют что-то, отображают индикаторы.
grdChessBoard.Font.Size:= 20+trunc(grdChessBoard.DefaultRowHeight/QueensCount)-1;
grdChessBoard.Font.Style:=[fsBold];
grdChessBoard.Font.Name:='Times New Roman';
if ACol = 0 then
grdChessBoard.Canvas.TextRect(grdChessBoard.CellRect(ACol, ARow), grdChessBoard.CellRect(ACol, ARow).Left, grdChessBoard.CellRect(ACol, ARow).Top, IntToStr(QueensCount - ARow))
else if ARow = QueensCount then
grdChessBoard.Canvas.TextRect(grdChessBoard.CellRect(ACol, ARow), grdChessBoard.CellRect(ACol, ARow).Left, grdChessBoard.CellRect(ACol, ARow).Top, char(96+ACol))
else
// а тут уже отрисовка клеточек собственно доски
if RestoreLastSolution then
begin
For i := 1 to QueensCount do
x[i] := TmpArr[i];
a[Cout1] := True;
b[Cout2 + Cout1] := True;
c[Cout2 - Cout1] := True;
i:=Cout2;
Solve(i);
end;
Я Вам написал, что в логике скетча изменить нужно. Сейчас при температуре > 35 градусов Вы что-то делаете только с красным индикатором, а нужно ещё и выключить зелёный. Точно также при температуре < 20 градусов Вы только включаете зелёный индикатор, а нужно ещё и выключить красный.
А уж синтаксис в любой книжке поглядите...
Кстати, что в скетче делает куча #include которые ничего не "инклюдят"?