Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#8

AW: Non-Visual-Komponente > Ereignisse im OI verknüpfen

  Alt 10. Nov 2010, 19:22
Ich würde bei "procedure of Object", also intern Datentyp TMethod, bleiben.
Diese Art von Events sind deutlich schneller und schlanker als das neue "reference to procedure" (auch bekannt als Closures).

Closures wurden IHMO nie als Ersatz für Events entwickelt.
Ausserdem können mit Closures unerwarte Dinge passieren, weil der Compiler die lokalen Variablen zum Zeitpunkt der Erzeugung des Closure "reinwurstelt".
Beispiel:
Delphi-Quellcode:
procedure TMyClass.DoStuff;
var
  j: integer;
  ShowCounter: TProc; // Method without parameter.
begin
  ShowCounter :=
    procedure
    begin
      // j is known here because it is wrapped in a closure
      // and made available to us!
      writeln(IntToStr(j));
    end;

  for j := 1 to 10 do
    ShowCounter;
end;
Andreas
  Mit Zitat antworten Zitat