Použití anonymních metod v Delphi

vložil Radek Červinka 30. ledna 2010 00:15

Naprosto perfektní použití anonymních metod z Delphi 2009+

    1type
    2  THelper = class
    3    class procedure Lock(O: TObject; Proc: TProc); static;
    4  end;
    5
    6class procedure THelper.Lock(O: TObject; Proc: TProc);
    7begin
    8  TMonitor.Enter(O);
    9  try
   10    Proc();
   11  finally
   12    TMonitor.Exit(O);
   13  end;
   14end;

Použití je pak velmi jednoduché, uvedený kód je chráněn kritickou sekcí:

    1procedure TMyObject.Process;
    2begin
    3  Obj.Lock(Self, procedure
    4    begin
    5      //kód chráněn kritickou sekcí
    6    end);
    7end;

Fakt prima.

původní článek

Tagy: ,

Praxe

Delphi 2009 - Anonymní metody

vložil Radek Červinka 6. ledna 2010 01:29

Delphi už dlouho má procedurální typy (tj. typu procedura nebo funkce, v podstatě pointer) a ukazatele na metody ( tj. typ pointer na metodu). To druhé je základem celé VCL - kdykoliv deklarujete třeba OnClick obsluhu jedná se právě o druhý případ. První případ je používaný méně, ale třeba já ho často používám pro různé callback funkce atd.

Anonymní metody rozšiřují stávající stav, kdy místo jména procedury nebo metody prostě napíšete kód. Navíc se v takovém případě mění platnost lokálních proměnných.Více...

Tagy: , ,

Jazyk | Recenze

O Delphi.cz

Delphi for Win32 je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32 na současném trhu (včetně Windows 7).

V současnosti je světová komunita odhadována na 3 milióny vývojářů.

Delphi.cz je nezávislý komunitní portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat vývoj.

Burza delfínů nabízí pracovní možnosti pro programátory v Delphi.

Naše nabídka

Autor serveru delphi.cz nabízí placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj software na zakázku v naší firmě T-Develop.

Neváhejte nás kontaktovat.

Anketa