КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Then begin. if (SR.Attr and faDirectory) = faDirectory
if (SR.Attr and faDirectory) = faDirectory then List.Add('Dir' + SR.Name) elseList.Add('Fil' + SR.Name) end; until FindNext(SR)<>0; FindClose(SR); List.Add(‘FFind’); Send; end;
Процесс отображения: 1. Если курсор мыши на ListView1, то меняем его на часы 2. Очищаем ListView1 3. Добавляем в ListVioew1 ячейку с именем файла copy (MemRecive.Lines[i], 4,length(List.Strings[i])); 4. Если в начале строки стоит Dir, то отображаем иконку папки, если стоит Fil, отображаем иконку файла 5. После всех операций восстанавливаем обычный курсор
if n = 'FFind' Then begin Form1.Frame41.ListView1.Clear; for i := 1 to Form1.List.Count - 1 do Begin With Form1.Frame41.ListView1.Items.Add do Begin Caption := copy(Form1.List.Strings[i], 4,length(Form1.List.Strings[i]));
if copy(Form1.List.Strings[i], 1,3) = 'Dir' then ImageIndex := 0 else ImageIndex := 1;
end; end;
*******************************************************
2. Кнопка «Обновить» повторяет поиск в данной папке. 3. Кнопка «Выделить файлы для копирования» показывает рядом с каждым файлом или папкой квадратик, в котором можно поставить галочку, тем самым выделить файл для последующего его копирования. 4. При нажатии на кнопку «Копировать файлы» в левой части экрана появляется фрейм с «линией прогресса»(TProgressBar), показывающая сколько процентов скопировано. Во время копирования над ней пишется имя того файла, который передаётся в данный момент, ниже прогресса пишутся выполняемые действия.
procedure TFrame4.Button7Click(Sender: TObject); Var i : integer; Begin Form1.Frame51.P := -1; Form1.Frame51.L := 0; Form1.Frame51.Memo1.Clear; Form1.Frame51.mmOut.Text := 'Трансфер открыт:'; Form1.Frame51.mmOut.Lines.Add('...'); Form1.Frame51.ProgressBar1.Position := 0; for i := 0 to ListView1.Items.Count - 1 do Begin if ListView1.Items[i].Checked Then begin Form1.Frame51.Memo1.Lines.Add(ListView1.Items[i].Caption); inc(Form1.Frame51.L); end; end;
//////////////////////////////////////// Form1.Frame41.Hide; Form1.Frame51.Show; //---- Form1.Frame51.U := 100 div Form1.Frame51.L; if Form1.Frame51.U < 1 then Form1.Frame51.U := 1; Form1.Frame51.Timer1.Enabled := true; end;
5. Кнопка «Отмена» скрывает данный модуль программы.
Копирование файлов Перед тем, как начать копирование файлов необходимо их выделить в ListView1. Копировать файлы за раз можно только из одной папки. После того, как нужные файлы выделены, можно указать папку – куда они будут скопированы. Для этой цели предусмотрена кнопка «Обзор», при её нажатии появляется диалог выбора каталога.
Событие таймера, выполняющего копирование:
procedureTFrame5.Timer1Timer(Sender: TObject); Begin inc(P); if Memo1.Lines[P] <> '' Then begin Form1.Frame51.Label2.Caption := 'Копирование ' + Memo1.Lines[P]; Form1.Frame51.mmOut.Lines.Add(TimeToStr(Time) + ' Копирование ' + Memo1.Lines[P]);
Try
DM.FClient.Get(Form1.Frame41.eAdr.Text + Memo1.Lines[P], Form2.ShellTreeView1.Path + '\' + Memo1.Lines[P]); Except Form1.Frame51.mmOut.Lines.Add('Ошибка при копировании файла: ' + Memo1.Lines[P]); end;
if fileexists(Form2.ShellTreeView1.Path + '\' + Memo1.Lines[P])
|