C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Связь ComboBox'ов и ListBox'ов  (Прочитано 2915 раз)
Sergey1985
Участник
**

Сказали спасибо: +8/-1
Offline Offline

Сообщений: 310


« : 11 декабря 2018, 09:00:19 »

Всем огромный привет. Продолжаю велосипедировать Улыбка  За все предыдущие подсказки ОГРОМНОЕ СПАСИБО. Суть нового свалившегося вопроса такова. Ест ли какой то оптимальный способ связать между  собой ComboBox'ы и ListBox'ы  так чтобы при изменении списка одного из них список автоматом менялся и в другом. Последовательность записей тоже учитывается.
Записан
Hex
Участник
**

Сказали спасибо: +16/-3
Offline Offline

Сообщений: 38


« Ответ #1 : 12 декабря 2018, 12:38:21 »

и там и там тупо список строк:
Combo1->Items->Text = List1->Items->Text;
List1->Items->Text = Combo1->Items->Text;
PS конкретней вопросы формулируй
Записан
Sergey1985
Участник
**

Сказали спасибо: +8/-1
Offline Offline

Сообщений: 310


« Ответ #2 : 12 декабря 2018, 16:14:14 »

Попробую поточнее.  Имеется на форме несколько  ListBox.  Я работаю с одним из них. Добавляю удаляю меняю местами строки. Так вот нужно чтобы эти изменения автоматически отображались на всех остальных. Чтобы все ListBox имели одинаковые списки. Понимаю что можно при каждом пчихе самому вручную эти самые строки из первого ListBox копировать во все остальные ListBox или прописывать каждое действие для всех ListBox. Но тогда код будет слишком нагроможденным. Поэтому и призадумался.   
Записан
S0mbre
Глобальный модератор
***

Сказали спасибо: +1113/-22
Offline Offline

Сообщений: 2137

S0mbre


WWW
« Ответ #3 : 07 февраля 2019, 14:24:01 »

Выше решение - в обработчике события OnChange менять свойство Text остальных списков (проверять, какие в данный момент не в фокусе). Другой вариант - хранить текст в отдельной переменной (напр. типа TStringList) и прописать на все ListBox / ComboBox'ы один обработчик события OnData, в котором брать данные из этого TStringList. А на обработчики OnDragDrop и т.д. (если меняете данные местами при помощи мыши, к примеру) повесить
Код
// TStringList* strList; --- в классе формы
strList->Assign(static_cast<TListBox*>(Sender)->Items);
 
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в: