Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Компоненты Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2013, 00:09   #1
grebljmax
Пользователь
 
Регистрация: 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 или похожие компоненты?
grebljmax вне форума Ответить с цитированием
Старый 20.10.2013, 00:23   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

скорее всего дело в том что под отладкой это происходит еще медленнее.
первая загрузка диалога грузит много ресурсов в приложение.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 20.10.2013, 00:32   #3
grebljmax
Пользователь
 
Регистрация: 21.11.2010
Сообщений: 20
По умолчанию

Но и после запуска ехе, такие же тормоза((

А при использовании

SelectDirectory(Dir, [sdAllowCreate, sdPerformCreate, sdPrompt],1000)

Загрузка намного быстрее. Но вопрос отображения, вид конечно страшноватый

[IMG] http://rghost.ru/49576928 [/IMG]
grebljmax вне форума Ответить с цитированием
Старый 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
grebljmax
Пользователь
 
Регистрация: 21.11.2010
Сообщений: 20
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Зависит от ОС, зависит от скорости чтения диска и кол-ва файлов на нем, а так же типа ФС и уровня дефрагментации ЖД.
Самое главное: включена ли служба индексации файлов и служба кеширования медиа-файлов. И разрешено ли им индексировать и кешировать на всех дисках ЖД.

Я почему-то ни с одним диалогом не испытываю проблем. Пол секунды и готово.
ОС Windows 7, кол-во файлов 32 000, папок 1 122, ФС NTFS, дефрагментация 99 %. Служба индексации и служба кеширования включены. Службам разрешено кешировать везде.

Это конечно очень объективные характеристики, от которых зависит загрузка процессора, памяти и , как следствие, загрузка диалоговых окон

Но тогда бы везде были одинаковые тормоза, но ,еще раз повторюсь, у PhotoShop открытие файлов летает, у Total Video Converter и MS Office все тоже очень быстро. А тут какие то тормоза (PS загрузка из ехе немного быстрее, но все равно не так как бы хотелось)

Извиняюсь за поднятую тему и назойливость, возможно так и должно быть, но просто всегда хочется чтобы по нажатию сразу появлялась ответная реакция...

ОС Windows 7. Действительно, в ехе открытие файла происходит быстрее, но все равно не так как в сторонних приложениях. Сильно хитрого я ничего не делаю просто

Код:
if OpenDialog1.Execute
then (процедура открытия и обработки файла)

Последний раз редактировалось Stilet; 21.10.2013 в 12:04.
grebljmax вне форума Ответить с цитированием
Старый 21.10.2013, 01:45   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

крайний вариант попробовать самостоятельно вызвать API-функцию GetOpenFileName.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 21.10.2013, 11:14   #8
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Я не мог удержаться и не нарисовать.
Извините за оффтоп.

UPD
Человек_Борща, чтобы не плодить оффтоп, отвечу тут же: перерыв между половинками лекции, а эта ассоциация возникла, как только увидел название темы вчера
Изображения
Тип файла: jpg openfile.jpg (104.5 Кб, 113 просмотров)
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 21.10.2013 в 11:25.
BDA на форуме Ответить с цитированием
Старый 21.10.2013, 11:21   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

BDA, класс! А вам совсем нечего делать в понедельник?

grebljmax, напишите свой диалог открытия файлов. Стандартные - не идеальны в этом плане.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Самый быстрый режим работы процессора 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