2

我刚刚发现 Delphi TRibbonComboBox 没有项目索引,它应该。

我想至少为该单元在本地解决这个问题,我认为 Delphi 2009 添加了一种将新方法引入外部类的方法,而无需从类中下降,但我不记得如何。

有没有办法添加'function ItemIndex:integer;' 至少在本地单元内到 TRibbonComboBox 类,而不必弄乱原始组件?(或者我在想 C# 吗?)

谢谢!

这是答案/实现,谢谢梅森!

TRibbonComboBoxHelper = class helper for TRibbonComboBox
public
  function GetItemIndex: integer;
  procedure SetItemIndex(Index : integer);
  property ItemIndex : integer read GetItemIndex write SetItemIndex;
end;

function TRibbonComboBoxHelper.GetItemIndex: integer;
begin
  result := Items.IndexOf(Text);
end;

procedure TRibbonComboBoxHelper.SetItemIndex(Index: integer);
begin
  if (Index >= 0) and (Index < Items.Count) then
    Text := Items[Index];
end;
4

1 回答 1

2

您可以使用类助手,如下所示:

type
  TRibbonComboBoxHelper = class helper for TRibbonComboBox
  public
    function ItemIndex: integer;
  end;

需要注意的是,您不能以这种方式添加任何新字段,因此您必须能够从 TRibbonComboBox 公开的信息中计算此函数的返回值。

于 2009-09-07T18:32:59.600 回答