Also dein Sourcecode ist noch sehr suboptimal.
Ich weiss nich ob es dir aufgefallen ist, aber dein Code besteht aus permanenten Wiederholungen.
Das Ganze wird sehr unübersichtlich und da nicht mal Kommentare vorhanden sind versteht man eigentlich nur "Bahnhof".
Guter Code soll aber selbsterklärend und ohne Wiederholungen sein.
Hier ein kleines Beispiel:
Delphi-Quellcode:
function TCheckThread.calcpoints(calcablestring:string):integer;
var calcedstats:wowitem;
statvalue:integer;
calcitemarray: array[0..15] of wowitem;
i:integer;
begin
result:=0;
for i:=0 to 15 do begin
calcitemarray[i]{*}:=unit1.wowitemarray[i];
statvalue:=0;
if (calcablestring[2*i+1]='1')then begin
statvalue:=round(calcitemarray[i]{*}.hit*0.4);
calcitemarray[i]{*}.hit:=calcitemarray[i]{*}.hit-statvalue;
end;
Warum reitest du ständig auf
calcitemarray[i]
herum?
Verwendet eine einfache lokale Variable
var item:wowitem;
und die Sache wird schon klarer.
Du verwendest 16 Mal den Ausdruck
calcablestring[2*i+1]
; das tut doch in den Augen weh.
Auch hier:
verwende eine lokale Zwischenvariable (Datentyp char)!
Deine Funktion/Methoden sind elendlang; sie passen nicht auf eine Seite und man muss ständig hoch und runterscrollen.
Halte deine Funktionen kurz und verwende Unterfunktionen!
Wenn du diese beiden Regeln beachtest kannst du deinen Code deutlich verbessern.