Einzelnen Beitrag anzeigen

marabu

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

Re: Stringgrid speichern,/laden Problem

  Alt 16. Jul 2006, 13:33
Hallo Noobinator,

irgendwann wirst du feststellen müssen, dass dein Problem nichts mit den Speicherroutinen zu tun hat. Es ist einfach ungeschickt anzunehmen, dass bei jedem Fach eine Note steht. Der folgende Code geht von FixedCols = 1 aus und verwendet die erste Spalte zur Anzeige des Durchschnittswertes einer Zeile, in der Integer-Werte eingetragen werden:

Delphi-Quellcode:
function Average(s: TStrings; iStart: Integer): String;
var
  i, iSum, iCount, iValue: Integer;
begin
  iSum := 0;
  iCount := 0;
  for i := iStart to Pred(s.Count) do
    if TryStrToInt(s[i], iValue) then
    begin
      Inc(iCount);
      Inc(iSum, iValue);
    end;
  if iCount = 0
    then Result := ''
    else Result := Format('%.1f', [iSum / iCount]);
end;

procedure TDemoForm.StringGridSetEditText(Sender: TObject; ACol,
  ARow: Integer; const Value: String);
begin
  with StringGrid do
    Cells[0, ARow] := Average(Rows[ARow], FixedCols);
end;
Die notwedigen Änderungen für einen gewichteten Durchschnitt (Hauptfächer=3, WPU=2, Nebenfächer=1) wirst du selbst machen müssen. Und was die Speicher-Routinen angeht, so solltest du diese zuerst analysieren, bevor du sie kopierst oder gar veränderst. Deine Änderungen an dem Code aus Beitrag #1 legen den Verdacht nahe, dass du die Routinen nicht verstanden hast - ich weiß wie der Code vor deinen Änderungen aussah.

Grüße vom marabu
  Mit Zitat antworten Zitat