Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как БЫСТРО отобразить список файлов с иконками? Добавлено: 02.04.04 16:23  

Автор вопроса:  KorDen | ICQ: 329465302 

Всем привет!

Задумался тут, как ЭТО делается дествительно БЫСТРО?

До сих пор пользуюсь примерчиком, скачанным отсюда:

----------------------------------------------------------

| http://www.buygold.net/v06n09/ListviewShowFileIcon.zip |

----------------------------------------------------------

Хороший примерчик, вот только...

...работает он больно медленно...

Для сравнения скорости работы я использовал Таймер. Так вот, мою папку System32

(2114 элементов) он открывает за 6.6 секунд!!! Я его немного подоптимизировал и достиг 5.5 секундного открытия... А вот МастДай это делает за 0.3 сек. А Total, который Commander, справился с заданием за менее чем 0.1 секунду! Понимаю, СИшный код намного шустрее, но не настолько же!!! То есть, наверняка есть намного более рациональный способ. Да вот не встречал я других - все слизаны с этого.

Вообще, думаю, для максимальной скорости нужно написать библиотечку на Асме, а потом прикрутить её к VB.

Ну, есть такие, кто горазд обогнать Total'a???

Ответить

  Ответы Всего ответов: 4  

Номер ответа: 1
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #1
Добавлено: 02.04.04 22:34

Разве в Total ListView? Класс - TMyListBox - непохоже...

Ответить

Номер ответа: 2
Автор ответа:
 KorDen



ICQ: 329465302 

Вопросов: 4
Ответов: 11
 Профиль | | #2 Добавлено: 03.04.04 05:37

Согласен, в Total класс TMyListBox, да, но по сути - это и есть переименованный TListView. Для примера - в Total'e TComboBox переименован в TMyComboBox, TPanel - в TMyPanel и т.д. Замудрили они... Хотя, возможно я и ошибаюсь.

Но даже и так - факт остается фактом - Тотал (со своим Делфи) очень шустр, а Бэйсик тормозит.

Либо же есть намного более рациональный способ, чем в приведенном выше примере. Его то я и жду от Вас... Поделитесь, кто знает, наконец.

Короче, если влом качать пример, то в кратце...

Там вовсю используется функция SHGetFileInfo из shell32 и ImageList_Draw из comctl32. То есть, перво функцие выдерается иконка, ассоциированная с файлом, а потом рисуется второй в PictureBox, из которого потом добавляется иконка в ImageList и отображается в ListView. Но! Как замуженно это сделано! И не оптимизировано, и с одной (пусть и небольшой) ошибкой (перепутали > и >=, в результате чего в 9х этот код глючит). Так что ждем-с альтернативы.

Ответить

Номер ответа: 3
Автор ответа:
 @CyRax PTR



ICQ: 204447456 

Вопросов: 28
Ответов: 664
 Web-сайт: basicproduction.nm.ru/
 Профиль | | #3
Добавлено: 03.04.04 07:21

Разница в 20 раз?

По моему он довольно шустро работает.

Могло быть и больше.

Ответить

Номер ответа: 4
Автор ответа:
 KorDen



ICQ: 329465302 

Вопросов: 4
Ответов: 11
 Профиль | | #4 Добавлено: 03.04.04 08:24

Вот именно, что шустро! А как добиться такой же быстроты в СВОЕМ приложении? Ведь, согласитесь, кто будет пользоваться Ваше программой, когда программа-конкурент работает в 20 раз быстрее?!

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам