Einzelnen Beitrag anzeigen

oki

Registriert seit: 30. Dez 2002
Ort: Brandshagen
1.819 Beiträge
 
Delphi 2007 Professional
 
#8
  Alt 13. Feb 2003, 11:00
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
  Mit Zitat antworten Zitat