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

Вниз

Сортировка в ListBox с сохранением старого ItemIndex   Найти похожие ветки 

 
lost3000   (2004-12-22 11:33) [0]

Господа, подскажите, пожалуйста, по проблеме...
Из файла закачиваю в ListBox строки. При включении Sorted меняется ItemIndex строк. Возможно ли его сохранить изначальным?


 
Плохиш ©   (2004-12-22 11:44) [1]

ItemIndex - в переводе, "порядковый номер элемента в списке"
Следующий вопрос?


 
lost3000   (2004-12-22 11:54) [2]

Некорректность вопроса понял.
Тогда следующий.
Каким образом можно после сортировки опознать строку, которая изначально была первая, а стала, к примеру, пятая?


 
lost3000   (2004-12-22 11:55) [3]

Некорректность вопроса понял.
Тогда следующий.
Каким образом можно после сортировки опознать строку, которая изначально была первая, а стала, к примеру, пятая?


 
Плохиш ©   (2004-12-22 11:57) [4]

Запомнить содержимое этой строки до сортировки и найти её после


 
Александр Иванов ©   (2004-12-22 12:06) [5]

Поиск, после сортировки.


 
lost3000   (2004-12-22 12:09) [6]

Спасибо.


 
lost3000   (2004-12-22 12:11) [7]

Александру : Поиск, опять же, по содержанию строки? Или есть ещё варианты?


 
Александр Иванов ©   (2004-12-22 12:15) [8]

А зачем еще варианты, ведь даже если имеются одинаковые строки неважно какая из них станет текущей. Конечно за исключением случаев, когда к ним "привязана" какая-то дополнительная информация, но тогда и поиск следует осуществлять по этой информации.

var buf:string;i:integer;
begin
buf:=ListBox1.Items[ListBox1.ItemIndex];
ListBox1.Sorted:=True;
i:=0;
while buf <> ListBox1.Items[i] do inc(i);
ListBox1.ItemIndex:=i;
end;


 
lost3000   (2004-12-22 12:19) [9]

Понял. Спасибо, Александр!


 
antonn ©   (2004-12-22 12:32) [10]

lost3000   (22.12.04 11:33)  

вставляй объекты, а то попадуться 2 одинаковых строки...


 
Александр Иванов ©   (2004-12-22 12:48) [11]

antonn ©   (22.12.04 12:32) [10]

Ну попадутся, и что?


 
antonn ©   (2004-12-22 13:09) [12]


> Александр Иванов ©   (22.12.04 12:48) [11]

ну, собственно, и все... Под условие вопроса ответ не проходит.


 
Alexander Panov ©   (2004-12-22 13:18) [13]

lost3000   (22.12.04 11:33)

Быстрее будет при заполнении TListBox заполнить уникальными значениями ListBox.Items.Objects и после сортировки вести поиск по этому полю.

Перед сортировкой(или раньше):

for i := 0 to ListBox.Count-1
 do ListBox.Items.Objects[i] := Pointer(i);


var
 p: Ponter;
 i: Integer;
begin
 p := ListBox.Items.Objects[ListBox.ItemIndex];
 ... //Сортировка


После сортировки:

 for i := 0 to ListBox.Count-1 do
 begin
   if ListBox.Items.Objects[i]=p then
   begin
     ListBox.ItemIndex := i;
     break;
   end;
 end;



 
lost3000   (2004-12-22 13:25) [14]

Спасибо всем!



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

Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.032 c
14-1103124078
Opilki_inside
2004-12-15 18:21
2005.01.09
Декомпилировать SW Flash


4-1100702417
markers
2004-11-17 17:40
2005.01.09
Активность окна


4-1101205001
clickmaker
2004-11-23 13:16
2005.01.09
Правка итема в листвью закрывает диалог


1-1103826637
Пыч
2004-12-23 21:30
2005.01.09
Project>Resources


14-1103269170
msguns
2004-12-17 10:39
2005.01.09
Днепр занял 1-е место в группе.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский