Pointer til dyn array
HejJeg vil gerne lave en pointer til et statisk array, således at jeg kan kalde en procedure med denne pointer, og det så kun er værdierne fra nummer 2 til f.eks. 5 der er i arrayet. Jeg har prøvet med dette eksempel
procedure TForm1.Button1Click(Sender: TObject);
Var
a : Array [0..5] of Byte ;
b : Array of byte ;
begin
a[0] := 97 ;
a[1] := 98 ;
a[2] := 99 ;
a[3] := 100 ;
a[4] := 101 ;
a[5] := 102 ;
// B := @a[3] ;
B := Addr(a[2]) ;
Setlength ( b, 4 ) ;
TestArray ( b ) ;
end;
procedure TForm1.TestArray ( TestData: array of byte );
var
s : String ;
i : Integer ;
begin
s := '' ;
for i := 0 to 3 do
s := s + IntToStr ( TestData [i] ) + ' ' ;
Edit1.Text := s ;
end ;
Når jeg bruger:
Setlength ( b, 4 ) ;
efter
B := Addr(a[2]) ;
får b en ny adresse, og jeg kan ikke regne med at data er de rigtige.
Bruger jeg den før, er data rigtige, men jeg får en acces violation når jeg bruger dem i funktionen
Håber I kan hjælpe :-)
