Looks fine except for some testing that you have. And why all the Begin .. end statements in loops that only have one statement. Just a lot of extra writing on your part.
I think you need to change these:
if rloop in [7..8] then
cell[cloop,rloop,7] := input[cloop,rloop];
if rloop in [7..9] then
cell[cloop,rloop,7] := input[cloop,rloop];
if rloop in [7..8] then
cell[cloop,rloop,8] := input[cloop,rloop];
if rloop in [7..9] then
cell[cloop,rloop,8] := input[cloop,rloop];
if rloop in [7..8] then
cell[cloop,rloop,9] := input[cloop,rloop];
if rloop in [7..9] then
cell[cloop,rloop,9] := input[cloop,rloop];
I have another program that I found on a european site that I altered for doing sudoku puzzles on screen.