Hallo moin339,
stimmt, bei neuer Längendefinition wird das vorhandene Array mit neuer Länge in einen anderen Speicherbereich mit Inhalt kopiert (reserviert).
Jetzt für Phlux!
Also, ich schreibe es mal auf. (gott gebe, dass alles richtig ist)
Delphi-Quellcode:
type
TContainer = class(TObject)
FFileCount: LongWord;
FFileNames: Array of String;
public
constructor MyCreate(FileAnz : LongWord);
Destructor Destroy;
procedure NewFileAnz(FileAnz : LongWord);
property FileCount : LongWord read FFileCount;
end;
var MyContainer : TContainer
Constructor TContainer.MyCreate(FileAnz : Longword);
begin
inherited create;
NewFileAnz(FileAnz);
end;
Destructor TContainer.Destroy;
begin
FFileNames := nil;
inherited destroy;
end;
procedure TContainer.NewFileAnz(FileAnz : Longword);
begin
SetLength(FFileNames, FileAnz);
FFileCount := High(FFileNames)+1;
end;
...
-> irgentwo im Hauptprogramm:
Delphi-Quellcode:
MyContainer := TContainer.MyCreate(5);
.
.
.
Ob Du jetzt weitere Parameter oder eigene Methode für die Übergabe Deiner Werte schreibst bleibt Dir überlassen. Praktisch ist hier zum Bsp. eine Methode
Delphi-Quellcode:
procedure AddFileName(Name : String);
procedure TContainer.AddFileName(Name : String);
begin
NewFileAnz(FFileCount + 1);
FFileNames[FFileCount - 1] := Name;
end;
und so weiter.
Gruß oki