![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Обновить список в ListBox [D7, 95/98, XP]
SKIPtr © (2007-09-16 09:58:00)У меня текст постоянно обнавляется При обновлении текст в окне начинается с начала а надо чтоб устанавился на ту позицию которая была до обнавления
SKIPtr (2007-09-17 17:38:00) [1]Программа выводит список окон на раб столе с информацией о них В любой момент число окон может менятся как и информация о них Это все должно отобразится в списке Как я показал таймером список очищается и создается вновь Является такой способ лучшем или можно не очищать а просто менять содержимое строк
{RASkov} (2007-09-16 22:22:00) [2]> то как я написал это самый лучший способдля этого или есть другой
Не сомневайся в этом :)
Но как ты там, что и зачем написал - никому не известно.... так, что... считай, что это "самый лучший")
YurikGL (2007-09-16 22:21:00) [3]Опиши более подробно что за задача... Как происходит обновление... Данные только добавляются? Какая предметная область?
Смутное подозрение, что решать задачу надо совершенно по другому.
SKIPtr (2007-09-16 22:16:00) [4]Спасибо вот это тот результат что надо Подскажите то как я написал это самый лучший способ для этого или есть другой
{RASkov} (2007-09-16 17:53:00) [5]> [7] SKIPtr (16.09.07 16:49)
Вместо ItemIndex используй TopIndex...
SKIPtr (2007-09-16 16:49:00) [6]ItemIndex показывает выбраную строку а я не чего не выбирал я только просматриваю список а он после перечитывания уходит в начало
{RASkov} (2007-09-16 16:05:00) [7]> [4] SKIPtr (16.09.07 15:40)
Ну наверное [5] + добавлю только Items (BeginUpdate и EndUpdate)
PS: А если перед очисткой индекс был больше, чем после вставки, общего кол-во строк?
Kolan (2007-09-16 15:50:00) [8]> [4] SKIPtr (16.09.07 15:40)
> Procedure Timer;
> begin
>
> ListBox.Clear;
> while do ListBox.Items.Add( );
>
> end;
>
> Конкретно список открытых окон При просмотре всего списка
> при переписывании список переносится в начало что очень
> сильно мешает Я думаю не самое хорошее увеличить Interval
Если я правильно понял, то до стирания нада запомнить ItemIndex, а после стирания и вставки вернуть ему прежнее значение:
MyItemIndex := ListBox.ItemIndex;
ListBox.Clear;
while do ListBox.Items.Add( );
ListBox.ItemIndex := MyItemIndex;
SKIPtr (2007-09-16 15:40:00) [9]Procedure Timer;
begin
...
ListBox.Clear;
while .... do ListBox.Items.Add(...);
...
end;
Конкретно список открытых окон При просмотре всего списка при переписывании список переносится в начало что очень сильно мешает Я думаю не самое хорошее увеличить Interval
{RASkov} (2007-09-16 12:44:00) [10]> [2] SKIPtr (16.09.07 12:38)
Извини... но я опять нифика не понял... :( но уже вроде ясно, что не [1]
Может код покажешь с комментариями....
SKIPtr (2007-09-16 12:38:00) [11]Когда просматриваю большой список перемещая линейку прокрутки При обновлении список начинается с начала и приходится перемещать прокрутку на ту позицию а надо чтоб осталось на той позиции где было до обновления
{RASkov} (2007-09-16 11:11:00) [12]> [0] SKIPtr (16.09.07 09:58)
Сам-то понял вопрос свой? Давай на языке Делфи поговорим, ну его - этот русский...)
1 ListBox.ItemIndex:=ListBox.Items.Add(<stroka>);
2 ListBox.Items.Insert(0, <stroka>);