AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Funktionen mit Eigener Klasse als Rückgabewert...
Thema durchsuchen
Ansicht
Themen-Optionen

Funktionen mit Eigener Klasse als Rückgabewert...

Ein Thema von Kedariodakon · begonnen am 23. Feb 2005 · letzter Beitrag vom 23. Feb 2005
Antwort Antwort
Benutzerbild von Kedariodakon
Kedariodakon

Registriert seit: 10. Sep 2004
Ort: Mönchengladbach
833 Beiträge
 
Delphi 7 Enterprise
 
#1

Funktionen mit Eigener Klasse als Rückgabewert...

  Alt 23. Feb 2005, 15:11
Mal so eine ganz dumme noob Frage ^^
Wenn ich eine Funktion habe, welche eine eigene Klasse(von TObject ) zurückgibt, muss ich dann dieses Object in der Funktion erstellen mit Create?
Muß ich das zurückgegebene Object außerhalb dann zerstören?

Bin diesbezüglich gerade ein klein wenig verwirrt


Bye
Christian
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#2

Re: Funktionen mit Eigener Klasse als Rückgabewert...

  Alt 23. Feb 2005, 15:15
Ja.
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat
PMM

Registriert seit: 17. Feb 2005
101 Beiträge
 
#3

Re: Funktionen mit Eigener Klasse als Rückgabewert...

  Alt 23. Feb 2005, 16:19
Kommt drauf an, man könnte auch ein Funktion schreiben die ein Objekt als Parameter übernimmt bearbeitet (z.B. mit Daten füllt) und dann als Funktionsergebnis wieder zurück gibt. Also etwa

Delphi-Quellcode:
function MyFoo(aObject: TObject):TObject;
Begin
  if not assigend(aObject)
    then Begin
     ---> Fehlerabbruch
    end
  else begin
    result := aObject;
    
    ---> Result mit Daten füllen usw.

  end;
end;
Damit kann man das Objekt ausserhalb der Funktion erstellen (z.B. auf der gleichen Ebene auf der es wieder entsorgt werden soll).

Die 2. Option wäre etwa so:

Delphi-Quellcode:
function MyFoo:TObject;
Begin
  try
    Result := TObject.Create;
    ---> Result mit Daten füllen usw.
  except
    ---> Fehlerbehandlung
  end;
end;
Ist sieht natürlich eleganter aus, verbirgt aber den Aufruf des Konstruktor.

Der Königsweg aber wäre meines Erachtens, den Konstruktor der Klasse so zu erweitern, dass er die Aufgaben von "MyFoo" mit erledigt. Damit würde der Aufruf von MyFoo zu Gunsten des Konstruktors entfallen und alles ist klar.

[edit=Luckie]Delphi-Tags eingefügt. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:24 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