Hallo,
unabhängig von deinem eigentlichen Problem musst du den Plausibilitätstest korrigieren:
Delphi-Quellcode:
//if not Dimension(v) = Dimension(u) then begin Result := -1; Exit; end; // falsch
//if not (Dimension(v) = Dimension(u)) then begin Result := -1; Exit; end; // richtig
if (Dimension(v) <> Dimension(u)) then begin Result := -1; Exit; end; // besser
Gruß Hawkeye