Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц, летом дешевле!

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2014, 09:54   #1
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,385
По умолчанию ftp сервера получить данных ListView / Delphi и сети

Здравствуйте ребята ... при подключение ftp через IdFTP все данных получаю в ListBox1 Но это (отображение файлов в Папки) как то не красиво .....
Код:
var
  i: Integer;
 begin
  IdFTP1.Host :=  Edthost.text;
  IdFTP1.Username := edtLogin.Text;
  IdFTP1.Password := edtPassword.Text;
  IdFTP1.Port := 21;
  idFTP1.Passive:= True;
  IdFTP1.Connect;
 
   if IdFTP1.Connected then
    begin
      Panel1.Caption := 'Присоединились к серверу: ' + IdFTP1.Host;
      //--------------  ListBox1.Items -------------
       IdFTP1.List;
       For i:=0 to IdFTP1.DirectoryListing.Count-1 do
       ListBox1.Items.Add(idFTP1.DirectoryListing.Items[i].FileName);
    end
    else
    if Assigned(IdFTP1) then
    begin
        IdFTP1.Disconnect;
        IdFTP1.Free;
end;
В книге нашел пример Простейший файловый менеджер вот там используется для отображения файлов ListView1
Вопрос: Как получить данных ListView ? Как переделать это цикл
Код:
if IdFTP1.Connected then
    begin
      Panel1.Caption := 'Присоединились к серверу: ' + IdFTP1.Host;
      //------Как получить ListView1 это данных -------
       IdFTP1.List;
       For i:=0 to IdFTP1.DirectoryListing.Count-1 do
       ListBox1.Items.Add(idFTP1.DirectoryListing.Items[i].FileName);
    end
ListView1.Items.Add(idFTP1.DirectoryListing.I tems[i].FileName); так не запускается ............ Я хочу ListView1 получить все файл такого виде как Простейший файловый менеджер У это "файловый менеджер" длинное процедур и функция , он выбирает все иконки из системы .
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
 SysImageList: uint;
 SFI: TSHFileInfo;
begin
 {Создаем списки маленьких и больших иконок}
 ListView1.LargeImages:=TImageList.Create(self);
 ListView1.SmallImages:=TImageList.Create(self);
 
 {Запрашиваем большие иконки}
 SysImageList:= SHGetFileInfo('', 0, SFI, SizeOf(TSHFileInfo),
  SHGFI_SYSICONINDEX or SHGFI_LARGEICON);
 
 if SysImageList <> 0 then
  begin
   {Присваиваем системные иконки в ListView1}
   ListView1.LargeImages.Handle:= SysImageList;
   ListView1.LargeImages.ShareImages:= True;
  end;
 
 {Запрашиваем маленькие иконки}
 SysImageList:= SHGetFileInfo('', 0, SFI, SizeOf(TSHFileInfo),
  SHGFI_SYSICONINDEX or SHGFI_SMALLICON);
 
 if SysImageList <> 0 then
  begin
  {Присваиваем маленькие системные иконки в ListView1}
   ListView1.SmallImages.Handle:= SysImageList;
   ListView1.SmallImages.ShareImages:= True;
  end;
и из свойства OnShow на Form1 он выбирает файл из C:\ или можно указать D:\ Кто писал это менеджер все знает.

Код:
Application.OnHint:= ShowHint;
 AddFile ('C:/*.*', faAnyFile);
Помогите пожалуйста как отображать из ftp сервера все файл на ListView1 таком виде как на это Простейший файловый менеджер Файловый менеджер написал на Delphi XE3 и хочу чтобы он отображал данных таком виде из ftp сервера
Вложения
Тип файла: rar File_Manager_Delphi_XE3.part01.rar (500.0 Кб, 19 просмотров)
Тип файла: rar File_Manager_Delphi_XE3.part02.rar (500.0 Кб, 18 просмотров)
Тип файла: rar File_Manager_Delphi_XE3.part03.rar (500.0 Кб, 18 просмотров)
Тип файла: rar File_Manager_Delphi_XE3.part04.rar (500.0 Кб, 17 просмотров)
Тип файла: rar File_Manager_Delphi_XE3.part05.rar (406.3 Кб, 21 просмотров)
xxbesoxx вне форума Ответить с цитированием
Старый 17.03.2014, 10:16   #2
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

во первых надо подготовить сам листвью так как хотите чтобы он выглядел, у него есть несколько режимов
во вторых если хотите иконки, то можете поступить также как тут, подгрузить из системных ресурсов
в 3-х посмотрите справку как добавлять итемы и подитемы в список листвью
eval вне форума Ответить с цитированием
Старый 17.03.2014, 13:04   #3
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,385
По умолчанию

eval Спасибо за внимание , ListView1 Уже подготовленный он отображает все (Директория и Файлов ) в разделе Private объявлена функция
Код:
 function AddFile(FileMask: string; FFileAttr: DWORD): Boolean;
и содержимое это функция это код
Код:
function TForm1.AddFile(FileMask: string; FFileAttr: DWORD): Boolean;
{Объявляем локальные переменные}
var
 ShInfo: TSHFileInfo;
 Attributes, FileName: string;
 hFindFile: THandle;
 SearchRec: TSearchRec;

{Объявляем локальную функцию}
function AttrStr (Attr: Integer): string;
 begin
  Result:='';
  if (FILE_ATTRIBUTE_DIRECTORY and Attr) > 0 then Result:= Result + '';
  if (FILE_ATTRIBUTE_ARCHIVE and Attr) > 0 then Result:= Result + 'A';
  if (FILE_ATTRIBUTE_READONLY and Attr) > 0 then Result:= Result + 'R';
  if (FILE_ATTRIBUTE_HIDDEN and Attr) > 0 then Result:= Result + 'H';
  if (FILE_ATTRIBUTE_SYSTEM and Attr) > 0 then Result:= Result + 'S';
 end;

begin
 ListView1.Items.BeginUpdate; // Начинаем обновление элементов списка. BeginUpdate - для значительных изменений
 ListView1.Items.Clear; // Очищаем ListView1

 Result:= False;
 hFindFile:= FindFirst(FileMask, FFileAttr, SearchRec); // Открываем поиск
 if hFindFile <> INVALID_HANDLE_VALUE then // Проверяем корректность найденного файла
  try // Пробуем выполнить
   repeat // Повторять
    with SearchRec.FindData do
     begin
      if (SearchRec.Name='.') or (SearchRec.Name='..') or (SearchRec.Name='') then
       Continue;
       FileName:=SlashSep(DirEdit.Text, SearchRec.Name); // Вызов функции SlashSep

       SHGetFileInfo(PChar(FileName), 0, ShInfo, SizeOf(ShInfo),
       SHGFI_TYPENAME or SHGFI_SYSICONINDEX); // Возвращаем инф-цию о файле
       Attributes:= AttrStr(dwFileAttributes);

       with ListView1.Items.Add do // Добавляю новый элемент
        begin
         Caption:= SearchRec.Name; // Присваиваю его имя
         ImageIndex:= ShInfo.iIcon; // Присваиваю индекс из системного списка изображений
         SubItems.Add(IntToStr(SearchRec.Size)); // Добавляю поле "Размер"
         SubItems.Add(ShInfo.szTypeName);  // Добавляю поле "Тип"
         SubItems.Add(FileTimeToDateTimeStr(ftLastWriteTime)); // Добавляю поле "Дата"
         SubItems.Add(Attributes); // Добавляю поле "Аттрибуты"
         SubItems.Add(DirEdit.Text + cFileName);

         if (FILE_ATTRIBUTE_DIRECTORY and dwFileAttributes) > 0  then
          SubItems.Add('dir')
         else SubItems.Add('file');
        end;
      Result:= true;
     end;
   until (FindNext(SearchRec) <> 0);
  finally // выполняем  вне зависимости от резул-та
   FindClose(SearchRec); // Закрываем поиск
  end;
 ListView1.Items.EndUpdate; // Заканчиваем обновление элементов списка. Прорисовываем все изменения сразу
вызывается функция из свойства OnShow
Код:
 Application.OnHint:= ShowHint;
 AddFile ('C:/*.*', faAnyFile);
Я хочу что это функция вызвал когда idFTP подключен
Код:
if IdFTP1.Connected then
    begin
      Panel1.Caption := 'Присоединились к серверу: ' + IdFTP1.Host;
 {
    Вот здесь хочу вызывать  это функция  и мучаю с вчерашнего дня 
  }
Пожалуйста помогите ребята ...... Заранее спасибо
xxbesoxx вне форума Ответить с цитированием
Старый 17.03.2014, 13:30   #4
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

она вам не подойдет, она работает с локальными дисками, с ftp не умеет, надо написать другую - свою.
eval вне форума Ответить с цитированием
Старый 18.03.2014, 03:30   #5
xxbesoxx
Участник клуба
 
Регистрация: 10.08.2010
Сообщений: 1,385
По умолчанию

Для отображения файлов заменил ListView на ListBox и всех файлов беру присвоит 1 bmp картинку как здесь http://delphidevelop.ru/publ/12-1-0-192 Но как то не красиво . Было бы хорошо если бы реализовал как на файловый менеджер...
xxbesoxx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц, летом дешевле!

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить список файлов с сервера FTP Qt C++ _PROGRAMM_ Помощь студентам 1 07.03.2014 16:39
Вопросы по реализации FTP-сервера andreil C/C++ Сетевое программирование 0 07.12.2012 19:39
PHP, MySQL и FTP сервера на виртуальной оси под XP на VirtualBox Altera Свободное общение 7 07.12.2010 23:37
закачка файлов с Ftp сервера smily Общие вопросы Delphi 1 30.11.2006 20:36