Ein freundliches Hallo an alle,
ich verwende Delphi 4 umd möchte mir in einer dynamischen Liste hin und wieder einen Index merken. Dazu habe ich die Procedure AddIndex geschrieben.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| Procedure AddIndex( var A : array of Integer; I : Integer ); begin SetLength( A, Length( A ) + 1 ); A[ Length( A ) - 1 ] := I ; end; |
Die Liste wird übergeben und soll um ein Element (I) erweitert werden. Der Kompiler meckert aber über SetLength.
Quelltext
1:
| [Fehler] StrGrid.pas(276): Inkompatible Typen |
Laut Hilfe kann ich das Array übergeben!
Quelltext
1: 2: 3: 4: 5:
| In einigen Funktions- und Prozedurdeklarationen werden Array-Parameter in der Form array of Basistyp ohne festgelegten Indextyp angegeben:
function CheckStrings(A: array of string): Boolean;
In diesem Fall kann die Funktion auf alle Arrays des angegebenen Basistyps angewendet werden, unabhängig von der Größe der Arrays und der Art ihrer Indizierung |
Hat jemand eine Erklärung, warum das so ist? Muß die Procedure zu dem Objekt "StrGrid" gehören, also "T_StrGrid.AddIndex" heißen??
Grüße von der Nordsee
Peter