如何在C++ Builder中使用Delphi的“in”运算符

8

我是一名新手程序员。我需要在C++ Builder XE中像这样使用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中实现此功能?
提前致谢。

也许在C ++ Builder文档中的VCL语言支持部分能够帮助找到相应的等价物。 - Ken White
2个回答

14

使用Contains方法来检查一个集合是否包含特定元素:

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

9

看一下所讨论的属性TDBGrid.Options,它的类型是TDBGridOptions,其定义如下:

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

如您所见,C++ Builder使用模板System::Set<T, minEl, maxEl>来模拟Delphi集合类型。
内置的Delphi集合运算符所提供的所有功能都通过Set方法公开。特别是针对本问题,集合成员资格测试是使用Contains()进行的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接