Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Вниз

Как отобразить (в ПрогрессБаре, напр.) процесс копирования файла?   Найти похожие ветки 

 
Гость   (2005-03-02 17:59) [0]

Как отобразить (в ПрогрессБаре, напр.) процесс копирования большого файла (например, полнометражный фильм)?


 
Reindeer Moss Eater ©   (2005-03-02 18:07) [1]

ProgressBar1.StepIt;


 
begin...end ©   (2005-03-02 19:55) [2]

> Гость   (02.03.05 17:59)

Вначале вычислите размер файла, а потом вычисляйте размер его скопированной части. Определяйте, сколько это будет в процентах, и устанавливайте нужное значение свойству ProgressBar.Position.

Копировать файл можно с помощью API-функции CopyFileEx. Одним из её параметров является указатель на callback-функцию - в ней как раз и можно узнать, сколько байт файла уже скопировалось. Примеры использования этой функции можно найти в Сети.

А ещё можно использовать API-функцию SHFileOperation. Она всё может показывать сама. Примеры - тоже в Сети.


 
Fay ©   (2005-03-02 20:23) [3]

2 begin...end ©   (02.03.05 19:55) [2]
>> пределяйте, сколько это будет в процентах
Зачем?


 
begin...end ©   (2005-03-02 20:25) [4]

> Fay ©   (02.03.05 20:23) [3]
> Зачем?

Чтобы потом отобразить проценты в progressbar"е?


 
Fay ©   (2005-03-02 20:30) [5]

А зачем проценты?
Max := (размер файла в размерах буфера) и всё


 
begin...end ©   (2005-03-02 20:38) [6]

> Fay ©   (02.03.05 20:30) [5]

А если у автора настолько большой файл, что значение размера не влезет в Min, Max и Position (Integer)? :-)


 
Anatoly Podgoretsky ©   (2005-03-02 20:48) [7]

На Win95?
Тогда и CopyFileEx не поможет


 
Anatoly Podgoretsky ©   (2005-03-02 20:53) [8]

Ему прямая дорога в сторону TFileStream и то ему повезло, что у него Д7 а не Д5


 
begin...end ©   (2005-03-02 20:56) [9]

> Anatoly Podgoretsky ©   (02.03.05 20:53) [8]

SHFileOperation тоже подойдёт.


 
Anatoly Podgoretsky ©   (2005-03-02 20:56) [10]

Ну если показывать проценты, то замучается.


 
Anatoly Podgoretsky ©   (2005-03-02 20:58) [11]

begin...end ©   (02.03.05 20:56) [9]
Но разумеется я бы не стал заморачиваться, что высчитыватьЮ что то оборачивать вокруг чего, а применил бы именно SHFileOperation.

И теперь мой любимый лозунг "Для всех операций с файлами используйте SHFileOperation".


 
Гость   (2005-03-04 10:07) [12]

А можна узнать как исспользовать ентот самый SHFileOperation? В частности, для отображения копирования файла в ПрогрессБаре?


 
Amoeba ©   (2005-03-04 11:31) [13]


> Гость   (04.03.05 10:07) [12]
> А можна узнать как исспользовать ентот самый SHFileOperation?
> В частности, для отображения копирования файла в ПрогрессБаре?

Читаем эту статью:
http://www.delphikingdom.com/asp/viewitem.asp?UrlItem=/mastering/fileshellapi.htm



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.03.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.081 c
14-1109230163
DelphiN!
2005-02-24 10:29
2005.03.20
Надежность сервера баз данных FireBird 1.5


14-1109589900
1008
2005-02-28 14:25
2005.03.20
Или я чего-то не понял или что-то не работает.


14-1109578928
AlexG
2005-02-28 11:22
2005.03.20
Обреченность вида - Человек


4-1107858087
xiters
2005-02-08 13:21
2005.03.20
SysTray


14-1109439817
Местный
2005-02-26 20:43
2005.03.20
Возможно ли восстановить файлы, если отформатировал диск???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский