Hallo,
ich möchte in meinem 2-dimensionalen SafeArray Werte speichern.
In der ersten Dimension einen Integer-Wert und in der zweiten Dimensionen einen jeweils zum Element der ersten Dimensionen gehörenden Wert. (auch integer)
Eindimensional klappt das gut, aber bei zwei Dimensionen habe ich irgendeinen Denkfehler drin. Der letzte Wert der ersten Dimension wird immer von einem Wert der zweiten Dimension überschrieben. anbei mal das Füllen des Array.
Delphi-Quellcode:
var
MySafeArray : PSafeArray
aBound : array[0..1] of TSafeArrayBound;
Dim : array[0..1] of Integer;
arCols : array of array[0..1] of Integer;
aBound[0].cElements := length(arCols);
aBound[0].lLbound := 0;
aBound[1].cElements := length(arCols);
aBound[1].lLbound := 0;
MySafeArray := SafeArrayCreate(VT_INT,2,aBound)
If length(arCols)>0 then begin
for i := low(arCols) to high(arCols) do begin
Dim[0] := i;
PutBreite(MySafeArray,Dim,arCols[i,0]);
end;
for i := low(arCols) to high(arCols) do begin
Dim[1] := i;
PutBreite(MySafeArray,Dim,arCols[i,1]);
end;
end;
procedure PutBreite(pSA: PSafeArray; iPos: array of Integer; Breite: Integer);
begin
SafeArrayPutElement(pSA, iPos, Breite);
end;
Ich mache irgendwas mit den Dimensionen falsch. Hat jemand eine Idee?
Danke und Gruß
Sascha