IndexOf with Function Pointer
|
Smart pascal source code
type
TProc = procedure;
type
IMY = interface
procedure Dummy;
end;
type
TMy = class(IMy)
procedure Dummy;
begin
end;
class procedure CDummy;
begin
end;
end;
procedure test;
begin
end;
var
m := New TMy;
i := m;
a: array of TProc;
begin
a.add(test);
a.Add(TMy.CDummy);
a.Add(m.Dummy);
a.Add(i.Dummy);
Writeln(a.IndexOf(test));
Writeln(a.IndexOf(nil));
Writeln(a.IndexOf(@test));
Writeln(a.IndexOf(TMy.CDummy));
Writeln(a.IndexOf(m.Dummy));
Writeln(a.IndexOf(i.Dummy));
Writeln(a.IndexOf(i.Dummy, 3));