![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Делаю фрейм для просморта файлов на диске и использую данную функцию, для получения картинок, но тормоза от нее...(если ее убрать, то ни каких тормозов нет). Есть ли более быстрая функция? Пробовал ExtractIcon, но ей не вышло ни чего. Может я не так делалю чего:
Это сообщение отредактировал(а) <Spawn> - 27.1.2004, 15:47 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
p0s0l |
|
|||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Как это не удивительно, но у меня всё ок, выдирает:
Может более полный код привидешь ? И ты должен учесть, что принцип работы этих функций (ExtractIcon и ExtractAssociatedIcon) - разный, т.к. первая - берет иконку из файла, а вторая - ассоциированную иконку или иконку из файла, т.е. ExtractIcon для не .exe и .dll файлов будет возвращать нули... Возможно для ускорения тебе лучше кэшировать иконки (т.е. два раза ExtractAssociatedIcon для одного и того же расширения (кроме exe и dll) не вызывать)... -------------------- С уважением, г-н Посол. |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
<Spawn>, а куда кладутся иконки? эксплорер, если ты обращал внимание, не грузит их сразу все, а только для видимой части. если используется компоненты типа ListView, то имеет смысл работать через OnGetImageIndex, т.е. грузить иконку непосредственно перед тем, как её надо отрисовать на экране. про BeginUpdate .. EndUpdate - не говорю
![]() в общем, покажи код ![]() -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
пока что все вот так тормознуто:
Попробую ваши советы внедрить в код))) Это сообщение отредактировал(а) <Spawn> - 27.1.2004, 22:42 -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
x77 Я тоже не гружу все сразу - только первые 2 уровня, т.е. C:\... и для каждой папки еще итемы нахожу. Когда происходит выбор в TTreeView папки, то для всех ее подпапок проихводится поиск на 1 уровень. Но с этим все ок. Проблема в том что в TListView выводятся файлы, содержащиеся в выделеной папке - вот они и вызвают тормоз. Попробую кешировать и еще помучаю ExtractIcon.
-------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
для ListView обязательно делай
а насчёт выделенной папки - OnGetImageIndex. т.е. капшены прописываешь сразу, а иконки подсасываешь по мере отображения файлов. сколько их одновременно отображается? десятка два от силы. а всего в папке их может быть и несколько тысяч, называется, почувствуйте разницу. ![]() -------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
x77 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1255 Регистрация: 25.3.2002 Репутация: 19 Всего: 22 |
кстати, почему ты не освобождаешь NewIcon?
-------------------- Я никогда не сопротивлялся искушению, поскольку узнал: что мне не нравится, то меня не искушает. © Джордж Бернард Шоу (Ирландия) |
|||
|
||||
<Spawn> |
|
|||
![]() Око кары:) ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2776 Регистрация: 29.1.2003 Где: Екатеринбург Репутация: 44 Всего: 64 |
Хех, а я почему то подумал, что TImageList сохраяняет переданый ему указатель) Подумал, но не проверил. Уже исправил. -------------------- "Для некоторых людей программирование является такой же внутренней потребностью, подобно тому, как коровы дают молоко, или писатели стремятся писать" - Николай Безруков. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |