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

Вниз

Сортировка в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.03 c
1-1103723310
Argentum
2004-12-22 16:48
2005.01.09
многоязычность


6-1098456202
Лев Ландау
2004-10-22 18:43
2005.01.09
Как взять ичходник страницы с HTTPS


14-1103299004
Dert
2004-12-17 18:56
2005.01.09
Движок для чата.


1-1103564105
Roo
2004-12-20 20:35
2005.01.09
Косяк с высотой Edit-ов


14-1103639584
Cosinus
2004-12-21 17:33
2005.01.09
Где TheBat сохраняет переписку ?