Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.840 Beiträge
Delphi 10 Seattle Enterprise
|
Re: Rückgabewert von Funktionen / evtl. Problem mit try..fin
2. Dez 2004, 15:36
Zitat von MaBuSE:
Ich würde es so machen:
Delphi-Quellcode:
function meineFkt(str: String): TMeinTyp;
begin
Result := TMeinTyp.Create;
Result.Property1 := 'Hallo 1';
Result.Property2 := 'Hallo 2';
end;
bzw etwas sicherer:
Delphi-Quellcode:
function meineFkt(str: String): TMeinTyp;
begin
Result := TMeinTyp.Create;
try
Result.Property1 := 'Hallo 1';
Result.Property2 := 'Hallo 2';
except
FreeAndNil(Result);
end;
end;
Rückgabe = TMeinTyp
Rückgabe bei Fehler = nil
[edit]
Anwendung:
Delphi-Quellcode:
...
x.Free; // nur um zu zeigen das x nicht definiert sein sollte/muss
x := meineFunktion('');
if x <> nil then
try
// mach was
finally
x.Free;
end
else Fehlermeldung.Ausgeben('...');
...
[/edit]
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
|