Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обновить список в 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>);


Наверх

Титульная страница Поиск, карта сайта Написать письмо