Форум: "Начинающим";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];
ВнизОбновление текста в ListView Найти похожие ветки
← →
SKIPtr (2007-09-22 18:40) [0]У меня была написана программа где определённый список переодически обновлялся Список заносился в ListBox Чтоб список не убегал в начало при обновлении я использовал TopIndex Решил облехчить просмотр заменив ListBox на ListView но при этом не могу найти аналога свойству TopIndex
← →
{RASkov} © (2007-09-22 18:53) [1]> Решил облехчить просмотр
а получилось как всегда :)
Может теперь TopItem тебе поможет? )
← →
{RASkov} © (2007-09-22 19:47) [2]Попробуй еще так:
...
NScPos:=GetScrollPos(ListView.Handle, SB_VERT);
...
SetScrollPos(ListView.Handle, SB_VERT, NScPos, True);
"капризный" он какой-то ЛистВью.... Так что подумай на счет облехчить :)
← →
Юрий Зотов © (2007-09-22 20:13) [3]ListView.Items[i].MakeVisible(False)
← →
Kolan © (2007-09-22 21:11) [4]Еще есть TreeView, тоже можно списочег вывести на экран…
← →
SKIPtr (2007-09-22 21:11) [5]С TopItem не получается после команды ListView.TopItem := k; пишет Cannot assign to a read-only property
Мне нужно надписи сделать столбиком Попробую это сделать через StringGrid если не получиться тогда API
← →
SKIPtr (2007-09-22 21:48) [6]
> Юрий Зотов © (22.09.07 20:13) [3]
Подскажите как получить i до начало обновления списка
← →
{RASkov} © (2007-09-23 00:13) [7]> [6] SKIPtr (22.09.07 21:48)
> Подскажите как получить i
TopItem.Index ?
← →
SKIPtr (2007-09-23 09:11) [8]Попробовал TopItem.Index запоминает то что бвло сверху MakeVisible ставит эту строку вниз Текст не остаётся на прежнем месте он перемещается вверх а нужно чтоб оставался на месте
Ещё я попробовал а потом полазил через поисковик и не смог понять чем отличаеться MakeVisible(False) от MakeVisible(True)
← →
Lacmus © (2007-09-23 10:25) [9]
procedure ListView_SetTopIndex(aWindow: HWND; aIndex: Integer);
var
Jump: Integer;
begin
Jump := Min(aIndex + ListView_GetCountPerPage(aWindow), ListView_GetItemCount(aWindow) - 1);
ListView_EnsureVisible(aWindow, Jump, False);
ListView_EnsureVisible(aWindow, aIndex, False);
end;
← →
SKIPtr (2007-09-23 22:34) [10]
> Lacmus © (23.09.07 10:25) [9]
Попробовал переодически возникает ошибка Undeclared identifier Нашел для Min нужно включить Match Какие ещё модули надо включить
← →
Lacmus © (2007-09-23 22:39) [11]Возможно CommCtrl, Math
← →
SKIPtr (2007-09-24 17:08) [12]да в одной книге Math в другой Match
← →
SKIPtr (2007-09-25 17:15) [13]То что я хотел получилось на StringGrid но возникла поблема как применить BeginUpdate а то на экране такие действия развиваються
← →
Dmitro © (2007-09-25 23:45) [14]Дааа....
Используй TListBox. Перд его обновлением запоминаем ItemIndex в переменную "K" и TopIndex в переменную "Kt".
Сразу после обновления такой код:
if ListBox1.Items.count > K then
ListBox1.ItemIndex:=K
else
try
ListBox1.ItemIndex:= Kt
except
end;
Или такой:
Если известна строка, на которой стоял курсор (выделенная строка), то перед обновлением списка запоминаем:
S:= ListBox1.Items[ListBox1.ItemIndex];
А после обновления:
ListBox1.ItemIndex:= ListBox1.IndexOf(S);
Тоже работает.
Примечание: КОД НЕ УНИВЕРСАЛЬНЫЙ - РАБОТАТЬ БУДЕТ, НО НАДО ДОРАБОТАТЬ...:---)))
← →
SKIPtr (2007-09-26 07:37) [15]ListBox уже сделал в самом начале код примерно так
k := ListBox1.TopIndex;
....
ListBox1.TopIndex := k
работает нормально но читать не удобно и я решил переделать в виде таблицы
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2007.10.21;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c