Auf jeden Fall ist das die 20. Schachtelungstiefe

das hab ich im Leben noch nicht brauchen können. Mein Maximum war bei einer recht komplexen Anwendung 9-fach...
Folgerndermaßen
müsste es rekursiv gehen:
Delphi-Quellcode:
type
TMyArray = array[1..16] of Integer;
var
i: TMyArray;
.
.
.
procedure setfield(var arr: TMyArray; index: Integer);
begin
if index < 17 then
begin
for arr[index] := 1 to 17-index do
begin
quadrat[1+((index-1) div 4), 1+((index+3) mod 4)] := getunusedzahl(index, arr[index]);
setfield(arr, index+1);
end;
end
else
if isCorrect and (ListBox1.Items.IndexOf(getfieldstring) = -1) then ListBox1.Items.Add(getfieldstring);
end;
Ist aber im Texteditor geschrieben, ungetestet, und ohne jede Kompilier-/Lauf-/Sontige Garantie

.
\\edit: Die Optimierungen mit den if-Abfragen fallen hier raus. Kann man bestimmt auch irgendwie machen...
Fabian K.
INSERT INTO HandVonFreundin SELECT * FROM Himmel