Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Выделения в ListView


Автор: ZBugz 13.3.2006, 13:20
Привет всем.

Имею ListView в режиме vsReport и 5 колонок. Добавляю в него строчку.

У меня три вопроса:

1. Как выделить первую строку при загрузке программы. smile
2. Если список пустой, то ничего не выделять smile smile
3. Как после добовления 2 и т.д. строки выделение вставало на добавленный элемент smile

Помогите, а то я что то совсем запутался.

Кстати, может кто знает компонент получше и поудобнее smile

Автор: Yanis 13.3.2006, 13:30
Код

  if ListView1.Items.Count > 0 then
    ListView1.ItemIndex := 0;

Домашнее задание: решение п. 3 Справишся?

Автор: ZBugz 13.3.2006, 13:42
Не работает, точнее так:

Это
Код

if ListView1.Items.Count > 0 then
    ListView1.ItemIndex := 0;

если я гружу список при загрузке программы из файла, то пашет. А если я добавляю в пустой список, то нет.
А с 3-м пунктом я не справлюсь smile

Автор: Yanis 13.3.2006, 14:00
Всё зависит от того где ты этот код разместишь и перед каким комдом smile Что конкретно не получается покажи.
3. Свойство ItemIndex позволяет нам прочитать или записать текущий элемент. Свойство Items.Count позволяет прочитать кол-во Item'ов. Наверное логично будет, записать так:
Код

ListView1.ItemIndex := ListView1.Items.Count-1;
в этом случае будет выделяться элемент номер Items.Count-1. А не он ли является последним в списке?

P. S. Думать отказываемся?

Автор: tigger 13.3.2006, 14:14
И как ты строки добавляешь если через кнопки то не забудь фокус передать ListView.

smile


Автор: ZBugz 13.3.2006, 14:45
Блин, все. запутали.

Но добовляется еще два вопроса:

1. Если список пустой и я начинаю добовлять строки, мне надо чтоб выделялась та, которую я добавил. Короче как в Reget.
2. Как после добовления 2 и т.д. строки выделение вставало на добавленный элемент

Код

  if ListView1.Items.Count > 0 then
    ListView1.ItemIndex := 0;


Работает когда я гружу список. Толькот надо дописать
Код

ActiveControl:= ListView1;

Так что вопрос № 1 решен. Вопрос №2 отпадает.

smile

Автор: Yanis 13.3.2006, 15:00
Это ты всех запутал! Может быть тебе нужно это?
Код

  if ListView1.Items.Count > 0 then
    ListView1.ItemIndex := ListView1.Items.Count-1;

P. S. Советую почитать http://www.ln.ua/~openxs/articles/smart-questions-ru.html

Автор: ZBugz 13.3.2006, 16:21
Ето вообще не рабртает как надо smile

Автор: Yanis 13.3.2006, 16:26
Ошибка, вероятно в 17 строке.

Автор: ZBugz 13.3.2006, 16:47
Хватит прикалываться smile
Лучшеб помог smile

Автор: Yanis 13.3.2006, 17:08
Цитата(ZBugz @ 13.3.2006, 16:47 Найти цитируемый пост)
Хватит прикалываться 
Лучшеб помог 

Приведи код, который не работает или работает неправильно и тебе помогут. Непонятно, что у тебя не получается.

Автор: ZBugz 13.3.2006, 17:17
Код не могу привести, он очень большой.

Хочу как в Reget или Download Master - чтоп при добавлении строки она выделялась. Именно так.
Чего тут непонятного smile

Автор: Yanis 13.3.2006, 17:26
Не знаю какой код использует Download Master или Reget, но алгоритм скорее всего такой: после добавления новой строки, выделить последнюю сроку. Ещё раз напишу как это делается:
Код

  { ... }
  { код добавления Item }
  { ... }
  { если кол-во Item больше 0, то выделяем последний }
  if ListView1.Items.Count > 0 then
    ListView1.ItemIndex := ListView1.Items.Count-1;
  { ... }
Не иначе.

Цитата(ZBugz @ 13.3.2006, 17:17 Найти цитируемый пост)
Чего тут непонятного

Всё понятно - ты ленишся.

Автор: tigger 13.3.2006, 17:30
ZBugz, Непонятно то, что уже описано то что может тебе помочь, а у тебя все равно не работает.

Зипуй проект и выкладывай!!!

Автор: ZBugz 13.3.2006, 17:31
Завтра проверю и отпишусь. А про Reget я имел ввиду, мне нужен такойже эффект

Автор: tigger 13.3.2006, 17:42
Yanis, я сейчас загрузил Reget и посмотрел нет там никакого выделения на последнюю добавленную строку, там есть то что происходит пролистывание ListView при добавлении строки, т.е всегда видно последнюю добавленную строку может ZBugzу, такой эффект нужен?!?

Автор: Yanis 13.3.2006, 18:01
Цитата(tigger @ 13.3.2006, 17:42 Найти цитируемый пост)
может ZBugzу, такой эффект нужен?!?

Это может сказать только он. Пока внятного объяснения я не видел. На все его вопросы ответы были даны.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)