Try this:

type

TMyRecord = record

f: function: Integer;

.....

end;

function f1: Integer;

begin

Result := 24;

end;

procedure TForm1.Button1Click(Sender: TObject);

var r: TMyRecord;

l: TList;

begin

r.f := f1;

l := TList.Create;

l.Add(@r);

ShowMessage(IntToStr(TMyRecord(l.Items[0]^).f));

l.Free;

end;

type

TMyRecord = record

f: function: Integer;

.....

end;

function f1: Integer;

begin

Result := 24;

end;

procedure TForm1.Button1Click(Sender

var r: TMyRecord;

l: TList;

begin

r.f := f1;

l := TList.Create;

l.Add(@r);

ShowMessage(IntToStr(TMyRe

l.Free;

end;