![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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?