Einzelnen Beitrag anzeigen

BAMatze

Registriert seit: 18. Aug 2008
Ort: Berlin
759 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Konzeptfrage zu Problem Methodenzeiger vs. reguläre Proc

  Alt 13. Okt 2009, 11:23
Zitat von sirius:
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;
Ok Antwort ist also nein für alle Versionen, denke ich.
2. Account Sero
  Mit Zitat antworten Zitat