2013-02-11 57 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()进行测试。