FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9176
Вход
Библиотека для копирования файлов.

Предназначена для копировния файлов с отображением процесса копирования. Иметет на выбор 2 прогресс бара (градусника). При копировании выводится так же текст заголовка окна и текст над градусником (примерно как в Windows Commander). Тестировалась на VFP, есть подозрение что будет работать и на других языках.


 
Прислал: Гончаров Н.А.   Категория: Интерфейс


Библиотека для копирования файлов.

Продолжаем цикл "Подружим Фокс и Дельфи".

Данная DLL предназначена для копирования файлов. Ничем не отличается от
COPY FILE, кроме наличия прогресс баров и комментариев.

Первый прогресс бар без текста внутри. Похож на тот, который возникает при поиске
нового оборудования в Windows.
Второй с процентами и плавной бегущей полосой.


ГЛЮКИ:
При больших размерах файла при повторном копировании бывает так, что
функция отработала, а файл на свое место еще не лег. Это связано с файловым
кэшем самой WINDOWS и как победить это я не нашел.

При копировании на дискету тоже самое. Причина та же.

********************************************************************************
* Параметры : *
* 1. Строка с указанием полного имени исходного файла *
* 2. Строка с указанием полного имени файла назначения *
* 3. Заголовок окна *
* 4. Строка над прогресс баром. *
* 5. Тип прогресс бара *
* (их всего 2 если указано число не 1 и не 2 то будет использован 1) *
* *
* Возврат: *
* 1 - если ошибка *
* 0 - если ошибок нет *
* *
********************************************************************************

********************************************************************************
* Собственно вызов. *
********************************************************************************
FileNameWhence = "c:\MyFileWhence.xxx"
FileNameWhere = "a:\MyFileWhere.xxx"
cCaption = 'Копируется файл 1 из 1'
cText = FileNameWhence + ' -> ' + FileNameWhere

DECLARE INTEGER CopyFileProgress IN CopyFile.DLL STRING, STRING, STRING, STRING, INTEGER

IF CopyFileProgress(FileNameWhence,FileNameWhere,cCaption,cText,2) = 1
MESSAGEBOX ('Файл не скопирован',0+16,'Ошибка')
ENDIF

CLEAR DLLS
********************************************************************************

Эта DLL написана на DELPHI 6.0 с использованием стандартных средств и
библиотек RX.

Это мое 3-е решение. Так получилось, что предыдущие 2 оказались
изобретением велосипеда. Если и это окажется тем же, прошу не критиковать.
Согласен, что если как следует поискать, то всегда можно найти что то лучшее.
Кто хочет ищите, кому нравится - пользуйтесь.

С уважением ко всем лисятникам Гончаров Н.А.
mailto:1Kolka@rambler.ru
 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.888) Вложение [203.49]kb
Дополнения пользователей
Библиотека для копирования файлов.
[+][?]
Гончаров Н.А.
01.02.02 11:21:13

На счет глюков. Тут очепятка вкралась.
>При больших размерах файла при повторном копировании
>бывает так, что функция отработала, а файл на свое место
>еще не лег. 
На самом деле функция заканчивает свою работу только ПОСЛЕ ТОГО как файл лег на место и корректно
отрабатывает ошибки. Просто ПрогрессБар завершается раньше.
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика