2016-01-18 c++ builder > TComboBox > Items[]変更時にItemIndexが変更されるのを回避する実装
2957 ワード
動作確認
C++ Builder XE4
TComboBoxにてItems[]を変更時、ItemIndexが-1に初期化されてしまう。
それを回避するため、以下のような関数を用意している。
void TItemsUpdator::setStringToTComboBoxItems(String str, TComboBox *cbPtr, bool withSpace)
{
if (cbPtr == NULL) {
return;
}
TStringList *slPtr = static_cast<TStringList *>( cbPtr->Items );
int preIdx = cbPtr->ItemIndex;
if (withSpace) {
slPtr->StrictDelimiter = true;
slPtr->Delimiter = L',';
slPtr->DelimitedText = str;
} else {
slPtr->CommaText = str;
}
// Items[]変更時にItemIndexが-1に初期化されるので元々の値に戻す
cbPtr->ItemIndex = preIdx;
}
もっとシンプルな方法で同じことができないだろうか。
Author And Source
この問題について(2016-01-18 c++ builder > TComboBox > Items[]変更時にItemIndexが変更されるのを回避する実装), 我々は、より多くの情報をここで見つけました https://qiita.com/7of9/items/042604c6f41189f9d7ba著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .