Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TStings-Instanz macht Problem (https://www.delphipraxis.net/64564-tstings-instanz-macht-problem.html)

roedel 5. Mär 2006 10:59


TStings-Instanz macht Problem
 
Moin moin Leute,

habe nen Problem mit ner TStrings-Instanz (Stringliste).
Delphi-Quellcode:
var DirList: TStrings;
    ....
begin
DirList := TStrings.Create;
DirList.Clear;
try
  ....
  DirList.Add('Was soll ich sagen, es geht nich!');
  //was ich mit der String-Liste anstelle ist egal,
  //weil jedes mal eine Exeption ausgelöst wird
finally
  DirList.free;
  ....
Schon wenn ich die Liste cleare wird ein EAbstractError erzeugt.
Was habe ich falsch gemacht?
Was muss ich noch machen, außer die Objektinstanz zu createn? :cry:

In der Delphi-Hilfe steht, dass TStrings-Objekte nicht direkt (außerhalb einer Komponenete) instantiert werden sollen. Das muss aber totzdem gehen! :wall:

Gruß Roedel

Die Muhkuh 5. Mär 2006 11:00

Re: TStings-Instanz macht Problem
 
Verwende eine TStringList anstatt TStrings.

roedel 5. Mär 2006 11:59

Re: Verwende eine TStringList
 
Zitat:

Zitat von Spider
Verwende eine TStringList anstatt TStrings.

Ich probiere es mal, aber TStringList ist von TStrings abgeleitet und führt nur zusätzliche Funktionen ein, wie z.B. sortieren. D.h. TStringList ist nicht wirklich was anderes.

ma gucken

dataspider 5. Mär 2006 12:03

Re: Verwende eine TStringList
 
Zitat:

Zitat von roedel
Zitat:

Zitat von Spider
Verwende eine TStringList anstatt TStrings.

Ich probiere es mal, aber TStringList ist von TStrings abgeleitet und führt nur zusätzliche Funktionen ein, wie z.B. sortieren. D.h. TStringList ist nicht wirklich was anderes.

ma gucken

Ja, aber die Methode Clear ist in TStrings noch Abstract.
Aus diesem Grunde soll man die Klasse TStrings nicht direkt verwenden.

Cu, Frank

Bernhard Geyer 5. Mär 2006 12:06

Re: Verwende eine TStringList
 
Zitat:

Zitat von dataspider
Zitat:

Zitat von roedel
Zitat:

Zitat von Spider
Verwende eine TStringList anstatt TStrings.

Ich probiere es mal, aber TStringList ist von TStrings abgeleitet und führt nur zusätzliche Funktionen ein, wie z.B. sortieren. D.h. TStringList ist nicht wirklich was anderes.

Ja, aber die Methode Clear ist in TStrings noch Abstract.
Aus diesem Grunde soll man die Klasse TStrings nicht direkt verwenden.

Genau deshalb solltest Du auch vom Compiler eine entsprechende Warnmeldung bekommen haben. Denn was soll der Compiler machen wenn du jetzt eine solche Abstrakte Methode aufrufen willst?

JasonDX 5. Mär 2006 12:14

Re: TStings-Instanz macht Problem
 
Wo bleibt nur die Liebe zur netten OH :?:
In meiner OH steht über EAbstractError
EAbstractError is raised when an application tries to call a Delphi abstract method. It is also raised at design time when a component with Delphi abstract method is placed on a form.

Weiters steht geschrieben
TStrings contains abstract or, in C++ terminology, pure virtual methods and should not be directly instantiated

Wenn man nun schaut gibts dann nochn Link: Using TStrings.
Und unter Using TStrings steht geschrieben
TStringList implements the abstract properties and methods introduced by TStrings, and introduces properties, events, and [...]

Manchmal hilfts echt, wenn man F1 drückt ;)

greetz
Mike

roedel 5. Mär 2006 12:22

Re: TStings-Instanz macht Problem
 
Hallo,

danke erstmal für eure Hilfe.
Ich weiß nicht warum, aber der EAbstractError taucht nicht mehr auf, egal ob ich TStrings oder TStringList nehme. :shock:
Der Computer ist eben auch nur ein Mensch :P

Nichtsdestotrotz verwende ich jetzt TStringList, wiel dort Clear schon implementiert ist. (Danke für den Hinweis)

Apropos OH: Ich habe schon gesucht, was ein EAbstractError zu sagen hat, aber die Hilfe hat nix brauchbares ausgespuckt.

Gruß Roedel


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:12 Uhr.

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