Results 1 to 3 of 3

Thread: FreeAndNil

  1. #1
    Senior Member rieni's Avatar
    Join Date
    Mar 2001
    Location
    Br?©ttum bij Lillehammer, Noorwegen
    Posts
    342

    Question

    Hei,
    Wat is eigenlijk het verschil tussen:
    if Assigned(objekt) then Objekt.Free
    en
    FreeAndNil(Objekt) ?
    Wanneer gebruik je het een en wanneer de andere vorm?
    Kan iemand dat met bijv. een voorbeeldje duidelijk maken? Alvast bedankt.

  2. #2
    Als je Objekt.Free uitvoert, dan bevat Objekt daarna nog steeds een pointer naar het verwijderde object.

    Dus eigenlijk is FreeAndNil(Objekt) gelijk aan
    Objekt.Free;
    Objekt := nil;

    Maar niet helemaal, want FreeAndNil zet eerst de variabele op nil en voert daarna een Free uit. Gebruik FreeAndNil dus als je zeker wilt weten dat de variabele nil is na een Free (ook als er een exception in de free zou optreden).

    Wanneer gebruik je nou Free en wanneer FreeAndNil? Als de variabele nil moet zijn gebruik je dus FreeAndNil. Je kunt zelf wel bedenken wanneer dat zo moet zijn, maar bijvoorbeeld als er ergens wordt gecontroleerd of die variabele nil is.
    Marco Hemmes

  3. #3
    Mocht je niet over een Delphi versie met source beschikken, dit is FreeAndNil:
    Code:
    procedure FreeAndNil(var Obj);
    var
      P: TObject;
    begin
      P := TObject(Obj);
      TObject(Obj) := nil;  // clear the reference before destroying the object
      P.Free;
    end;
    Marcel

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. MDI FreeAndNil
    By labee in forum Algemeen
    Replies: 4
    Last Post: 16-Mar-05, 08:44
  2. Release of FreeAndNil voor TForm
    By Alias1524 in forum Algemeen
    Replies: 7
    Last Post: 01-Dec-04, 21:57
  3. Is FreeAndNil wel veilig?
    By Alias1524 in forum Algemeen
    Replies: 12
    Last Post: 18-May-04, 22:40
  4. FreeAndNil objecten in array
    By halfgaar in forum Algemeen
    Replies: 4
    Last Post: 15-Apr-04, 12:42
  5. Free vs. FreeAndNil
    By Willemm in forum Algemeen
    Replies: 2
    Last Post: 31-Jan-02, 19:41

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •