有关delphi函数申明和使用问题

源码如下:

 unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    lbl1: TLabel;
    lbl2: TLabel;
    lbl3: TLabel;
    lbl4: TLabel;
    lbl5: TLabel;
    lbl6: TLabel;
    edt_A: TEdit;
    edt_B: TEdit;
    edt_C: TEdit;
    edt_D: TEdit;
    edt_t0: TEdit;
    edt_t: TEdit;
    btnMCPH: TButton;
    procedure btnMCPHClick(Sender: TObject);    //该按钮按下后计算MCPH
    function tau(T0:Double;T:Double):Double;   //计算tau值并返回,tau为T/T0的值
    function H2(T0:Double;T:Double;B:Double):Double ;  //计算MCPH的第二项值
    function H3(T0:Double;T:Double;C:Double):Double ;  //计算MCPH的第三项值
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

//该按钮按下后计算MCPH
procedure TForm1.btnMCPHClick(Sender: TObject);
begin
    ShowMessage('111');
end;

//计算tau值并返回,tau为T/T0的值
function TForm1.tau(T0:Double;T:Double):Double;
begin
    Result:=T/T0;
end;

//计算MCPH的第二项值
function H2(T0:Double;T:Double;B:Double):Double ;
begin
   Result:=(B/2)*T0*(tau(T0;T)+1) ;
end;

//计算MCPH的第三项值
function H3(T0:Double;T:Double;C:Double):Double ;
begin
   Result:=(C/3)*T0*T0*(1+tau(T0;T)*(1+tau(T0;T))) ;
end;

end.

编译后报错:
[Error] Unit1.pas(57): Undeclared identifier: 'tau'
[Error] Unit1.pas(57): Undeclared identifier: 'tau'
[Error] Unit1.pas(26): Unsatisfied forward or external declaration: 'TForm1.H2'
[Error] Unit1.pas(27): Unsatisfied forward or external declaration: 'TForm1.H3'

求解救~~~~

加上TForm1.,这是成员函数,需要加上TForm1
 //计算MCPH的第二项值
function TForm1.H2(T0:Double;T:Double;B:Double):Double ;
begin
   Result:=(B/2)*T0*(tau(T0;T)+1) ;
end;

//计算MCPH的第三项值
function TForm1.H3(T0:Double;T:Double;C:Double):Double ;
begin
   Result:=(C/3)*T0*T0*(1+tau(T0;T)*(1+tau(T0;T))) ;
end;