Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.07.2018, 02:18
TEKTON TEKTON вне форума
Новичок
 
Регистрация: 14.03.2011
Сообщения: 60
Репутация: 10
По умолчанию Загрузка Items*в в несколько ComboBox*ов

Приветствую.
Значит проблема такая:

На форме есть несколько ComboBox*в.
И есть ListBox со значениями.

Мне надо загрузить ComboBox*ам значения из ListBox
Именно весь список значений в каждый ComboBox.

Что б получилось что то типо такого:

Код:
var 
i:integer;
for i :=15 to 25 do
begin
Form1.ComboBox[i].Items:= Form1.ListBox1.Items;
end;
Спасибо.

Последний раз редактировалось TEKTON, 24.07.2018 в 02:48.
Ответить с цитированием
  #2  
Старый 24.07.2018, 03:23
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,096
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Цитата:
Сообщение от TEKTON
Приветствую.
Значит проблема такая:

На форме есть несколько ComboBox*в.
И есть ListBox со значениями.

Мне надо загрузить ComboBox*ам значения из ListBox
Именно весь список значений в каждый ComboBox.

Ну так грузи:
Код:
Form1.ComboBox1.Items.Assign(Form1.ListBox1.Items);
Form1.ComboBox2.Items.Assign(Form1.ListBox1.Items);
...
Ответить с цитированием
  #3  
Старый 24.07.2018, 08:42
TEKTON TEKTON вне форума
Новичок
 
Регистрация: 14.03.2011
Сообщения: 60
Репутация: 10
По умолчанию

Цитата:
Сообщение от lmikle
Ну так грузи:
Код:
Form1.ComboBox1.Items.Assign(Form1.ListBox1.Items);
Form1.ComboBox2.Items.Assign(Form1.ListBox1.Items);
...
Это понятно.
Но дело в том, что ComboBox*ов много.
И если каждому присваивать значение, то это целая "простыня" получится.
Работать будет, не спорю.
Но хочется код оптимизировать.

И я хочу в цикле присваивать им индексы
Сделать типо перебора ComboBox*ов (с 15го по 25й)

Код:
Тут цикл
begin
Form1.ComboBox[i].Items.Assign(Form1.ListBox1.Items);
end;

Как сделать конструкцию ComboBox[i] ?

Последний раз редактировалось TEKTON, 24.07.2018 в 08:57.
Ответить с цитированием
  #4  
Старый 24.07.2018, 09:02
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
Сообщение от TEKTON
...хочу в цикле присваивать им индексы
Сделать типо перебора ComboBox*ов (с 15го по 25й)...
Ну, здесь несколько вариантов, если других комбиков нету (с 1го по 14й и с 26го до N), то можно перебором компонентов на форме, примерно так
Код:
for i := 0 to Form1.ComponentCount - 1 do
  if Form1.Components[i] is TComboBox then
     (Form1.Components[i] as TComboBox).Items.Assign(Form1.ListBox1.Items);
а если есть, то тогда поиском,можно так
Код:
for i := 15 to 25 do
  if Form1.FindComponent('ComboBox' + IntToStr(i)) <> nil then
   (Form1.FindComponent('ComboBox' + IntToStr(i)) as TComboBox).Items.Assign(Form1.ListBox1.Items);

Последний раз редактировалось Alegun, 24.07.2018 в 09:12.
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
TEKTON (24.07.2018)
  #5  
Старый 24.07.2018, 09:15
TEKTON TEKTON вне форума
Новичок
 
Регистрация: 14.03.2011
Сообщения: 60
Репутация: 10
По умолчанию

Alegun, спасибо огромное!

Второй вариант то что нужно!
Тему можно прикрыть.
Ответить с цитированием
  #6  
Старый 25.07.2018, 02:35
TEKTON TEKTON вне форума
Новичок
 
Регистрация: 14.03.2011
Сообщения: 60
Репутация: 10
По умолчанию

Погонял программку, но работает не очень коректно.

В ComboBox*сы список загружается, но при клике на кнопке обработчика, данные из ComboBox*а не брабатываются, как буд то ComboBox пустой.
Скорее всего это связано с ItemIndex*ом.

Но если открыть ComboBox и выбрать значение вручную, то всё работает нормально.

Как дополнить цикл, что б программно выбиралось первое значение из ComboBox ?
Короче надо съэмулировать, как будто я открыл ComboBox и выбрал первое значение.

Последний раз редактировалось TEKTON, 25.07.2018 в 08:02.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:42.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025