2
我剛發現Delphi TRibbonComboBox沒有物品索引,應該是。如何將ItemIndex添加到TRibbonComboBox?
我想至少在本地解決這個問題,我認爲Delphi 2009增加了一種方法來向外部類引入新的方法,而不必從類下降,但我不記得如何。
有沒有辦法添加'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;
值得一提的是,爲什麼TRibbonComboBox沒有可見的itemindex。更重要的是:**也許還有另一種方法來實現你的目標**,這是由已發佈的屬性服務? – Argalatyr 2009-09-07 18:52:04
它確實發生在我身上,我查看了所有已發佈的屬性,並找不到ItemIndex,SelectedItem,SelectedText或類似的東西。它也缺少DropDownStyle,這是一個更大的疏漏。然而,我不想陷入一個有缺陷的設計論點(哎呀,只是):)如果你知道一個更好的方式來從RibbonComboBox中獲取選定的項索引,我很樂意聽到它,thx ! – Zartog 2009-09-07 19:14:57
我的觀點是獲得itemindex是一種策略,而不是實際的目標,即「你實際上想要完成什麼?」這裏沒有必要回答我 - 我只是說在問題中有時候說明你的目標是值得的,這樣我們就可以避免(可能我們不能在這個具體情況下 - 取決於你的目標)避免這些問題。 – Argalatyr 2009-09-07 19:53:10