Nein, das nicht nicht der gleiche Typ .... nichtmal ein ähnlicher.
array of ...
direkt als Parameter angegeben ist ein Open-Array-Typ und hat nichts mit dem normalen Typ zu tun.
Typen müssen meist sogar identisch und nicht nur gleich sein.
So, ansonsten liebe ich es, wenn man ständig vergißt die Fehlerposition mit anzugeben.
stan := up(dan);
.
Das Problem ist hier z.B. nicht der Parameter "dan", sondern das Result.
> hier wird nämlich garantiert nicht "dan" markiert, sondern ")"
ein Open-Array-Parameter ist, wie der Name schon sagt, offen für Vieles, also auch "ähnliche" Typen oder gar direkte Konstanten ala
stan := up([123, 456, 789]);
.
Das Result
muß aber
identisch sein, daß hier die Inhalte direkt zugewiesen werden.
Dein einziger Deklarationsfehler war also
Delphi-Quellcode:
var
dan,stan: array of integer; {TArray}
PS:
TIntegerDynArray (da identisch oft nötig ist, machen sich solche Standardtypen besser)
PPS: Es ist zwar toll, daß mal jemand Code-Tags nutzt, aber wie wäre es mit einem Delphi-Tag?
[delphi]...[/delphi] (der rot-goldne Helm)
Vielleicht kannst'e das ja noch editieren
Und zum Rest:
Tut mir Leid ... wieder nicht gesagt WO der Fehler auftritt und ich hab keine Lust zu suchen.
Tipp:
- Debuggen ist was Tolles
- schalte mal in den Projektoptionen die Bereichs- und Überlaufprüfungen an