Habe ich richtig vertstanden dass Du einen Zeiger auf das erste Element bekommst?
Öhm, ja
Dann sollte folgendes gehen
Delphi-Quellcode:
type
TPhysicalCharWidth = Byte;
TPhysicalCharWidths = Array of TPhysicalCharWidth;
PPhysicalCharWidth = ^TPhysicalCharWidth;
procedure Proz(p:Pointer;len:Integer);
var
i:Integer;
begin
for I := 0 to len - 1 do Showmessage(IntToStr(TPhysicalCharWidths(p)[i]))
end;
procedure TForm3.Button1Click(Sender: TObject);
var
I: Integer;
P: PPhysicalCharWidth;
T: TPhysicalCharWidths;
begin
SetLength(t,10);
for i := Low(t) to High(t) do t[i] := i + 17;
Proz(@T[0],Length(t));
end;
Und wo wird da jetzt der Zeiger auf das erste Element verwendet? Du erstellst doch nur ein neues leeres Array und holst dir nicht das bestehende mit dem Zeiger...
Hach, ist wieder schwöööör zu erklären.
P ist ein Zeiger auf das erste Element. Den generiere ich nicht selbst sondern der kommt von außen in die Prozedur.
Gucks du hier in Zeile 810..854, Fehler in Zeile 819.