Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.01.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.014 c
15-1166725252
alexsis
2006-12-21 21:20
2007.01.14
Чё за фигня с этими часами??


15-1166662585
Oreolek
2006-12-21 03:56
2007.01.14
Ассемблер


3-1161793929
rar
2006-10-25 20:32
2007.01.14
отключить пользователя от сервера


9-1141038940
Сувалки
2006-02-27 14:15
2007.01.14
Как реализовать...?


15-1167038945
WondeRu
2006-12-25 12:29
2007.01.14
В среду сдал на сертификат Microsoft





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский