Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#12

AW: Inkompatible Datentypen in Procedures bei Arrays mit Double bzw. Extended

  Alt 25. Jan 2022, 13:22
Extended soll man eh nicht verwenden, somit ist es egal.
Estended war eh niemals für die direkte Verwendung/Speicherung vorgesehn.

Und beim Überladen hast mit Extended außerhalb Windows (Android/iOS/OSX) wowieso Probleme, da es diesen Typ dort nicht gibt.
OK ihn gibt es, aber er ist dort intern ein Double und schon hast mit deiner Überladung ein kleines Problemchen.



Zitat:
Delphi-Quellcode:
type
  TExtArr = array of Extended;
  TDblArr = array of Double;

procedure AcceptMe(AArr: TExtArr); overload;
procedure AcceptMe(AArr: TDblArr); overload;
Hier hast ein Problem, dass es nur genau diesen Typen annimmt und nichts Anderes.

Es ist allgemein besser, hier einen Standardtypen zu nutzen, denn so kann man dieses Array nicht nur mit der eigenen, sondern auch mit fremden Funktionen nutzen.
Delphi-Quellcode:
type TDblArr = TArray<Double>; // oder TDoubleDynArray
procedure AcceptMe(AArr: TDblArr); overload;
oder als offenes Array deklarieren,
procedure AcceptMe(AArr: array of Double); overload;
denn sowas nimmt viele Arrays an, die aus irgendeinem Array von Double bestehen,
also direkt ein Konstanten-Array ala [1.1, 2.2, 3.3] übergeben oder andere Array-Typen aus Doubles
und sogar statische Arrays ala array[0..15] of Double (siehe Post #1).
$2B or not $2B

Geändert von himitsu (25. Jan 2022 um 13:27 Uhr)
  Mit Zitat antworten Zitat