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.
Ich mache irgendwas mit den Dimensionen falsch. Hat jemand eine Idee?
Danke und Gruß
Sascha
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.
Code:
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;
Danke und Gruß
Sascha