Модуль "P2KFileManager" (часть 8) - DownLoadFile
последняя версия: 3.0.9 build 961 beta
от 07 декабря 2007 г.
от 07 декабря 2007 г.
procedure TfrmP2KFileManager.DownLoadFile; var z, k, h: integer; a: word; s, t: string; p: string; n: TTreeNode; frmProgress: TfrmProgress; TotalSize: integer; xItem: TListItem; xF: array of TMotoFile;
begin
if not Form1.IsP2KConnected then exit;
if AdvListView1.Selected = nil then exit;
if RzTreeView1.Selected = nil then exit;
n:= RzTreeView1.Selected;
while n <> nil do
begin
Insert('/' + n.Text, p, 1);
n:= n.Parent;
end;
p:= p + '/';
if AdvListView1.SelCount = 1
then begin
s:= AdvListView1.Selected.Caption;
SaveDialog1.FileName:= s;
s:= p + s;
//z:= StrToInt(AdvListView1.Selected.SubItems[1]);
z:= integer(AdvListView1.Selected.Data);
a:= convert_word(strToint(AdvListView1.Selected.SubItems[2]));
if SaveDialog1.Execute then
begin
frmProgress:= TfrmProgress.Create(Self);
frmProgress.GradientLabel1.Visible:= true;
frmProgress.GradientLabel2.Visible:= true;
frmProgress.GradientLabel1.Caption:= '';
frmProgress.GradientLabel2.Caption:= '';
frmProgress.AdvProgressBar1.Value:= 0;
frmProgress.AdvProgressBar1.Visible:= true;
frmProgress.AdvProgressBar2.Value:= 0;
frmProgress.AdvProgressBar2.Visible:= false;
frmProgress.AdvProgressBar2.MaxValue:= z;
frmProgress.AdvProgressBar1.MaxValue:= z;
Form1.Enabled:= false;
frmProgress.Show;
//##Application.ProcessMessages;
frmProgress.Update;
if CorrectMotoName(s) then
begin
Screen.Cursor:= crHourGlass;
try
if P2K.DownLoadFile(s, z, a, SaveDialog1.FileName, frmProgress)
then begin end //Form1.ShowAlert(Format('Файл %s успешно слит с телефона', [s]))
else begin end; //Form1.ShowAlert(Format('Не удалось слить файл %s с телефона', [s]))
except
//Form1.ShowAlert(Format('Непредвиденная ошибка скачивания файла %s', [s]))
end;
Screen.Cursor:= crDefault;
end;
frmProgress.Free;
Form1.Enabled:= true;
end;
end
else begin
if FolderDialog2.Execute then
begin
frmProgress:= TfrmProgress.Create(Self);
frmProgress.GradientLabel1.Visible:= true;
frmProgress.GradientLabel2.Visible:= true;
frmProgress.GradientLabel1.Caption:= '';
frmProgress.GradientLabel2.Caption:= '';
frmProgress.AdvProgressBar1.Value:= 0;
frmProgress.AdvProgressBar1.Visible:= true;
frmProgress.AdvProgressBar2.Value:= 0;
frmProgress.AdvProgressBar2.Visible:= true;
TotalSize:= 0;
xItem:= AdvListView1.Selected;
k:= 0;
h:= AdvListView1.SelCount;
SetLength(xF, h);
while xItem <> nil do
begin
s:= xItem.Caption;
//z:= StrToInt(xItem.SubItems[1]);
z:= integer(xItem.Data);
TotalSize:= TotalSize + z;
FillMemory(@xF[k].Name, 256, 0);
CopyMemory(@xF[k].Name, PChar(s), length(s));
xF[k].Size:= z;
xF[k].Attr:= convert_word(integer(xItem.Data));
xItem:= AdvListView1.GetNextItem(xItem, sdAll, [isSelected]);
inc(k);
end;
frmProgress.AdvProgressBar2.MaxValue:= TotalSize;
Form1.Enabled:= false;
frmProgress.Show;
//##Application.ProcessMessages;
frmProgress.Update;
try
for k:= 0 to High(xF) do
begin
if CorrectMotoName(s) then
begin
try
s:= xF[k].Name;
z:= xF[k].Size;
a:= xF[k].Attr;
t:= FolderDialog2.Directory + '\' +s;
frmProgress.AdvProgressBar1.MaxValue:= z;
try
if P2K.DownLoadFile(p+s, z, a, t, frmProgress)
then begin end //Form1.ShowAlert(Format('Файл %s успешно слит с телефона', [s]))
else begin end; //Form1.ShowAlert(Format('Не удалось слить файл %s с телефона', [s]))
except
//Form1.ShowAlert(Format('Непредвиденная ошибка скачивания файла %s', [s]))
end;
finally
Screen.Cursor:= crDefault;
end;
end
else frmProgress.AdvProgressBar2.Value:= frmProgress.AdvProgressBar2.Value + xF[k].Size;
end;
except
//Form1.ShowAlert('Непредвиденная ошибка скачивания файлов');
end;
frmProgress.Free;
Form1.Enabled:= true;
end;
end;
end;
Еще записи по теме
- Модуль "Структура меню" (часть 4) - GetMenuTypeOld
- Языковой Модуль (часть 1)
- Модуль "Пункты меню" (часть 11) - DeleteItem
- Модуль "Настройки" (часть 2) - FormCreate
- Модуль "P2KApi" (часть 56) - TP2KAPI.SendJump
- Модуль "P2KApi" (часть 54) - TP2KAPI.FlashCmd3
- Модуль "Структура меню" (часть 2) - определение переменных и типов данных
