Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: TStringrid Zellen summieren

  Alt 8. Aug 2006, 14:55
Hier die prosaische Fassung:

Delphi-Quellcode:
function CreateScoreList(sg: TStringGrid; iGroup, iValue: Integer): TStrings;
// sg.Columns[iValue] wird summiert und nach sg.Columns[iGroup] gruppiert
// Zugriff auf die Summen-Werte: iScore := StrToInt(Result.Values[sPlayer])
var
  sPlayer: String;
  index, iScore, iRow: Integer;
begin
  // Es wird eine neu erzeugte TStringList zurückgegeben
  Result := TStringList.Create;
  with sg do
    // Spaltenüberschriften von der Summenbildung ausschließen
    for iRow := FixedRows to Pred(RowCount) do
    begin
      // nach was soll gruppiert werden ?
      sPlayer := Cells[iGroup, iRow];
      // gibt es für diesen String schon einen Eintrag ?
      index := Result.IndexOfName(sPlayer);
      // Ist in der aktuellen Zelle ein gültiger Wert eingetragen ?
      if TryStrToInt(Cells[iValue, iRow], iScore) then
        // Gibt es für den Gruppenbegriff sPlayer schon einen Eintrag
        if index < 0
          // nein, Wert einfach einsetzen
          then Result.Values[sPlayer] := IntToStr(iScore)
          // ja, auf vorhandenen Wert addieren
          else Result.Values[sPlayer] := IntToStr(StrToInt(Result.Values[sPlayer]) + iScore);
    end;
end;
Ich hoffe du kommst zurecht?

Grüße vom marabu
  Mit Zitat antworten Zitat