这是本人做的实例
但是编译出错
unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;type
   Tmyfunc=function(m:integer):real; //定义的过程类型
   TForm1 = class(TForm)
   Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
   procedure sigdo(e1,e2:integer;funp:Tmyfunc);//
   function f1(k:integer):real;//
   function f2(m:integer):real;//
   function f3(j:integer):real;//
  end;
   Tmyfunc2=function(m:integer):real; //var
  Form1: TForm1;implementation{$R *.dfm}{ TForm1 }{ TForm1 }function TForm1.f1(k: integer): real;
begin
  f1:=1/1;
end;function TForm1.f2(m: integer): real;
begin
 f2:=ln(1);
end;function TForm1.f3(j: integer): real;
begin
  f3:=sin(1/1);
end;procedure TForm1.sigdo(e1, e2: integer; funp: Tmyfunc);
var
  s:real;
  n:integer;
begin
  s:=0;
  for n:=e1 to e2 do s:=s+funp(n);end;procedure TForm1.Button1Click(Sender: TObject);
begin
 sigdo(1,100,f);
 sigdo(21,50,f2);
 sigdo(5,80,f3);
end;
end.

解决方案 »

  1.   

    function TForm1.f1(k: integer): real;
    begin
     result:=1/1;
    end;
      

  2.   

    你说的不对啊~~
    在说了在delphi result=函数名(返回芝)
      

  3.   

    可不可以列出你的錯誤信息,以下的代碼是可以的:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        Edit1: TEdit;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;
      TMyFun=function(const m:integer):integer;
    var
      Form1: TForm1;
      myFun:TMyFun;
    implementation{$R *.dfm}
    function t1(const m:integer):integer;
    begin
      result:=m+1;
    end;function t2(const m:integer):integer;
    begin
      result:=m+2;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      MyFun:=t1;
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
      myFun:=t2;
    end;procedure TForm1.Button3Click(Sender: TObject);
    begin
    Edit1.Text:=IntToStr(MyFun(4));
    end;end.
      

  4.   

    procedure TForm1.Button1Click(Sender: TObject);
    begin
     sigdo(1,100,f);
     sigdo(21,50,f2);
     sigdo(5,80,f3);
    end;
    上面的f是不是要改成f1啊,f都不是函数名
      

  5.   

    f->f1 是我的笔误
    其实在代码中是f1谢谢各位
      

  6.   

    錯誤信息
    [Error] Unit1.pas(69): Incompatible types: 'regular procedure and method pointer'
    [Error] Unit1.pas(70): Incompatible types: 'regular procedure and method pointer'
    [Error] Unit1.pas(71): Incompatible types: 'regular procedure and method pointer'