Текущий архив: 2008.10.26;
Скачать: CL | DM;
Вниз
Индекс строки ListView Найти похожие ветки
← →
Ivanov Ivan © (2008-09-17 08:26) [0]Добрый день! У меня имеется ListView(4 столбца и около 100 строк), который заполняется при запуске программы(каждый раз по-разному). Подскажите, plz, можно ли проиндексировать его строки? Т.е. i-тый индекс должен содержать в себе информацию о i-той строке. Индексирование должно происходить при заполнении ListView.
← →
brother © (2008-09-17 08:33) [1]> Т.е. i-тый индекс должен содержать в себе информацию о i-
> той строке.
индекс чего? в чем индексы то хранить хош?
← →
Ivanov Ivan © (2008-09-17 08:53) [2]прошу прощения, не правильно задал вопрос. Нужно просто знать номер строки ListView, не зависимо от информации, которая в ней содержится
← →
MBo © (2008-09-17 08:56) [3]пока ничего не понятно.
TListView.Items не спасает?
← →
Smile (2008-09-17 09:02) [4]> Нужно просто знать номер строки ListView
Какой строки? Выделенной (Selected), чекнутой (Checked) или над которой находится мышь?
← →
Ivanov Ivan © (2008-09-17 09:18) [5]Всех строк. Это надо для внесения изменений в i-тую строку.
Т.е. если во время работы с ListView в базе произошли изменения для данных i-той строки, то мне необходимо внести эти изменения в эту строку. Вот для этого и нужно знать индекс строки.
Кроме того не подскажите функцию для изменения данных в Listview.
← →
MBo © (2008-09-17 09:21) [6]еще раз - TListView.Items[i]
← →
Smile (2008-09-17 09:31) [7]А как
> Т.е. если во время работы с ListView в базе произошли изменения
> для данных i-той строки, то мне необходимо внести эти изменения
> в эту строку.
А каким образом ты узнаешь об изменениях в базе?
Думается, что когда ты об этом узнаешь, то тебе необходимо вновь сформировать ListView, а не исправлять какую-то ни было строчку (а если количество строк изменится?)
> который заполняется при запуске программы(каждый раз по-
> разному).
← →
Ivanov Ivan © (2008-09-17 09:35) [8]
> А каким образом ты узнаешь об изменениях в базе?
При открытии формы заполняется ListView данными из БД.Данные получаем в результате запроса, потом эти данные заносим в массив, а уже данными из массива заполняем ListView.
На форме также есть Timer который через определенные промежутки времени делает запрос к базе, заново заполняются массивы. А вот теперь нужно сравнить данные из массивов с данными в ListView.Я для этого и хотел ирспользовать индекс.
← →
Smile (2008-09-17 09:40) [9]А мне представляется, что правильнее по таймеру не сравнивать массив с содержимым ListView, а формировать новый. И кроме того откуда взялась необходимость в каком-то массиве? Формируй ListView из запроса.
← →
Ivanov Ivan © (2008-09-17 09:49) [10]Формировать новый-не катит, т.к. ListView "дергается"-сначала исчезают все данные, потом скролл начинает бешено бегать, потом появляются новые данные. При том если изменения не происходили, то зачем обновлять. Кроме того массивы нужны еще для одной цели.
← →
Dennis I. Komarov © (2008-09-17 09:59) [11]1. Компонент TListView предназначен для отображения данных, а не для хранения. Меняй логику.
2. Выкини таймер, поставь кнопку обновить
← →
Ivanov Ivan © (2008-09-17 10:09) [12]А данные у меня в нем и не хранятся. ListView заполняется данными при открытии формы. Просто нужно пока форма открыта и если происходят изменения в базе касательно данных из листвью, надо эти изменеия вносить. Кстати кнопку пробовал, listView тоже ""дергается""
← →
Dennis I. Komarov © (2008-09-17 10:23) [13]
> Просто нужно пока форма открыта и если происходят изменения
> в базе касательно данных из листвью
это не данные, и с ними не надо ничего делать, просто когда это надо юзеру сделать навый запрос и отобразить результат заного
> Кстати кнопку пробовал, listView тоже ""дергается""
Он не дергается, а перерисовывается при кождом изменении - "спрячь" его на время обновления и все...
Страницы: 1 вся ветка
Текущий архив: 2008.10.26;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.005 c