C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
ListBox, проблема
mirk
Отправлено: 17.07.2003, 13:14


Ученик-кочегар

Группа: Участник
Сообщений: 10



Подскажите плиз как мне провети проверку поля на наличие цифр(от 0 до 10), и в зависимости от цифры отметить ItemIndex с таким же номером в ListBox'е.
Пробовал так, но не хотит:
CODE

if (Table->FieldByName("Jitel_t")->AsString == lbTown->ItemIndex)
{
lbTown->ItemIndex=lbTown->Items->IndexOf(TableJitel_t->AsString);
        }


lbTown- ListBox
sprinter
Отправлено: 17.07.2003, 16:44


Ученик-кочегар

Группа: Участник
Сообщений: 14



Вариант
if (Table->FieldByName("Jitel_t")->AsString == lbTown->ItemIndex)
будет всегда давать false, т.к. идет сравнение строки и цифры.
Если я правильно понял задачу, то для проверки диапазона нужно использовать свойство AsInteger:
int pole=Table->FieldByName("Jitel_t")->AsInteger;
if (pole>= 0 && pole<=10)
{ lbTown->ItemIndex=pole; }

Или другая была идея?

mirk
Отправлено: 17.07.2003, 21:33


Ученик-кочегар

Группа: Участник
Сообщений: 10



sprinter

Сенк большой, то что нужно.
AsInteger я тоже пробовал но только в своем коде.
mirk
Отправлено: 18.07.2003, 07:31


Ученик-кочегар

Группа: Участник
Сообщений: 10



Странно пишу так:

CODE

void __fastcall TfMain::SpeedButton6Click(TObject *Sender)
{
int jit_t = tE->FieldByName("Jitel_t")->AsInteger;//города
if (jit_t >= 0 && jit_t <= lbTown->Count)
{
 rbTown->Checked = true;
 lbTown->ItemIndex = jit_t;
 lbTown->Visible = true;
}
int jit_r = tE->FieldByName("Jitel_r")->AsInteger;//сельские районы
if (jit_r >= 0 && jit_r <= lbRegion->Count)
{
 rbRegion->Checked = true;
 lbRegion->ItemIndex = jit_r;
 lbRegion->Visible = true;
}

}


При работе никаких ошибок не выдает, только почемуто если должны сработать города, срабатывают сельские районы на ItemIndex=0
sprinter
Отправлено: 18.07.2003, 11:34


Ученик-кочегар

Группа: Участник
Сообщений: 14



По коду получается две независимых проверки — последняя для села, видимо она и определяет результат. Можешь поменять if-ы местами будет все иначе. И RB из одной группы, наверное. Проверь логику...
Это одни предположения, не зная содержания таблицы и смысла проверок.
mirk
Отправлено: 21.07.2003, 07:34


Ученик-кочегар

Группа: Участник
Сообщений: 10



Разобрался, там в любом случае и в селе и в городе в базу заносились нули.

Блин, после армии тормозить стал. Да же случай был, полтора дня разбирал как решается квадратное уравнение. sad.gif

Вернуться в Работа с базами данных в C++Builder