Hallo,
ich nehme mal an, dass die gezeigten Variablen global deklariert sind und die notwendigen Werte an anderer Stelle zugewiesen werden, bevor der Code-Block ausgeführt wird. Trotzdem noch ein paar Anmerkungen:
(1) Berechnungen sollten in einer Funktion gekapselt werden, benötigte Variablen sollten als Ein- und Ausgabe-Parameter zur Verfügung gestellt werden. Auf diese Weise kann eine Funktion mehrfach genutzt und einzeln ausgetestet werden.
(2) Interaktionen (ShowMessage) aus einer solchen Berechnung heraus sollten unterbleiben, besser einen Rückgabewert oder Fehlercode vorsehen. Auch das erhöht die Wiederverwendbarkeit (
GUI und Batch).
(3) Dynamische Speicheranforderungen sind mitunter wirtschaftlicher. Im vorliegenden Fall wäre das Array GenauF[] ein Kandidat für die vorkalkulierte dynamische Anforderung - oder werden immer 32K Einträge existieren?
(4) Wertebereiche planen und prüfen. Insbesonder Laufvariablen sind eine Fehlerquelle. Im vorliegenden Fall wird durch einen Fehler der Klasse "off-by-one" das erste Array-Item nicht initialisiert und kann im Verlauf der Berechnung zum beobachteten Overflow führen.
(5) Vorhandene und getestete Codes verwenden. Die Summierung über GenauF[] kann mit der Funktion Sum() aus der
Unit Math erledigt werden - so vorhanden.
Grüße vom marabu