Finder |
Отправлено: 21.04.2005, 16:24 |
|
Не зарегистрирован
|
Подскажите пожалуйста, как сделать проверку вводимой
строки ComboBox1->Text на уникальность,
т.е. если уже такая строка есть , то эта новая вводимая строка не добавляется в Items.
|
|
FataLL |
Отправлено: 22.04.2005, 01:03 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 37
|
CODE |
if( ComboBox1->ItemIndex == -1 )
{
// добавляем
}
else
{
// уже есть
}
|
Отредактировано FataLL — 22/04/2005, 01:03
|
|
Sl@Sh |
Отправлено: 22.04.2005, 08:28 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
Чтобы был эффект, "немного" переделаем :
CODE |
if (ComboBox1->Items->Count > 0)
{
AnsiString testStr = ComboBox1->Items->Strings[ComboBox1->ItemIndex];
bool FoundDub = false;
for (short i = 0; i < ComboBox1->Items->Count; i++)
{
if (testStr == ComboBox1->Items->Strings[i])
{
FoundDub = true;
break;
}
}
if (FoundDub == false) ComboBox1->Items->Add(testStr);
}
|
P.S.:to FataLL Читайте вопрос внимательно.
|
|
Finder_adventures |
Отправлено: 22.04.2005, 10:05 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 16
|
Sl@Sh , пасиба!!! |
|
FataLL |
Отправлено: 22.04.2005, 13:40 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 37
|
2 Sl@Sh
Парниша, прежде, чем делать критические замечания другим, опробуй предлагаемый код, почитай хэлп. В конце-концов, если все это в ломы делать, можно написать типа "моё мнение такое". Докладываю тебе: при вводе данных ItemIndex АВТОМАТИЧЕСКИ присваивается значение из списка при совпадении ComboBox1->Text с одним из Items (иначе твой бредовый код на строке 3 вообще бы не сработал). Мог бы хоть не позориться с циклом. Поиск строки в TStrings ищется через IndexOf Так что думай, паря, в следующий раз, не обижай людей
|
|
62316e |
Отправлено: 22.04.2005, 13:44 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 38
|
упрощьоный кусок Sl@ShCODE | if (ComboBox1->Items->Count > 0)
{
if (ComboBox1->Items->IndexOf(ComboBox1->Text) == -1) ComboBox1->Items->Add(ComboBox1->Text);
} |
|
|
FataLL |
Отправлено: 22.04.2005, 13:49 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 37
|
to 62316e
Можно даже еще проще:
CODE |
if( ComboBox1->ItemIndex == -1 )
{
ComboBox1->Items->Add( ComboBox1->Text );
}
|
|
|
62316e |
Отправлено: 22.04.2005, 13:59 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 38
|
2: FataLL CODE | if (ComboBox1->ItemIndex==-1) ComboBox1->Items->Add(ComboBox1->Text); |
|
|
Sl@Sh |
Отправлено: 22.04.2005, 16:19 |
|
Мастер участка
Группа: Участник
Сообщений: 383
|
QUOTE (FataLL @ 22/04/2005, 13:40) | Так что думай, паря, в следующий раз, не обижай людей |
А вы IndexOf написали в своём примере ?
Если забыли, то вопрос кому думать надо. Или вы всё это время хелп читали
А вообще если сравнить мой ответ и ваш, то тут вопрос кто кого обижает. В отличие от вас, 62316e просто привёл упрощеный код.
Отредактировано Sl@Sh — 22/04/2005, 16:21
|
|
** Finder_adventures |
Отправлено: 23.04.2005, 10:59 |
|
Не зарегистрирован
|
Спасибо и вам FataLL и 62316e !! |
|
** Finder_adventures |
Отправлено: 23.04.2005, 18:19 |
|
Не зарегистрирован
|
Ответ FataLL и 62316e справедлив если установлено свойство Sorted=true
а ответ Sl@Sh — при Sorted=false ! |
|