这种方法调用形式只允许类方法错误

Gle*_*rse 6 delphi

我一直收到这个错误.在FGetZoneData我有:

var
   SelectedDept: String;

implementation

procedure TFGetZoneDept.GetClick1(Sender: TObject);
var
  azone: string;
  adept: string;
  bstats,
  bname,
  btop,
  bleft,
  bnumber,
  basset: string;
  machine : TMachine;
begin
  fdb.count := 0;  //keeps track of number of machines in zone
  azone := Combobox1.Text;    //gets name of zone
  adept := TfDB.GetDeptDBName(SelectedDept); //gets name of dept from a function
  fdeptlayout.ListBox1.Clear;
end;
Run Code Online (Sandbox Code Playgroud)

并且TFdB我有一个公开声明的函数:

public
    Function GetDeptDBName(name :string):String;
end;
Run Code Online (Sandbox Code Playgroud)

知道为什么这不起作用吗?

ain*_*ain 13

你在类上调用方法(我假设TfDB是类名)而不是在实例上.只能通过这种方式调用类方法.你要做的是创建一个实例,然后在其上调用方法:

var DB: TfDB;
begin
  DB := TfDB.Create(); // create an instance
  adept := DB.GetDeptDBName(SelectedDept); // call the method
Run Code Online (Sandbox Code Playgroud)

请参阅E2076这种方法调用仅允许 docwiki中的类方法主题.