Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#8

AW: Objekt auf Übergabe prüfen.

  Alt 20. Jan 2014, 19:50
Du hast einen Gedankenfehler

Delphi-Quellcode:
function Test( sl : TStringList; Index : Integer) : TObject;
begin
  Result := sl.Objects[Index];
  sl.Delete(Index);
end;

procedure foo;
var
  o : TObject;
begin
  o := Test( MyStringList, 1 );
  // o hat jetzt eine Referenz aus der StringList,
  // oder es kam eine Exception in Test und der Rest hier wird auch nicht abgearbeitet
  DoSomethingWith( o );
end;
oder hier der Ablauf mit einer Exception in Test
Delphi-Quellcode:
foo
  o := Test( MyStringList, -1 );
    Result := sl.Objects[Index]; // Knallt und gibt eine Exception
    // fertig mit Test
  // fertig mit foo
// Eine MessageBox mit der Exception
und hier ohne Exception
Delphi-Quellcode:
foo
  o := Test( MyStringList, 1 );
    Result := sl.Objects[Index];
    sl.Delete( Index );
    // fertig mit Test
  DoSomethingWith( o );
// fertig mit foo
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (20. Jan 2014 um 19:54 Uhr)
  Mit Zitat antworten Zitat