Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.01.14;
Скачать: CL | DM;

Вниз

Помогите, пожалуйста, со списками.   Найти похожие ветки 

 
raqy.style ©   (2006-12-21 17:59) [0]

Вопрос, собственно, вот в чем. Есть у меня ListBox & ComboBox. В ListBox много всяких строк, в том числе и повторяющиеся. мне нужно что бы в comboBox-е появились строки из ListBox-а только в единственном экземпляре.

Заранее спасибо!


 
PZ   (2006-12-21 18:44) [1]

B ComboBox надо установить Sorted = True и Duplicates = dupIgnore, после чего скопировать солержимое ListBox в ComboBox. Должно получиться желаемое.


 
PZ   (2006-12-21 18:55) [2]

К сожалению так не получится. Прошу извинить, ввел в заблуждение


 
Anatoly Podgoretsky ©   (2006-12-21 19:05) [3]

> PZ  (21.12.2006 18:55:02)  [2]

ListBox -> StringList -> ComboBox


 
raqy.style ©   (2006-12-21 19:07) [4]

Спасибо!!!!


 
Anatoly Podgoretsky ©   (2006-12-21 19:09) [5]

> raqy.style  (21.12.2006 19:07:04)  [4]

Второй вариант - ручками с проверкой на IndexOf
Что будет быстрее зависит от размера ListBox


 
raqy.style ©   (2006-12-21 19:46) [6]


> Anatoly Podgoretsky ©   (21.12.06 19:09) [5]

Анатолий, если Вас не затруднит, приведите, пожалуйста, пример. Или хотя бы алгоритм опишите подробнее.

Я пробовал 2 цикла for. каждый элемент Комбо сверял с каждым из Лист. но желаемое не получалось.


 
Anatoly Podgoretsky ©   (2006-12-21 19:52) [7]

> raqy.style  (21.12.2006 19:46:06)  [6]

Цикл один по ListBox, перед добавлением проверяешь на дубль с помощью ComboBox.Items.IndexOf


 
raqy.style ©   (2006-12-21 19:58) [8]

пробую.
var i: integer;
begin

   comboBox1.Items.Add(listBox1.Items[0]) ;
   for i := 0 to listbox1.Items.Count -1 do
   begin
       if comboBox1.Items.IndexOf(listBox1.Items[i]) = 0 then
       comboBox1.Items.Add(listBox1.Items[i]);
   end;

end;
но увы.


 
PZ   (2006-12-21 19:58) [9]

> [3] Anatoly Podgoretsky ©   (21.12.06 19:05)

Да, конечно, как-то я не сообразил.


 
Anatoly Podgoretsky ©   (2006-12-21 20:08) [10]

> raqy.style  (21.12.2006 19:58:08)  [8]

Первую строчку comboBox1.Items.Add убрать.
Сравнение = 0 заменить на = -1
Чувствуется, что справку ты не читал.


 
Anatoly Podgoretsky ©   (2006-12-21 20:10) [11]


> PZ   (21.12.06 19:58) [9]

Ты про какой вариант?
В общем они оба правильные, отличаться будут только скорость и потребностью в ресурсах, вариант с IndexOf требует меньше ресурсов, но возможно будет работать медленнее, при небольших объемах это не важно.


 
PZ   (2006-12-21 20:27) [12]

> [11] Anatoly Podgoretsky ©   (21.12.06 20:10)

Я имел в виду использование ListBox -> StringList -> ComboBox


 
Anatoly Podgoretsky ©   (2006-12-21 20:32) [13]

> PZ  (21.12.2006 20:27:12)  [12]

Понял, да немного необычно.


 
Loginov Dmitry ©   (2006-12-21 21:38) [14]

Все-же с дополнительным списком должно быть быстрее, имхо.



Страницы: 1 вся ветка

Текущий архив: 2007.01.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
2-1167035108
ask287
2006-12-25 11:25
2007.01.14
Как мне в запросе связать две базы?


15-1166908159
Loginov Dmitry
2006-12-24 00:09
2007.01.14
Ну что намудрили в XP SP2...


3-1161791931
Firix
2006-10-25 19:58
2007.01.14
view в Paradox


2-1167038007
TCrash
2006-12-25 12:13
2007.01.14
Ошибка :(


9-1141072759
Slava_K
2006-02-27 23:39
2007.01.14
Движение объектов