|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
20.10.2013, 00:09 | #1 |
Пользователь
Регистрация: 21.11.2010
Сообщений: 20
|
Самый быстрый OpenFile
Доброго всем времени суток.
Я очень долгое время пользовался компонентом TOpenDialog и ,если честно, жутко замучился ждать его отображение через Execute. Его загрузка могла длиться более 5 секунд, даже при повторном открытии. Экспериментировал с функцией Options, а в частности с ofOldStyleDialog, но изменений никаких не почувствовал. На форумах узнал о функции SelectDirectory. Причем, как выяснилось у нее имеется 2 версии (старая и новая) Старая версия TSelectDirOpt = (sdAllowCreate, sdPerformCreate, sdPrompt); Новая TSelectDirExtOpt = (sdNewFolder, sdShowEdit, sdShowShares, sdNewUI, sdShowFiles, sdValidateDir); Старая версия работает в 4 раза быстрее новой. У новой версии, после первой загрузки, скорость вырастает и при повторном выборе файлов становится такой же как и у Старой. На самом деле ни раз уже обсуждалась эта тема, но решения в интернете я так и не нашел ... Как же все таки ускорить процесс выбора данных? Ведь в Photoshop диалог загрузки данных работает очень быстро, и выглядит очень порядочно... Неужели самому нужно писать этот компонент через DirectoryListBox или похожие компоненты? |
20.10.2013, 00:23 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
скорее всего дело в том что под отладкой это происходит еще медленнее.
первая загрузка диалога грузит много ресурсов в приложение. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
20.10.2013, 00:32 | #3 |
Пользователь
Регистрация: 21.11.2010
Сообщений: 20
|
Но и после запуска ехе, такие же тормоза((
А при использовании SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],1000) Загрузка намного быстрее. Но вопрос отображения, вид конечно страшноватый [IMG] http://rghost.ru/49576928 [/IMG] |
20.10.2013, 01:03 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
Зависит от ОС, зависит от скорости чтения диска и кол-ва файлов на нем, а так же типа ФС и уровня дефрагментации ЖД.
Самое главное: включена ли служба индексации файлов и служба кеширования медиа-файлов. И разрешено ли им индексировать и кешировать на всех дисках ЖД. Я почему-то ни с одним диалогом не испытываю проблем. Пол секунды и готово. |
20.10.2013, 01:44 | #5 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
ТС, ОС какая?
недавно писал приложение, под отладкой может вообще минуту открываться(отладочные символы иногда с инета подгружает), без этого 5 сек, что норм. так как лишь при загрузке грузит кучу ресурсов в приложение(увидел под отладкой список этого). лишь потом идет листинг файлов. это не ваша проблема в общем то, но если хотите пишите свое. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
20.10.2013, 10:13 | #6 | |
Пользователь
Регистрация: 21.11.2010
Сообщений: 20
|
Цитата:
Это конечно очень объективные характеристики, от которых зависит загрузка процессора, памяти и , как следствие, загрузка диалоговых окон Но тогда бы везде были одинаковые тормоза, но ,еще раз повторюсь, у PhotoShop открытие файлов летает, у Total Video Converter и MS Office все тоже очень быстро. А тут какие то тормоза (PS загрузка из ехе немного быстрее, но все равно не так как бы хотелось) Извиняюсь за поднятую тему и назойливость, возможно так и должно быть, но просто всегда хочется чтобы по нажатию сразу появлялась ответная реакция... ОС Windows 7. Действительно, в ехе открытие файла происходит быстрее, но все равно не так как в сторонних приложениях. Сильно хитрого я ничего не делаю просто Код:
Последний раз редактировалось Stilet; 21.10.2013 в 12:04. |
|
21.10.2013, 01:45 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
крайний вариант попробовать самостоятельно вызвать API-функцию GetOpenFileName.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
21.10.2013, 11:14 | #8 |
МегаМодератор
СуперМодератор
Регистрация: 09.11.2010
Сообщений: 7,291
|
Я не мог удержаться и не нарисовать.
Извините за оффтоп. UPD Человек_Борща, чтобы не плодить оффтоп, отвечу тут же: перерыв между половинками лекции, а эта ассоциация возникла, как только увидел название темы вчера
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
Последний раз редактировалось BDA; 21.10.2013 в 11:25. |
21.10.2013, 11:21 | #9 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,426
|
BDA, класс! А вам совсем нечего делать в понедельник?
grebljmax, напишите свой диалог открытия файлов. Стандартные - не идеальны в этом плане. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Самый быстрый режим работы процессора | Tronix | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 32 | 29.07.2011 21:01 |
Самый быстрый браузер | Marsel737 | Софт | 31 | 30.08.2010 01:09 |
Самый быстрый способ проверить прокси? | TwiX | Работа с сетью в Delphi | 6 | 15.02.2010 22:41 |
Самый быстрый вид сортировки массива | Warnes | Свободное общение | 42 | 06.12.2009 16:02 |
Предложите самый быстрый алгоритм! | Gambler | Общие вопросы Delphi | 6 | 26.12.2006 22:44 |