Главная страница
    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.47 MB
Время: 0.039 c
1-1103812351
stelius
2004-12-23 17:32
2005.01.09
Факториал


1-1103789211
syte_ser78
2004-12-23 11:06
2005.01.09
как обьявить переменную?


3-1102433875
NikeOLD
2004-12-07 18:37
2005.01.09
Работа с БД посредством DLL


14-1103645310
juice
2004-12-21 19:08
2005.01.09
справочник по свойствам и методам


14-1103616384
Vasya.ru
2004-12-21 11:06
2005.01.09
regedit не запускается





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