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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2012, 07:55   #1
pro5
 
Регистрация: 19.12.2012
Сообщений: 8
По умолчанию Как отключить отложенную загрузку в TFileStream?

Во время старта программы показывается окно загрузки. Под конец оно загружает файл размером, скажем 200мб. Вот упрощенный код:
Код:
with TFileStream.Create(s, fmOpenRead or fmShareDenyWrite) do
  try
    Seek(0,soFromBeginning);
    ReadBuffer(Data[0],200000000);
  finally
    free;
  end;
Проблема в том, что после выполнения этого кода и закрытия окна загрузки главная форма появляется только через 5 секунд. Юзер может подумать, что прога не смогла загрузиться. Как сделать, чтоб реальное считывание данных происходило во время показа загрузочного окна, а не после его закрытия?

Повторное открытие программы происходит мгновенно, что говорит о том, что файл в винде кешировался в память.

Delphi-7.

Последний раз редактировалось pro5; 22.12.2012 в 07:59.
pro5 вне форума Ответить с цитированием
Старый 22.12.2012, 08:13   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

показали окно, грузите, убрали окно приветствия.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 22.12.2012, 08:37   #3
pro5
 
Регистрация: 19.12.2012
Сообщений: 8
По умолчанию

Пепел Феникса, так и сделано.
Но я уже разобрался. Это кеширует не винда и не TFileStream, а delphi.
Загрузилась винда. Запускаю прогу по экзешнику - работает все как надо. Пауз между окнами нет. Запускаю после этого ее из дэльфи. Появляется долгая пауза между окнами(но только 1 раз за виндовую сессию). Наверное, delphi для своих нужд что то кеширует. И похоже, не сам файл, т.к. если его сделать гораздо меньшего размера - пауза такая же долгая.

Последний раз редактировалось pro5; 22.12.2012 в 08:45.
pro5 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать загрузку браузера. Dryn9 Помощь студентам 1 14.12.2012 06:30
Отключить загрузку картинок в Firefox Alex Cones Софт 4 25.08.2010 10:56
Как автоматизировать загрузку текста на сайт allakh HTML и CSS 4 24.06.2009 17:46
Как ускорить загрузку битмапа в tImage Altera Мультимедиа в Delphi 10 24.03.2008 17:39
Отключить загрузку всех картинок в WebBrowser SHEI'TI Общие вопросы Delphi 6 31.01.2008 13:23