9. Ниспадающие списки.
Ниспадающие списки по работе своих свойств и методов похожи на списки выбора, но в них нельзя выбирать сразу несколько элементов.
Установите на форме один компонент TComboBox и один компонент TEdit и две кнопки.
Создадим обработчик события onChenge для ниспадающего списка ComboBox1. Это событие происходит, когда пользователь выбрал какой-нибудь элемент списка. Здесь напишем следующий код.
Edit1ext:=ComboBoxl.Items.Strings[ComboBoxl.ItemIndex] ;
Напишем код для кнопки Добавить.
ComboBoxl.Items.Add('Новая строка')
Для кнопки Удалить код будет следующим:
ComboBoxl.Items.Delete(ComboBoxl.Itemlndex);
Существует несколько типов ниспадающих списков. За тип списка отвечает свойство Style.
Рассмотрим пример.
var
index:Integer;
.sum:Integer;
EndCount:Integer;
begin
Sum:=0;
for index:=0 to 5 do
Sum: =Sum+index;
end;
В этом примере объявляются две переменные indexиsumцелого типа. Сначала переменнойSumприсваивается значение 0. После этого запускается цикл, в котором переменнаяindexбудет изменяться от 0 до 5.
Реализация.
Создайте приложение. Поместите на форме два компонента TLabel, два компонента TEdit и одну кнопку.
Конечное значение
Результат
Подсчитать
Компонент Edit1 переименуем в EndEdit, a Edit2 переименуем в ResultEdit.
По нажатии кнопки (обработчик события onclick для кнопки, которое генерируется, когда пользователь нажал на кнопке) пишем следующий код.
Procedure TForml.CalculateButtonClick(Sender : TObj e c t ) ;
var
Index:Integer ;
Sum: Integer;
Count:Integer;
Begin
Sum:=0;
EndCount:=StrToInt(EndEdit.Text);
for index:=0 to EndCount do
Sum:=Sum+index;
ResultEdit.Text:=IntToStr(Sum);
End;
В принципе, текст тот же самый. Единственная разница заключается в том, что цикл запускается, начиная от 0 до числа введенного в компонент EndEdit.EndEditсодержит текст, а нам нужно превратить его в число, поэтому мы пользуем функциюstrToIntдля преобразования строки в число. Эта функция работает так же, как иintTostr, которая наоборот преобразовывала число в строку.
Результат преобразования сохраняется в переменной EndCount:
EndCount:=StrToint(EndEdit.Text);
После этого запускается цикл, в котором переменная indexбудет изменяться
от 0 до значения EndCount(в котором находится число, введенное вEndEdit)
forindex:=0toEndCountdo
Запустите программу и введите в строку Конечное значение число 5. После этого нажмите на кнопку, и в строке результата должно появиться число 15