Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2008.10.26;
Скачать: [xml.tar.bz2];

Вниз

Индекс строки 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.005 c
15-1220435620
diiimmmmaaaaa
2008-09-03 13:53
2008.10.26
ICQ клиент (выбрать)


2-1221563831
sD
2008-09-16 15:17
2008.10.26
Как произвести логическое уножение чисел


2-1221557783
9899100
2008-09-16 13:36
2008.10.26
Drag and Drop в DBGrid


15-1220206202
silver
2008-08-31 22:10
2008.10.26
продается программист


15-1220130234
xayam
2008-08-31 01:03
2008.10.26
Где достать словарь компьютерных сокращений/терминов?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский