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