vložil Radek Červinka
16. ledna 2015 01:01
V době vydání Delphi 2009 jsem popisoval Anonymní metody (v jiných jazycích někdy jako closure), ale nějak mi nedošlo to hlavní, resp. nějak jsem nepochopil důležitost jedné vlastnosti a to je "capture", tj. zachycení stavu lokálních proměnných čímž se zásadně odlišují od typu funkce nebo metoda.
Více...
vložil Radek Červinka
21. července 2014 23:32
Před několika verzemi byla metoda TThread.Synchronize rozšířena o několik možností volání, mezi jinými i anonymní metody. Nepřikládal jsem tomu moc význam, ale poslední dobou jsem to viděl v několika projektech a nabývám dojmu, že to má větší možnosti než jsem si myslel.
Více...
vložil Radek Červinka
26. března 2011 00:20
Anonymní metody jsou silně nedoceněnou vlastností nových Delphi.
Jen pro zajímavost jsem orientačně porovnával rychlost TDirect2DCanvas a TCanvas. Při té příležitosti jsem narazil na problém jehož řešení velmi zjednodušilo použití anonymních metod. Více...
vložil Radek Červinka
20. října 2010 23:43
Zkoušel jsem si hrát s RTTI (Run Time Type Information) a byl jsem tak nadšen jednoduchostí použití, že výsledkem je jednoduchý program, který ve stromě zobrazuje známé typy včetně metod, property a polí. Zároveň ukazuje efektivní použití anonymních metod, generických typů a to vše na 100 řádcích včetně deklarace.
Více...
vložil Radek Červinka
30. ledna 2010 00:15
Naprosto perfektní použití anonymních metod z Delphi 2009+
type
THelper = class
class procedure Lock(O: TObject; Proc: TProc); static;
end;
class procedure THelper.Lock(O: TObject; Proc: TProc);
begin
TMonitor.Enter(O);
try
Proc();
finally
TMonitor.Exit(O);
end;
end;
Použití je pak velmi jednoduché, uvedený kód je chráněn kritickou sekcí:
procedure TMyObject.Process;
begin
Obj.Lock(Self, procedure
begin
//kód chráněn kritickou sekcí
end);
end;
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...