Einzelnen Beitrag anzeigen

Friday

Registriert seit: 6. Mai 2008
97 Beiträge
 
Delphi 11 Alexandria
 
#1

Handling von Arrays in einem InterfacedObject

  Alt 7. Okt 2020, 18:56
Delphi-Version: XE3
Hallo,
ich habe ein Datenpaket welches je nach Situation von unterschiedlichen Objekten analysiert werden soll. In diesem Datenpaket sind mehrere TArray<double> und ein paar Einzelwerte. Die ursprüngliche Idee war dies in einem InterfacedObject zu realisieren und den Objekten die diese Daten analysieren sollen nur das Interface übergeben.

beispielhaft mit nur einem Array:
Delphi-Quellcode:
IDataPackage = Interface(IInterface)
function GetMyArray1: TArray<double>;
procedure SetMyArray1(NewArray: TArray<double>);
property MyArray1: TArray<double> read GetMyArray1 write SetMyArray1;

implementation
...
procedure TSomeObject.AnalyzeData(aDataPackage: IDataPackage);
var tmpAr: TArray<double>;
i: integer;
begin
  tmpAr := aDataPackage.MyArray1;
  for i := 0 to length(tmpAr) do
    // do something with tmpAr[i]
end;
Das macht so einiges an Ärger, da immer wieder StackOverflows passieren.
Die Frage ist, wie macht man das in einer sauberen, unabhängigen und zugleich performanten Objektstruktur?
  Mit Zitat antworten Zitat