2013-02-08 45 views
6

我不斷收到此錯誤。在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; 

知道爲什麼這是行不通的?

+4

改爲調用'adept:= fdb.GetDeptDBName()'。調用'TfDB.GetDeptDBName()'假定一個類方法。 –

+0

謝謝作出回答,我可以接受...不知道我是如何錯過了..但我想它發生 –

+0

艾因已經正確回答。沒有必要重複他的答案。 –

回答

12

您正在調用類上的方法(我假設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話題。

相關問題