ComboBox и ListBox

Ирина

Пользователь
Помогите написать циклом вот такую конструкцию:
(весь код писать не буду, только основные моменты)
Код:
.....
type

TForm1 = class(TForm)
ComboBox1: TComboBox;
ListBox1: TListBox;
procedure ComboBox1Change(Sender: TObject);

var
  Form1: TForm1;
  i: integer;
.....
procedure TForm1.ComboBox1Change(Sender: TObject);
var Colors: array[1..5] of string;
begin
  Colors[1] := 'Red';
  Colors[2] := 'Green';
  Colors[3] := 'Blue';
  Colors[4] := 'White';
  Colors[5] := 'Black';
  Colors[6] := 'Yellow';

if ComboBox1.ItemIndex =0 then
  begin
    Listbox1.Clear;
    for i := 1 to 2 do
    ListBox1.Items.Add(Colors[i]);
  end;
  if ComboBox1.ItemIndex =1 then
  begin
    Listbox1.Clear;
    for i := 3 to 4 do
    ListBox1.Items.Add(Colors[i]);
  end;
  if ComboBox1.ItemIndex =2 then
  begin
    Listbox1.Clear;
    for i := 5 to 6 do
    ListBox1.Items.Add(Colors[i]);
  end;
end.
Нужно сделать так, чтобы не писать каждый раз если ComboBox.ItemIndex =1......вдруг этих 'если' будет 150 или больше.
Пробовала создать массив A: array[1..3] of string вот так:
Код:
var A: array[1..3] of string;
A[1] := 'Part1';
A[2] := 'Part2';
A[3] := 'Part3';

for i := 1 to 3 do
ComboBox1.Items.Add(A[i]);


Получается первая строка ComboBox1 пустая, а дальше всё выводится.
 
Последнее редактирование:

Nemko

Старожил
Супер модератор
Ирина, может на Delphi так же работает, как и на Inno:

Код:
var
  A: array [0..500] of string;
  ComboBox1: TComboBox;

procedure Процедура;
var
  i: integer;
begin
// Сдесь например создаем ComboBox1;
for i:=0 to 500 do
begin
if i = 0 then begin
  A[i]:='Empty';
  ComboBox1.Items.Add(A[i]);
end else begin
  A[i]:='Part '+IntToStr(i);
  ComboBox1.Items.Add(A[i]);
  end;
 end;
end;
 

Nemko

Старожил
Супер модератор
Ирина, кстати подумал, если для присвоения цвета при заполнении массива, можно прибегнуть к оператору case of, записывая значения через запятую. Пример:
Код:
for i:=1 to 9 do
begin
case i of
  01, 02, 03: begin
  //Действие
end;
  04, 05, 06: begin
  //Другое действие
end;
  07, 08, 09: begin
  //Третье действие
   end;
  end;
 end;
end;
 
Сверху