Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.152 Beiträge
 
Delphi 12 Athens
 
#4

AW: Memory Zufallsgenerator (Procedure)

  Alt 11. Apr 2015, 10:26
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (11. Apr 2015 um 10:40 Uhr)
  Mit Zitat antworten Zitat