Folgendes Szenario:
Delphi-Quellcode:
type
TFunk = function(Wert:integer):string;
TIstwas = class(TObject)
FZahlZuText:@TFunk;
end;
TMachwasListe = class(TObjectList<TIstwas>)
end;
procedure TuWas;
var Istwas:TIstwas;Text:string;
begin
...
Istwas := TIstwas.Create;
Istwas.FZahlZuText := @Funkt;
MachwasListe.Add(Istwas);
Text := MachwasListe[0].FZahlZuText(5);
end;
function Funkt(Wert:integer):string;
begin
Result := IntToStr(Wert);
end;
Das funktioniert einfach nicht, weil der Parameter nicht an die Funktion weitergegeben wird. Ich habe alles Mögliche probiert, unter anderem "of object" (Methodenzeiger?). Der Parameter funktioniert nicht oder es gibt eine Zugriffsverletzung, wenn "Result" in der Funktion zugewiesen wird.
Was funktioniert, ist
procedure Funkt(const Wert:integer;var Result:string
, aber auch nur in der const/var Kombination. Ich bin mir sicher, dass den alten Hasen das alles klar ist, kann mir einer das mal erklären?