Sobald Delphi annimmt, dass es sich um ein dynamisches Array handelt und du versuchst die Größe zu erfragen, dann greift er auf die Stelle (Pointer - $04) zu um die Länge auszulesen. Und das wird dann in den meisten Fällen schief gehen.
Die Lösung mit dem PDouble und der Größe gefällt mir persönlich am Besten.
Es müsste aber auch möglich sein, dass du einen Arraytypen definierst und mit diesem arbeitst.
Delphi-Quelltext
1: 2: 3:
| type TDoubleArray = array [0..$FFFF] of Double; PDoubleArray = ^TDoubleArray; |
Den Parameter würde ich aber der Einfachheit halber als PDouble lassen aber dann auf den Arraytypen (pointer) casten.
Delphi-Quelltext
1:
| PDoubleArray(values)^[Index] |
Aber wie schon gesagt. Mir gefällt die Lösung komplett ohne Pointer auf Arrays besser.
Nur die Menschheit ist arrogant genug, um zu glauben sie sei die einzige intelligente Lebensform im All. Wo nicht mal das nachhaltig bewiesen wurde.