TStrings->LoadFromFile geht nicht richtig!
-
skluge schrieb:
ich möchste ein TString-Objekt erzeugen; Dies habe ich so gelöst:
TStrings *string;So erzeugst Du aber nur eine Zeiger auf TStrings. Ein Objekt muß dann auch mit new erzeugt werden. Geht mit TStrings allerdings nicht, weil es eine abstrakte Klasse ist.
[Edit:] Da hab ich wohl ein bißchen langsam getippt....
-
Hallo
und noch der Hinweis, das mit new angelegte Instanzen auch manuell mit delete wieder gelöscht werden müßen (Ausnahmen bestätigen die Regel).
bis bald
akari
-
Sorry für die späte Antwort!
hier mal mein Quellcode:
TStrings *string = new TStrings(); m_pMessage->MessageParts->Add(); TIdText *IdText1 = new TIdText(m_pMessage->MessageParts,string->Lines); IdText1->ContentType="text/plain"; TIdText *IdText2 = new TIdText(m_pMessage->MessageParts,string->Lines); IdText2->ContentType="text/html"Wenn ich jetzt den Compiler laufen lasse, dann spuckt er mir folgenden Fehler aus:
[C++ Fehler] Unit1.cpp(115): E2352 Instanz der abstrakten Klasse 'TStrings' kann nicht erzeugt werden
[C++ Fehler] Unit1.cpp(115): E2353 Klasse 'TStrings' ist abstrakt, weil '_fastcall TStrings::Get(int) = 0'ich möchte in die Variable "string" HTML-Code packen! Leider nimmt die TIdText-Komponente nur TStrings als Wert, oder?!
Wie kann ich das denn lösen?
Danke für die Antworten
-
WebFritzi schrieb:
Nimm TStringList anstatt TStrings. Ach ja, du solltest vielleicht auch noch per "new" Speicher für das Objekt allokieren...
-
C++ Builder 6 Hilfe schrieb:
Von TStrings abgeleitete Objekte ermöglichen die Speicherung und Bearbeitung von String-Listen. TStrings enthalten virtuelle Methoden und sollten nicht direkt instantiiert werden
-
Wenn ich eine StringListe nehmen soll, wie kann ich die dann aber auf die Methode:
TIdText *IdText1 = new TIdText(m_pMessage->MessageParts, ??????? );anwenden? Hier wird doch TStrings erwartet?
-
Hallo
du solltest dir unbedingt Grundlagen in OOP beibringen.
Denn dann wüßtest du, das da TStringList von TStrings abgeleitet ist, eine Instanz von TStringList auch als TStrings angesprochen werden kann. Das heißt du kannst dort ganz normal eine TStringList übergeben.
bis bald
akari
-
evtl. mit StringList->Strings?
-
Hallo
@ SilentSurfer :
Schau dir doch in der BCB-Hilfe mal an, was TStringList::Strings als Typ zurückgibt.
Oder probier es in einem Beispielprojekt bei dir aus.bis bald
akari
-
@akari:
hast recht, AnsiString als Rückgabe ist nicht geeignet.
War ein Schnellschuss aus der Hüfte.