【问题标题】:How to use Delphi "in" operator in C++ Builder如何在 C++ Builder 中使用 Delphi "in" 运算符
【发布时间】:2013-01-26 11:03:58
【问题描述】:

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

提前致谢。

【问题讨论】:

标签: delphi set c++builder c++builder-xe


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    如您所见,C++ Builder 使用模板 System::Set&lt;T, minEl, maxEl&gt; 来模拟 Delphi 集合类型。

    使用内置 Delphi 集合运算符的所有可用功能都通过 methodsSet 公开。具体到这个问题,集合成员正在使用Contains() 进行测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-16
      • 2022-01-01
      • 1970-01-01
      • 2019-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多