我一直收到这个错误。在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;
并在TFdB
上我有一个公开声明的函数:
public
Function GetDeptDBName(name :string):String;
end;
知道为什么这不起作用?
答案 0 :(得分:13)
您正在调用类上的方法(我假设TfDB
是类名)而不是在实例上。只有class methods可以这样调用。你要做的是创建一个实例,然后调用它上面的方法:
var DB: TfDB;
begin
DB := TfDB.Create(); // create an instance
adept := DB.GetDeptDBName(SelectedDept); // call the method
请参阅docwiki中的E2076 This form of method call only allowed for class methods主题。