16,749
社区成员
发帖
与我相关
我的任务
分享
procedure fun1;
begin
showmessage('1');
end;
procedure fun2;
begin
showmessage('2');
end;
procedure fun3;
begin
showmessage('3');
end;
var
l: TList;
procedure DOIt(i:integer);
begin
TProcedure(l[i-1])
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
l:=TList.Create;
l.Add(@fun1);
l.Add(@fun2);
l.Add(@fun3);
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
l.Free;
end;
procedure TForm1.FormClick(Sender: TObject);
begin
DoIt(2);
end;
procedure x1;
begin
ShowMessage('1');
end;
procedure x2;
begin
ShowMessage('2');
end;
var
x: array [0..1] of procedure = (x1,x2);
procedure DO(i:integer)
begin
x[i];
end;
越界问题自己判断。