AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

gelöst ... Klasse rekursiv nutzen?

Ein Thema von moelski · begonnen am 26. Apr 2010 · letzter Beitrag vom 26. Apr 2010
Antwort Antwort
Seite 1 von 2  1 2      
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

gelöst ... Klasse rekursiv nutzen?

  Alt 26. Apr 2010, 09:02
Moin !

Kann ich eine Klasse nicht rekursiv nutzen?
Folgendes Konstrukt:
Delphi-Quellcode:
   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
...
Compilieren kann ich das, aber wenn ich dann FMultiPart erzeugen will, dann knallt es im Create.
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.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Alaitoc

Registriert seit: 24. Okt 2008
263 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Klasse rekursiv nutzen?

  Alt 26. Apr 2010, 09:06
Kannst du vll. mal deinen Create-Aufruf und den Constructor zeigen?
So direkt fällt mir da nichts auf was falsch ist...

MfG Alaitoc
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Klasse rekursiv nutzen?

  Alt 26. Apr 2010, 09:07
Zitat von moelski:
Compilieren kann ich das, aber wenn ich dann FMultiPart erzeugen will, dann knallt es im Create.
Gibts da einen Trick?
Falls du FMultiPart bedingungslos im Create erzeugst, ist klar das es "knallt". Denn das endet logischerweise in einer Endlosschleife.
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Klasse rekursiv nutzen?

  Alt 26. Apr 2010, 09:12
Moin !

Das ist mein Create:
Delphi-Quellcode:
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;
Das FMultiPart erzeuge ich nur dann wenn ich es auch brauche.

Knallen tuts schon hier:
FContentType := ContentType;
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.132 Beiträge
 
Delphi 12 Athens
 
#5

Re: Klasse rekursiv nutzen?

  Alt 26. Apr 2010, 09:17
Und was heißt "knallen"?


Zitat von moelski:
Knallen tuts schon hier:
FContentType := ContentType;
Das Einzige, welches dort knallen könnte wäre
- 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).
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Klasse rekursiv nutzen?

  Alt 26. Apr 2010, 09:18
Zitat von moelski:
Knallen tuts schon hier:
FContentType := ContentType;
Vlt. doch eher schon im inherited Create? Delphi zeigt ja gerne mal die falsche Zeile an. Weil eine einfache String-Zuweisung sollte immer gehen. Was kommt denn eig. für ein Fehler?
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
HeZa

Registriert seit: 4. Nov 2004
Ort: Dortmund
182 Beiträge
 
Delphi 10 Seattle Professional
 
#7

Re: Klasse rekursiv nutzen?

  Alt 26. Apr 2010, 09:18
Hallo,

Zitat von moelski:
Das FMultiPart erzeuge ich nur dann wenn ich es auch brauche.

Knallen tuts schon hier:
FContentType := ContentType;
Es könnte hilfreich sein, wenn du Mal genauer beschreibst, was Du unter "Knallen" verstehst. Gibt es da ein Meldung? Wenn ja, welche?
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#8

Re: Klasse rekursiv nutzen?

  Alt 26. Apr 2010, 09:20
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.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#9

Re: Klasse rekursiv nutzen?

  Alt 26. Apr 2010, 09:22
ENTSCHULDIGUNG ...

vergesst bitte die ganze Anfrage.
Man sollte die Instanz einer Klasse auch richtig erzeugen mittels:
Delphi-Quellcode:
          MultiPart := TMailDecode.Create(FMultiPartBoundary,
                            'multipart/alternative',
                            FMailPart[Boundary].TextList.Text);
und nicht

Delphi-Quellcode:
          MultiPart.Create(FMultiPartBoundary,
                            'multipart/alternative',
                            FMailPart[Boundary].TextList.Text);
Schande. Muss noch nen Kaffee trinken.

Sorry für die Umstände.
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#10

Re: Klasse rekursiv nutzen?

  Alt 26. Apr 2010, 09:22
Wie erzeugst du die Klasse?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:27 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