Forum: Object-Pascal / Delphi-Language
by OlafSt,
6. Aug 2014
Dann war meine Vermutung, die ich insgeheim schon hatte, ja korrekt. In C# ist dieses "Mitdenken" des Compilers ja fast schon normal :D, bei Delphi weiß man nie so genau, wie weit Emba da Intelligenz eingebaut hat ;)
Forum: Object-Pascal / Delphi-Language
by OlafSt,
6. Aug 2014
Kapiert. Nun bekomme ich eine Fehlermeldung:
E2010 Inkompatible Typen: 'System.SysUtils.TPredicate<Unit1.TDriverList<T>.T>' und 'Procedure'
Code wie folgt:
TDriverList<T: TDriverBase> = class(TObjectList<T>)
private
protected
public
Forum: Object-Pascal / Delphi-Language
by OlafSt,
6. Aug 2014
WTF ist ein constraint ? Irgendwie hab ich was verpaßt, glaub ich ;)
Forum: Object-Pascal / Delphi-Language
by OlafSt,
6. Aug 2014
Okay, schlagendes Argument. Doch wo ist die Schleife, die durch alle Items iteriert ? Ich sehe da nur eine Vergleichsfunction - oder krieg ich da was nicht mit ?
Ich bin ein Depp. Die Schleife mache ich selbst, ich Hirni :D
Sorry, ich kapiers doch nicht :-(
Etwa so:
function TMyObjectList<T>.Find(const Predicate: TPredicate<T>): T;
begin
for Result in self do
if...
Forum: Object-Pascal / Delphi-Language
by OlafSt,
6. Aug 2014
Wie praktisch, das einem der Kaffee ausgeht und man schnell mal losmuß, neuen zu besorgen. Sind ja tolle Ideen hier aufgeführt, danke schonmal dafür.
TMyObjectList<T:TDriverBase> = class(System.Generics.Collections.TObjectList<T>) ist eigentlich das, was mir vorschwebt. Dann sorgt doch schon der Compiler dafür, das ich da keinen Integer oder TWorkTime (der nichts mit TDriverBase zu tun hat)...
Forum: Object-Pascal / Delphi-Language
by OlafSt,
6. Aug 2014
Hallo Freunde,
heute mal was für Generic-Anfänger, wie ich es bin. Bisher hab ich die Dinger immer nur benutzt - das soll sich nun ändern.
Ich habe immer wieder das Problem, das ich Objekte en masse in ObjectLists speichern und immer wieder das eine oder andere Objekt in dieser Liste suchen muß. Generics waren eine - wenn auch sehr codeaufblähende - prima Lösung. Nur das Gesuche ist noch...