Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Textfile direkt aus Resource in TStrings laden? (https://www.delphipraxis.net/1651-textfile-direkt-aus-resource-tstrings-laden.html)

arnoldo 16. Dez 2002 10:28


Textfile direkt aus Resource in TStrings laden?
 
Hallo,
habe folgendes Problem, ich möchte aus meiner Resource Strings laden und direkt 'weiterverarbeiten'. Nur es klappt nicht so recht, erhalte immer die folgende Fehlermeldung: 'Exception der Klasse EAbstractError aufgetreten'.Mit einer TMemo-Komponente funktioniert das ganze allerdings -> warum dann nicht mit TStrings?
Hier die betreffenden Code-Zeilen:

Code:
 infos:=tstrings.Create;
 R := TResourceStream.Create(0,'info','txt');
 try
  infos.LoadFromStream(r);
 finally
  r.free;
 end;
Vielen Dank im voraus. :)

Christian Seehase 16. Dez 2002 10: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.

arnoldo 16. Dez 2002 12:39

Danke, für die schnelle Antwort. :spin:
Werde es mal mit der TStringlist versuchen...


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:50 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz