Delphi, работа с ComboBox

компьютеры программирование программы Delphi

Есть две процедуры:

procedure BoxUp(var NB:TComboBox);
begin
with NB do
if (ItemIndex>0)
then ItemIndex:=ItemIndex-1
else ItemIndex:=Items.Count;
end;

procedure BoxDown(var NB:TComboBox);
begin
with NB do
if (ItemIndex<Items.Count)
then ItemIndex:=ItemIndex+1
else ItemIndex:=0;
end;

В отладке всё вроде бы хорошо - при условии false выполняется оператор else (в обоих случаях), НО (твоюжмать) визуально не выполняется то, что написано в операторах else.
P.S. Речь идёт про NB.DroppedDown:=true;

Как сделать так, что бы операторы else выполнялись не только в режиме отладки, но и визуально ?
Ответы:
Count - количество итемов, а индексируются итемы с 0. Т.е. Итемов 8, а последний имеет индекс 7... => ItmeIndex никогда не станет больше/равно Items.Count... И соответственно нельзя поставить itemindex больший чем Items.Count-1
procedure BoxUp(var NB:TComboBox);
begin
with NB do
 if (ItemIndex>0) then ItemIndex:=ItemIndex-1
 else ItemIndex:=Items.Count-1;
end;


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.