16. Dez 2002, 11:45
Moin Arnoldo,
das funktioniert nicht, weil TStrings eine abstrakte Klasse darstellt.
In einer abstrakten Klasse sind Methoden vorhanden (mindestens eine), bei denen nur die Deklaration enthalten ist, aber keinerlei Funktionalität dahintersteckt. Der Aufruf landet im Nirvana.
Diese ist dann erst von abgeleiteten Klassen zu implementieren.
In diesem Falle könntest Du es mal mit TStringList versuchen. Diese ist von TStrings abgeleitet und enthält keine abstrakten Methoden.
Um Parameter für Funktionen anzugeben kann man übrigens auch abstrakte Klassen angeben, damit alle möglichen davon abgeleiteten Klassen übergeben werden können.
So kann z.B. eine Funktion die TStrings als Parametertyp erhält dann auch Memo.Lines übergeben werden, sowie auch TStringList.
(Deshalb kann man auch nicht die Sichtbarkeit von Methoden beim Ableiten verringern)
Entscheidend ist, dass der übergebene Wert selber nicht vom Typ einer abstrakten Klasse ist.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
|