Quellcode als Zitat ist echt grauenhaft und garnicht lesbar.
[DELPHI]...[/DELPHI]
Randmize ruft man nur einmal bei Programmstartauf und niemals innerhalb einer Schleife!
Wieso wird das Objekt Perm nicht wieder freigegeben?
Und was soll bitte das Add?
Delphi-Quellcode:
for n := 1 to 8 do
Perm.Add(@n);
Perm.Add(@n);
...
p := Integer(Perm.Items[rng]);
- Einmal in Schleife und dann nochmal danach.
- Du fügts den Zeiger auf einen Integer hinzu
- und liest das dann nicht als PInteger, sondern als falschen Integer wieder aus.
- Abgesehn davon zeigt das @n natürlich alles nur auf die selbe Variable und wenn du mal den Debugger benutzen würdest, würdest du erkennen, daß somit in der Liste immer nur der selbe Wert drin steht.
- Und nach einer Schleife ist der Wert der Schleifenvariable sowieso ungültig, also zeigt der Wert/Zeiger von @n danach nur noch auf Schrott.
- ...
->
Perm.Add(Pointer(n));
->
p := Integer(Perm.Items[rng]);
Ach ja, LoadFromFile + HoleBild (mit relativen Pfaden) ... sowas macht man auch niemals.
-> nur absolute Pfadangaben, also inkl. Verzeichnis.
Und die vielen If-Thens in holeBild ...
-> CASE-OF