| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > VirtualListView |
| Автор: AndAnd 30.1.2007, 06:41 |
| Привет всем! У меня проблема с ListView. Взял исходник из примеров Builder (в папке Examples\VirtualListView\...). Мне необходимо внести свои данные - это например, список папок и файлов на ФТП-сервере, которые система не может видеть как она это видит в примере. Как можно отобразить этот список с посмощью данного примера. Спасибо. |
| Автор: _hunter 30.1.2007, 11:44 |
ты считаеш что эти примеры должны быть у всех здесь присутствующих? ;) |
| Автор: AndAnd 1.2.2007, 09:09 | ||
Не получается отобразить все, вот ниже часть кода где я пытаюсь это сделать:
|
| Автор: _hunter 1.2.2007, 11:44 |
в чем смысл этой строки? где сам обработчик (его реализация)? зачем постить лишний код (while (InternetFindNextFile...)) -- чтобы запутать?.. |
| Автор: Vyacheslav 1.2.2007, 13:34 | ||
| А где код то обработчика, которые запускается на OnData ? Вы в примере посмотрите
В нем весь смысл. Когда ListView нужно данные по выводимой строке, он(ListView, а не ВЫ) запускает обработчик события OnData. В этом обработчикеВы и должны заполнить параметр Item используя значения из FIDList и учитывая, то, что от Вас требуют строку под номером Item->Index |
| Автор: AndAnd 1.2.2007, 19:36 | ||
| Извините за тупость, не могу понять. Я правильно заполняю FIDList? (см. выше код). А как ListView поймет что данные в FIDList заполнены и я хочу их вывести? Вот обработчик OnData
|
| Автор: Vyacheslav 2.2.2007, 13:33 | ||||||||||||
Когда поймет. Ну Вы же ему сказали
И тогда он начнет процесс вывода и перед выводом каждой строки вызовет событие OnData для того, чтобы Вы заполнили данными Item. Для события, Вы определили обработчик ListView1Data, который и должен заполнить Item из FIDList1. А что его брать? Его брать не надо. Он и без Вас уже задан. ListView последовательно вызовет обработчик ListView1Data FIDList1->Count раз и при каждом вызове значение Item->Index будет увеличиваться на 1. Item->Index Вам дается как раз для того, что бы сообщить, содержимым какого элемента Вашего массива Вы должны заполнить Item. Короче говоря, допустим у меня есть весктор строк.
1. должен установить OwnerData в true 2. задать обработчик
3 Сообщить ListView, что информация готова к выводу
Последнее я должен сделать только тогда, когда вектор будет заполнен. Для того, что бы запретить показывать содержимое(например мне нужно обновить вектор
|
| Автор: AndAnd 2.2.2007, 16:00 |
| Теперь вроде понятно |
| Автор: AndAnd 3.2.2007, 17:08 |
| А интересно как лучше производить сортировку в ListView, подскажите лучший путь. У меня есть столбцы, довольно стандартные: Имя, Размер, Тип, ДатаПоследенего изменения. Есть ли функция ВИНАПИ? Метод пузырька не рассматривается. |
| Автор: AndAnd 9.2.2007, 11:13 |
| как VirtualListview работает с файловой системой. Подскажите, пожалуйста, как можно создать функцию, на вход которой подается имя диска, а в ListView отобразиться его содержимое? Используя функции из VirtualListView. |
| Автор: AndAnd 9.2.2007, 21:21 | ||
Заглянул я в пример и нашел там функцию SetPath(const AnsiString path), которая как раз и позволяет перейти непосредственно по требуемому пути. Мораль басни: Чаще надо заглядывать в исходный пример, а не только своим пользоваться!!! |