使用Delphi 2010 ... 我有一組二進制屬性,我想組合在一起。我已經將它定義爲...在Delphi中,跨單元使用類型定義的問題
type
TTableAttributeType = (
tabROOT = 1,
tabONLINE = 2,
tabPARTITIONED = 3,
tabCOMPRESSED = 4,
);
// Make a set of of the Table Attribute types...
type
TTableAttrSet = Set of TTableAttributeType;
在我的MAIN.PAS單元中,我可以創建一個類型爲TTableAttrSet的變量。 另一個單元,UTILS.PAS也需要理解TTableAttrSet類型。這是照顧的使用條款...
主要用途實用程序... 實用程序主要(第2使用條款,在實施部分,所以我沒有得到循環參考問題....
到目前爲止一切順利。我的問題是,我需要通過類型TTableAttrSet的變種變量從主到utils的。
在main.pas
procedure TForm1.Button1Click(Sender: TObject);
var
TabAttr : TTableAttrSet;
begin
TestAttr (TabAttr);
end;
和UTILS.PAS,我有
procedure TestAttr(var Attr: TTableAttrSet);
begin
Attr := [tabROOT, tabCOMPRESSED];
end;
當我嘗試這個,我遇到了幾個問題... 問題1)。當我定義在utils.pas頂我的過程定義,
procedure TestAttr(var Attr: TTableAttrSet);
我得到TTableAttrSet是一個未聲明的標識符錯誤。這是有道理的,因爲定義在Main.pas中,'使用Main.pas'是在我的過程定義之後。我如何解決這個問題?現在,我已經在Utils.pas文件和Main.pas文件的頂部重複了TTableAttrSet類型定義,但這看起來並不正確。
問題2)。我遇到的更大的問題是編譯錯誤。在Main.pas的呼叫線上
TestAttr(TabAttr);
我得到錯誤'類型的實際和正式的變量參數必須是標識'。據我所知他們是相同的。編譯器在抱怨什麼?
循環引用有什麼問題? –