Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Bitmap.LoadFromFile (Progress)


SMATMP ©   (2005-09-15 12:54:00) 

Уважаемые мастера! Возможно ли проследить процент загрузки графического фала в TImage (скажем в TProgressBar или TGauge)? Не могу приспособить OnProgress... Можно ли решить первое без второго и если да, то примерчик бы еще и для OnProgress бы. Что это за штука такая? В хелпе коротко, без Examples...Заранее спасибо.


SMATMP   (2005-09-30 18:46:00) [1]

Извиняюсь за редкость посещения. Доступ пока есть только примерно 1 раз в неделю. Итак. Я поставил счетчики времени проведения операций. Как и следовало ожилать, наибольшее время происходит не отображение файла в TImage, а его чтение с диска. Проверял путем загрузки файла в Bitmap := TBitmap.Create и дальнейшей загрузки Bitmap в TImage.Bitmap. Разница (счетцик простейший, до 1 сек) примерно в 10 раз (без параллельной работы других приложений). Таким образом хочу изменить постановку вопроса: как отследить загрузку файла с диска в Bitmap? Насколько я понимаю, при этом происходит копирование содержимого файла (с диска) в некий буфер (в оперативной памяти). Возможно ли отследить этот процесс в процентах выполнения? Заранее спасибо.


evvcom   (2005-09-21 14:27:00) [2]


> та же ACD System использует для этих целей собственную процедуру
> (я уж не знаю на чем она написана)?

Судя по присутствию в адресном пространстве ACDSee 5.0 библиотеки mfc42.dll, можно сделать вывод, что написана она на MS VC++, поэтому использует естественно собственную процедуру, так как VC++ абсолютно ничего не знает про VCL. Более того, это специфическая программа, имеющая целую кучу модулей, понимающих разные форматы графических файлов. Поэтому скорее всего там вся работа с графикой написана самими разработчиками, а не третьей фирмой.


SMATMP   (2005-09-20 18:44:00) [3]

Насколько я понял из ответа (Наиль), обработчик TImage.OnProgress есть ни что иное как по Плюшкину "Абсолютно бесполезная вещь'? И насколько я понимаю, загружая BMP, для отслеживания хотя бы части тех действий, которые делает программа, возможно(тоже вопрос) толькозагрузить файл в TBitmap, загрузить его в TJpegImage и уже потом с помощью OnProgress отслеживать загрузку в TImage? Причем тоже непонятно как!.. Изврат какой-то! Напрашивается вопрос: можно ли грузить файл BMP частями и отслеживать в ProgressBar'е загрузку? Или неужели скажем та же ACD System использует для этих целей собственную процедуру (я уж не знаю на чем она написана)?


Наиль   (2005-09-17 17:10:00) [4]

В хелпе (или в исходниках) написано, что onProgress должен задаватся графическим фильтром Bitmap, Metafile, Ico, JPG. Из всех перечисленных, только JPG использует его. Так что, воспользоваться прогрессом для
bmp ты не с можешь.


SMATMP   (2005-09-16 16:26:00) [5]

???


SMATMP   (2005-09-16 16:15:00) [6]

В кокое конкретно место ставить Application.ProcessMessages?
До вызова LoadFromFile, после вызова или в OnProgress?..
Внутрь процедуры я же не впихну!?...


alex_***   (2005-09-15 15:13:00) [7]

Обработчик вызывается? ProcessMessages ставил?


SMATMP   (2005-09-15 14:41:00) [8]

Есть PercentDone же в TImage:
procedureTForm1.Image1Progress(Sender: TObject; Stage: TProgressStage;
 PercentDone: Byte; RedrawNow: Boolean; const R: TRect;
 const Msg: String);
Родной формат для TImage как я понимаю BMP? В хелпе про JPEG то же самое написано. Не пробовал, но непонятно почему BMP проблема? А тем не менее реально при загрузке файла обработчик ничего не делает. Во всяком
случае

ProgressBar1.Position := PercentDone;

не дает никакого эффекта. Файлы грузил разные, и большие и маленькие и огромные.


Думкин   (2005-09-15 13:36:00) [9]

> SMATMP ©   (15.09.05 13:12) [3]

Для jpeg - есть. В onProgress - PercentDone


SMATMP   (2005-09-15 13:12:00) [10]

Что есть то? Где? Можно толком ответить?


Думкин   (2005-09-15 13:04:00) [11]

опа. уже есть....


Думкин   (2005-09-15 13:03:00) [12]

onProgress?


Наверх

Титульная страница Поиск, карта сайта Написать письмо