![]() |
gelöst ... Klasse rekursiv nutzen?
Moin !
Kann ich eine Klasse nicht rekursiv nutzen? Folgendes Konstrukt:
Delphi-Quellcode:
Compilieren kann ich das, aber wenn ich dann FMultiPart erzeugen will, dann knallt es im Create.
TMailDecode = Class
Private FContentType : String; FBoundary : String; // MIME Boundary FMultiPart : TMailDecode; function GetContentType (Line : string) : string; function GetContentDisposition (Line : string) : string; function GetContentDispositionFileName(Line : string) : string; Protected ... Gibts da einen Trick? Ich müsste nämlich einen Mailbody zerlegen und da käme mir das sehr gelegen mit der rekursiven bzw. verschachtelten Klasse. |
Re: Klasse rekursiv nutzen?
Kannst du vll. mal deinen Create-Aufruf und den Constructor zeigen?
So direkt fällt mir da nichts auf was falsch ist... MfG Alaitoc |
Re: Klasse rekursiv nutzen?
Zitat:
|
Re: Klasse rekursiv nutzen?
Moin !
Das ist mein Create:
Delphi-Quellcode:
Das FMultiPart erzeuge ich nur dann wenn ich es auch brauche.
constructor TMailDecode.Create(MIMEBoundary: string; ContentType : string; TextReceived: string);
var I: Integer; begin inherited Create; FContentType := ContentType; FBoundary := MIMEBoundary; FTextReceived := TextReceived; FTextList := TStringList.Create; // Text in Stringliste eintragen FTextList.Delimiter := chr(10); FTextList.StrictDelimiter := True; FTextList.DelimitedText := FTextReceived; FSession := TSiSession.Create(Si, 'MailDecode'); FSession.ClearAll; FSession.EnterMethod('Mail Decoding ...'); // Debug Only // for I := 0 to FTextList.Count - 1 do // FSession.LogVerbose(IntToStr(I) + ' ' + FTextList[I]); FSession.LogVerbose('FBoundary : ' + FBoundary); end; Knallen tuts schon hier: FContentType := ContentType; |
Re: Klasse rekursiv nutzen?
Und was heißt "knallen"?
Zitat:
- das Objekt ist nicht erzeugt (aber da hätte es schon vorher "geknallt") - der String in ContentType ist defekt (da müßtest du vorher irgendwo dessen Speicherverwaltung zerschießen). |
Re: Klasse rekursiv nutzen?
Zitat:
|
Re: Klasse rekursiv nutzen?
Hallo,
Zitat:
|
Re: Klasse rekursiv nutzen?
Knallen heisst in dem Fall:
Erste Gelegenheit für Exception bei $7C812AFB. Exception-Klasse EAccessViolation mit Meldung 'Zugriffsverletzung bei Adresse 004069BA in Modul 'XYZ.exe'. Schreiben von Adresse 00000004'. Prozess XYZ.exe (256) Auch Eurekalog sagt mir die Zeile mit der Stringzuweisung. :gruebel: |
Re: Klasse rekursiv nutzen?
ENTSCHULDIGUNG ...
vergesst bitte die ganze Anfrage. Man sollte die Instanz einer Klasse auch richtig erzeugen mittels:
Delphi-Quellcode:
und nicht
MultiPart := TMailDecode.Create(FMultiPartBoundary,
'multipart/alternative', FMailPart[Boundary].TextList.Text);
Delphi-Quellcode:
Schande. Muss noch nen Kaffee trinken.
MultiPart.Create(FMultiPartBoundary,
'multipart/alternative', FMailPart[Boundary].TextList.Text); Sorry für die Umstände. |
Re: Klasse rekursiv nutzen?
Wie erzeugst du die Klasse?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:00 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 by Thomas Breitkreuz