Das hängt von meiner Implementierung ab. Das Problem, das ich habe, besteht darin, dass ich die Funktion "evaluate" verwende, um ein Array zu bekommen, mit dem ich mein TBarSeries füllen kann. Jedoch kenne ich den minimalen x-Wert nicht (dieser ergibt sich erst in der Funktion evaluate). Den Wert muss ich aber kennen (auch außerhalb der Funktion), um die Daten zu füllen. Das letzte Element des Arrays enthält den Minimalen x-Wert, die y-Werte sind in den vorigen Elementen gespeichert. Evtl. wäre es sinnvoller gewesen, ein record als Rückgabewert der Funktion evaluate zu verwenden und zwar mit zwei Variablen: Einem Array, das die y-Werte speichert und einem Double, das den Minimalen x-Wert angibt.auch die obere Grenze, High(ChartArray)-1, erscheint mir falsch: warum -1? Die Schleife muss doch nur alle Werte im ChartArray durchlaufen, und das geht von 0 bis High(ChartArray) (oder Length(ChartArray)-1).
Und was soll "min := ChartArray[High(ChartArray)]"? "min" und "High" erscheint mir ein Widerspruch...
Dieses Beispiel zeigt zumindest, dass es wichtig ist, Programme immer gut zu dokumentieren. Dass ich das nicht gemacht habe, liegt einfach daran, dass ich nicht geplant habe, jemand anderem mein Programm zu zeigen.
Da das Programm unabhängig davon läuft, ob ich dort ein begin habe oder nicht und ich auch nicht wusste, was üblich oder unüblich ist, habe ich dort ein begin hingesetzt, da sonst die Anzahl von begin und end im Dokument unterschiedlich sind, was mir eher falsch erschien. Aber ich werde es mir merken.Das "begin" vor dem abschließenden "end." ist ungewöhnlich und habe ich in Units noch nie gesehen
Ich habe zuvor mit dem Debugger festgestellt, dass die Schleifen-Variable einen zufälligen Wert annahm, als ich sie nicht zuvor inizialisiert hatte, weshalb ich dachte, ich brauche es. Aber wie ich inzwischen herausgefunden habe, lag das an einem anderen Fehler im Code.Du wiederholst den ersten Wert der Schleifen-Variablen vor der Schleife: "i:=1; for i:=1 to ..." Das ist unnötig.
Ich werde es mir merken.Ach ja noch: Du erleichterst den Leuten hier im Forum, die deinen Code prüfen wollen, die Arbeit, indem du von dem kompletten Projekt die .lpi, .lpr, .pas und .lfm-Dateien in ein zip-Archiv packst und dieses hochlädst. Die zip-Endung wird von der Forums-Software akzeptiert. Dann kann man gleich loslegen und muss nicht erst ein Projekt erzeugen. Und auch in den lpr/lpi-Dateien können Fehler stecken.
Jedenfalls nochmals vielen Dank für deine Hilfe und deine Kommentare/Anmerkungen. Ich werde morgen mal testen, ob das Problem verschwindet, wenn ich die Arrays jeweils mit index = 0 beginnen lasse.