Ich würde bezweifeln, dass es irgendwie geht eine nested function so aufzurufen. Wie soll er aus der nested function dann die lokale Variable Templist finden. Er weiß doch gar nicht, wo er sich gerade im Stack befindet.
Edit: Ja Wahnsinn. Bei D7 geht das sogar durch den Compiler. Liefert aber, wie erwartet, totalen Unfug. Na den kann man ja lange suchen.
Delphi-Quellcode:
type TProc=procedure;
procedure Foo(proc:TProc);
var s:String;
begin
s:='Test'; //nur damit der Stack auch etwas "durcheinander" kommt.
Proc;
showmessage(s); //..und damit die CodeOptimierung mir das s nicht rausschmeißt
end;
procedure TForm1.Button1Click(Sender: TObject);
var x:Integer;
procedure test;
begin
showmessage(inttostr(x));
end;
begin
x:=5;
test;
Foo(@test);
end;
Dieser Beitrag ist für Jugendliche unter 18 Jahren nicht geeignet.