如何在C++生成器中使用Delphi"in"运算符



我是个新手程序员。我需要在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中做到这一点?

提前谢谢。

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

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

查看有问题的属性TDBGrid.Options,其类型为TDBGridOptions,定义为:

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

正如您所看到的,C++Builder使用模板System::Set<T, minEl, maxEl>来模拟Delphi集合类型。

使用内置的Delphi集合运算符的所有可用功能都通过Set的方法公开。针对这个问题,集合成员身份是使用Contains()进行测试的。

最新更新