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

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

Копирование файла и ProgressBar [D5, Win95/98]


ProfiUgl ©   (2002-06-26 08:37:00) 

Доброго дня суток мастера!
Есть накой пример в справке для Делфи:

procedure FileCopy(const FromFile, ToFile: string);

var
FromF, ToF: file;
NumRead, NumWritten: Integer;
Buf: array[1..2048] of Char;
begin

AssignFile(FromF, FromFile);
Reset(FromF, 1); { Размер записи = 1 }
AssignFile(ToF, ToFile); { Открываем выходной файл }
Rewrite(ToF, 1); { Размер записи = 1 }
repeat
BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
BlockWrite(ToF, Buf, NumRead, NumWritten);
until (NumRead = 0) or (NumWritten <> NumRead);
CloseFile(FromF);
CloseFile(ToF);
end;
Вопрос: Можно ли в этот кусок кода "вставить" ProgressBar
Спасибо.


Cobalt   (2002-06-26 21:21:00) [1]

>sergling © (26.06.02 21:09)
Создавайте файл с параметром "писать без буфера" (см. OpenFile или CreateFile(Ex))


sergling   (2002-06-26 21:09:00) [2]

я когда-то пытался сделать прогрессбар в копирование, так при копировании файла на дискету система сначала пишет все в буфер видимо, прогресс срабатывает моментально, при закрытии файла, начинается реальное копирование на минуту времени. Прогресс бар оказывается ни к чему. Как избежать этого, не применяя периодического закрытия файла?


S. Babijchuk   (2002-06-26 10:57:00) [3]

Помогите решить такую задачу. Необходимо восстановить в моем приложении компонент TMainMenu, который находится на одной из форм в другом приложении. Я получил ресурс этой формы из exe-файла, сохранил его в потоке, установил позицию в потоке, соответствующую началу описания компонента TMainMenu и попытался использовать функции потока AStream.ReadComponent(AMenu)и AStream.ReadComponentRes(AMenu).В обоих случаях одна и таже ошибка "Invalid stream format.",но по разным причинам. В первом случае не совпадают сигнатуры, а во втором случае - неправильный заголовок, что и понятно. Пробовал добавить сигнатуру преред описанием TMainMenu - процесс начинается, но идет неправильно. Неправильно читаются свойства объекта. Вопрос: как можно восстановить объект типа TMainMenu в этом случае?


Song   (2002-06-26 09:54:00) [4]

Почему загнул? Аргументируй. Так оно и должно быть.
Насчёт пяти строк, поискать не в лом?


ProfiUgl   (2002-06-26 09:20:00) [5]

>Song
Ну конечно с "Цитата: Приравняйте его на размер файла." Ты загнул!
Цитата: сделайте через ShFileOperation() - пять строк
Будь добр дай мне эти пять строк.
Спасибо


Song   (2002-06-26 08:59:00) [6]

Действительно, а что с ним? :-)
Приравняйте его на размер файла.

Не мучайтесь фигнёй, сделайте через ShFileOperation() - пять строк


ProfiUgl   (2002-06-26 08:52:00) [7]

>Song
Цитата: Если говорить про Ваш пример то в цикл нужно вставить приращение TGauge
А как насчет Gauge1.MaxValue ?


Song   (2002-06-26 08:44:00) [8]

Если говорить про Ваш пример то в цикл нужно вставить приращение TGauge

А вообще это делается лечге через ShFileOperation() - здесь програссбар уже есть и через CopyFileEx() там его можно легко иммиторовать тоже.


Наверх

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