Results 1 to 6 of 6

Thread: interface result en with

  1. #1
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382

    interface result en with

    Ik heb een functie die een interface teruggeeft:
    Code:
    function TDmoLookup.ZoekEenKlant(const klantnr: integer): IQuery<TQryZoekEenKlant>;
    begin
      Result := blabla create result interface
    end;
    Is het dan veilig om zonder hulpvariabele deze functie zo te gebruiken? "Weet" de compiler zeker weten dat deze interface vrijgegeven wordt?
    Het doel is om "snel even" een lookup te doen met zo min mogelijk code.
    Code:
    with DmoLookup.ZoekEenKlant(123) do
    begin
      // doe iets met Result interface zonder variabele te declareren
    end;

  2. #2
    Ja, dat werkt. Het object wordt vrijgegeven, maar niet aan het eind van het with block. Het gebeurt pas aan het eind van de procedure. Met een simpel testje is dat aan te tonen, maar je kan ook de aanroep naar @IntfClear terugzien in het CPU debug window.

    Voor regels code hoef je het niet te doen. De winst van het niet declararen van de variabele ben je kwijt aan het schrijven van begin..end.
    Last edited by GolezTrol; 08-May-18 at 19:33.
    1+1=b

  3. #3
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    Thanks. Ja klopt. Het ging meer om het idee. De @IntfClear is inderdaad te zien.
    Soms wel handig interfaces :-)

  4. #4
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Let op, FPC laat op andere plaatsen los dan Delphi, typisch na het laatste gebruik.

  5. #5
    Reader
    Join Date
    May 2002
    Location
    Holland
    Posts
    3,382
    ok ! interessant. Dus dat zou na het with-statement zijn?

  6. #6
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    Waarschijnlijk wel ja.

Thread Information

Users Browsing this Thread

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

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
  •