Tach auch Community!
Ich brauch mal eure Augen/Erfahrung und zwar habe ich um Zuweisungen zu vereinfachen eine eigene Liste von TObjectList abgeleitet
TFileList.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| TFileList = class(TObjectList) private fSize:int64; protected function GetItem(Index: Integer): TFile; procedure SetItem(Index: Integer; AFile: TFile); public function Add(aFile: TFile): Integer; property Items[Index: Integer]: TFile read GetItem write SetItem;default; <span style="color: red"><-da gibt es wohl ein Problem</span> property FileSize:int64 read fSize write fSize; end; |
Und so sind die einzelnen Methoden implementiert worden:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
|
function TFileList.Add(aFile: TFile): Integer; begin inherited Add(aFile); fSize:=fSize+aFile.FileSize; end;
function TFileList.GetItem(Index: Integer): TFile; begin inherited GetItem(index); end;
procedure TFileList.SetItem(Index: Integer; AFile: TFile); begin inherited Setitem(index,Afile); end; |
Die eigentlichen TFile Objekte sind nur Primitivlinge zur Datenhaltung.
Nun ergibt sich aber das Problem, das ich eine Zugriffsverletzung bekomme, wenn ich
Delphi-Quelltext
1:
| memo1.Lines.Add(Source.Files[i].FileName); |
aufrufe. Source gehört einer Klasse an, die ein Nachkomme von
TFolderist, die wiederum eine
TFileListals Attribut hat. Eine einfache Dateihierachie ebend.
So geht es aber:
memo1.Lines.Add(TFile(TObjectList(Source.Files)[i]).FileName);
Ich denke ich habe bei der
ItemsProperty was falsch gemacht
