Показать сообщение отдельно
  #1  
Старый 28.02.2009, 15:30
Ushastiy Ushastiy вне форума
Прохожий
 
Регистрация: 28.02.2009
Адрес: Питер
Сообщения: 6
Репутация: 10
Смущение Объединение объектов в ...

доброго времени суток!
вобщем такой вопрос, как объединить объекты в одно чтонибудь, чтоб можно было к ним всем обращатся как к одному объекту по индексу? уже не первый день бъюсь, ничо не помогает, пытался и в массив, и в список.. все либо компилятор ругаетсо, либо прога падает
(так все работает, но и новичку видно что код топорный, ибо видно что одна процедура по 10 раз повторяется с различием в номер объекта)

Код:
procedure TForm1.DrawIconFile;
var
  x: string;
  o, i, b: integer;
begin
  //присвоение иконки файла к комбобоксуЕх по его расширению
  
  ComboBoxEx1.ItemIndex := 0;
  b:=0;
  o:=0;
  for I := 0 to ComboBoxEx1.ItemsEx.Count - 1 do  begin
  x:=copy(ComboBoxEx1.Items[ComboBoxEx1.ItemIndex+ b],length(ComboBoxEx1.Items[ComboBoxEx1.ItemIndex+ b])-3,
    length(ComboBoxEx1.Items[ComboBoxEx1.ItemIndex+ b]));
  if x = '.doc' then o := 3;
  if x = 'docx' then o := 0;
  if x = '.xls' then o := 2;
  if x = 'xlsx' then o := 1;
  ComboBoxEx1.ItemsEx[ComboBoxEx1.ItemIndex+ b].ImageIndex := o;
  b:= b + 1;
  end;

  //и вот тут по новой для второго...
  ComboBoxEx2.ItemIndex := 0;
  b:=0;
  o:=0;
  for I := 0 to ComboBoxEx2.ItemsEx.Count - 1 do  begin
  x:=copy(ComboBoxEx2.Items[ComboBoxEx2.ItemIndex+ b],length(ComboBoxEx2.Items[ComboBoxEx2.ItemIndex+ b])-3,
    length(ComboBoxEx2.Items[ComboBoxEx2.ItemIndex+ b]));
  if x = '.doc' then o := 3;
  if x = 'docx' then o := 0;
  if x = '.xls' then o := 2;
  if x = 'xlsx' then o := 1;
  ComboBoxEx2.ItemsEx[ComboBoxEx2.ItemIndex+ b].ImageIndex := o;
  b:= b + 1;
  end;

  //и для 3го...
  ComboBoxEx3.ItemInd....

  //как избежать этих глупых повторений и грамотно объединить их во чтото одно и обращатся по индексу?
Ответить с цитированием