2013-02-11 58 views
6

我是一名新手程序員。我需要使用Delphi的in運營商在C++ Builder的XE這樣的:如何在C++ Builder中使用Delphi「in」運算符

if (dgColLines in DBGrid->Options) 
    // include vertical lines in total (one per column) 
    TotalColumnWidth = TotalColumnWidth + ColumnCount; 
if (dgColLines **in** DBGrid->Options) 

如何做,在C++ Builder中?

在此先感謝。

+0

也許C++ Builder文檔中的[對VCL的語言支持](http://docwiki.embarcadero.com/RADStudio/XE3/en/Language_Support_for_the_VCL_%28C%2B%2B%29)將有助於查找等效項。 – 2013-02-12 01:44:32

回答

11

使用Contains方法來檢查是否一組包含特定元素:

if(DBGrid->Options.Contains(dgColLines)) 
    TotalColumnWidth = TotalColumnWidth + ColumnCount; 
+1

Thaaaanks很多TLama,它的工作.... – Andromeda 2013-02-11 10:58:59

9

尋找問題,TDBGrid.Options的屬性,其類型是TDBGridOptions其被定義爲:

typedef System::Set<TDBGridOption, TDBGridOption::dgEditing, 
    TDBGridOption::dgTitleHotTrack> TDBGridOptions; 

如您所見,C++ Builder使用模板System::Set<T, minEl, maxEl>來模擬Delphi集合類型。

使用內置的Delphi集合運算符可用的所有功能都通過Setmethods公開。具體到這個問題,設置成員正在使用Contains()進行測試。