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
6 end);
7end;
Fakt prima.
původní článek
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...