Hallo.
Der folgende Code soll die Werte in einer Spalte eines StringGrids summieren und nach dem Wert einer anderen Spalte gruppieren. Das Ergebnis ist eine Liste mit Eintrögen der Form "Spieler1=1000".
Delphi-Quellcode:
function CreateScoreList(sg: TStringGrid; iGroup, iValue: Integer): TStrings;
var
sPlayer: String;
index, iScore, iRow: Integer;
begin
Result := TStringList.Create;
with sg do
for iRow := FixedRows to Pred(RowCount) do
begin
sPlayer := Cells[iGroup, iRow];
index := Result.IndexOfName(sPlayer);
if TryStrToInt(Cells[iValue, iRow], iScore) then
if index < 0
then Result.Values[sPlayer] := IntToStr(iScore)
// else Result.Values[sPlayer] := IntToStr(Integer(Result.Values[sPlayer]) + iScore); // StrToInt() statt Integer()
else Result.Values[sPlayer] := IntToStr(StrToInt(Result.Values[sPlayer]) + iScore);
end;
end;
Grüße vom marabu