Moin, moin.
Das ist leider noch nicht ganz das was ich möchte (glaube ich). Ich versuche
das einfach mal an einem Beispiel näher zu erläutern...(unter Einbezug der oben
genannten Ansätze mit "abstract")
Also zunächst die 2 BasisObjecte:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25:
| TBasisObject = class(TObject) protected ReadFromDB(ADataSet: TDataSet); virtual; abstract end;
TBasisList = class(TObjectList) protected ReadFromDB(ADataSet: TDataSet); virtual; end;
implementation
procedure TBasisList.ReadFromDB(ADataSet: TDataSet); virtual; var ABasisObject: TBasisObject; begin ADataSet.First; while not ADataSet.Eof do begin ABasisObject := TBasisObject.Create; ABasisObject.ReadFromDB(ADataSet); Add(ABasisObject); ADataSet.Next; end; end; |
und dann die 2 Arbeitsobjecte
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| TMyObject = class(TBasisObject) protected ReadFromDB(ADataSet: TDataSet); override; end;
TMyList = class(TBasisList) end; |
So und dann der Aufruf...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure Run; var AList : TMyList; begin AList := TMyList.Create; AList.ReadFromDB(MyDataSet);
AList.Clear; AList.Free; end; |
Ich suche nun nach einer Möglichkeit, dass ich nicht jedes mal "ReadFromDB" für TMyList
deklarieren muss, aus diesen Grund hätt' ich das gern in der BasisListe. Nun weiß ich
aber nicht so recht wie ich in der Methode "Run" "AList" klar machen soll welche
Objekte ich die Liste sollen, sprich wie ich ihm klar mach das "ReadFromDB" von TMyList
verwendet werden soll.
Das oben genannte Forum habe ich mir noch nicht angeschaut da ich befürchte, dass
"abstract" mich nicht weiter bringen wird aber ich werde das auf jeden Fall noch
nachholen
Vielen Dank schon mal im Vorraus.