Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#15

AW: Thread startet execute nicht

  Alt 25. Mai 2013, 21:54
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.
fork me on Github
  Mit Zitat antworten Zitat