Thema: Delphi Berechnung im Stringgrid

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#13

Re: Berechnung im Stringgrid

  Alt 20. Mär 2007, 15:22
Ich muss hier doch mal einen harten Kommentar geben:
"der Sourcecode ist Schrott, denn es wird völlig planlos auf irgendwelche Zellen zugegriffen"

Du hast ein Stringgrid und möchtest aus verschiedenen Zellen eine Zahl entnehmen
um damit zu rechnen.
Die Zellen können aber auch leer sein oder die Zellenposition ist ungültig.
Also braucht man eine saubere Funktion, die alle Fehler abfängt:
Delphi-Quellcode:
function GetFloatFromStringGrid(sg: TStringGrid; x,y:integer):extended;
begin
   Assert(Assigned(sg));
   // Bereichsgrenzen prüfen
   if (x<sg.FixedCols) or (y<sg.FixedRows) or (x >= sg.ColCount) or (y>=sg.RowCount) then
      raise Exception.CreateFmt('GetFloatFromStringGrid(%s,%d, %d) - Position ungültig', [sg.name, x, y]);

   try
      // Umwandlung
      result := StrToFloat(sg.cells[x,y]);
   except
      on E:Exception do
      begin
         E.Message := Format('Fehler in %s.Cells[%d, %d]'#13#10 ,[sg.name, x,y])+E.Message;
         Raise;
      end;
   end;
end;
Mit der obigen Funktion bekommt die Sache Hand und Fuss.
Du bekommst sofort eine saubere Fehlermeldung, die zeigt, wo's klemmt.
Andreas
  Mit Zitat antworten Zitat