2

Delphi TRibbonComboBoxにアイテムインデックスがないことを発見しましたが、そうする必要があります。

少なくともユニットではこれをローカルで修正したいと思います。Delphi2009は、クラスから降りることなく、外部のクラスに新しいメソッドを導入する方法を追加したと思いますが、その方法を思い出せません。

'function ItemIndex:integer;'を追加する方法はありますか?少なくともローカルユニット内のTRibbonComboBoxクラスに、元のコンポーネントをいじる必要はありませんか?(または私はC#を考えていますか?)

ありがとう!

これが答え/実装です、thxメイソン!

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 に答える