1. Набираем команду codeby webinar. Набираем команду для организации и проведения вебинаров. Подробнее ...

    Скрыть объявление
  2. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление
  3. Получи 30.000 рублей. Для получения денег необходимо принять участие в конкурсе авторов codeby. С условиями и призами можно ознакомиться на этой странице ...

    Внимание! Регистрация авторов на конкурс закрыта.

    Скрыть объявление

Открыть дерево файлов как в Explorer

Тема в разделе "Delphi - программирование", создана пользователем lexaltd, 17 июл 2008.

  1. lexaltd

    lexaltd Гость

    Репутация:
    0
    Мне надо сделать программу чтоб можно было найти в определённой папки .txt файлы , и чтоб они открылись как в Explorer , тоесть чтоб был список всех этих файлов находящихся в этой папке (не один файл , а все что находятся в этой папке) , чтоб я их мог открыть , печатать , редактировать .

    Я незнаю что за компонет выбрать чтоб там файлы отображались как в Explorer , если выбираю Memo , то файлы получаются в в виде списка - пути файлов и нечего с ними сделать нельзя.

    Я не сильно разбираюсь в программировании - подскажите как решить эту проблему , и что я не так делаю.

    Зарание спасибо за помощь.

    Извеняюсь но создалось две темы - удалите одну
     
  2. Silver Wind

    Silver Wind Гость

    Репутация:
    0
    Смотри на закладке Samples компоненты ShellComboBox, ShellTreeView, ShellListView.
    Пример использования Delphi7\Demos\Virtual Listview

    Или такие же по функциональности, но устаревшие, на закладке Win 3.1 DriveComboBox, DirectoryListBox, FileListBox.
    Пример здесь Delphi7\Demos\Doc\Filmanex

    Хотя нет, извеняюсь, "Delphi7\Demos\Virtual Listview" - из другой оперы, просто похоже.
     
  3. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.432
    Симпатии:
    40
    Есть неск-ко вариантов. Использовать FingFirst - FindNext - FindClose и самостоятельно заполнять ListView с нужными колонками. Либо использовать выше названный ShellListView. Ну а редактирование.. печать.. Мемо и РичЕдит Тебе в помощь.

    ПС. Могу написать за символические 5-10$. vitalyhome@tut.by.
     
  4. lexaltd

    lexaltd Гость

    Репутация:
    0

    Я конечно извеняюсь , но где найти этот пример - я не понял
     
  5. Silver Wind

    Silver Wind Гость

    Репутация:
    0
    В каталоге установке Delphi ("C:\Program Files" - обычно), и данный пример немного не то что тебе нужно, смотри лучше связку из компонент ShellComboBox, ShellTreeView, ShellListView, там все тривиально.
     
  6. lexaltd

    lexaltd Гость

    Репутация:
    0
    Теперь другая проблема

    Пытаюсь из ShellListView открыть текстовый файл в Memo
    Если например с FileListBox я окрываю так " Form1.Memo1.Lines.LoadFromFile(FileListBox1.Filename);"
    То тут я пишу " Form1.Memo1.Lines.LoadFromFile(ShellListView1.Filename); " - при компилировании выдаёт ошибку - там надо наверно не " Filename " писать

    Можете подсказать решение этой проблемы ?

    Или через ShellListView открыть текстовый файл в Memo нельзя?
     
  7. lexaltd

    lexaltd Гость

    Репутация:
    0
    1. Нашёл там только Selected
    2. Смотрите мне нужно открыть файл .txt из ShellListView в Memo

    C FileListBox я открываю так :

    procedure TForm1.FileListBox1DblClick(Sender: TObject);
    begin
    Form2.Memo1.Lines.LoadFromFile(FileListBox1.Filename);
    end;

    Как мне открыть с ShellListView?

    procedure TForm1.FileListBox1DblClick(Sender: TObject);
    begin
    ?????????
    end;

    Можете написать , а то нечего не получается
     
  8. Silver Wind

    Silver Wind Гость

    Репутация:
    0
    Это ведь другой компонент, верно, так почему у него должно быть свойство FileName?
    Небольшое исследование класса ShellListView с помощью выпадающего списка свойств/методов и мы добираемся до искомого имени файла:

    Код:
    procedure TForm1.ShellListView1Click(Sender: TObject);
    var
    SelectedFolder:TShellFolder;
    FileName:string;
    begin
    SelectedFolder:=ShellListView1.SelectedFolder;
    if Assigned(SelectedFolder)
    then begin
    FileName:=SelectedFolder.PathName;
    if FileExists(FileName) and (ExtractFileExt(FileName)='.txt')
    then Memo1.Lines.LoadFromFile(FileName);
    end;
    end;
     
  9. lexaltd

    lexaltd Гость

    Репутация:
    0
    Спасибо большое заработало - будем дальше строить
     
  10. lexaltd

    lexaltd Гость

    Репутация:
    0

    Я же писал что не сильно разбираюсь в это , конечно смотрел - но как говорится смотрю в книгу , вижу ..

    Вот соорудил короче код , на основании ваших ответов :

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Form1.Memo1.Lines.LoadFromFile(ShellListView1.SelectedFolder.PathName);
    end;


    А фильтр делается добавлением в OnAddFolder

    CanAdd := AFolder.IsFolder or (ExtractFileExt(AFolder.PathName) = '.txt');


    Может кому то пригодится

    P.S. Ещё раз большое спасибо
     
  11. lexaltd

    lexaltd Гость

    Репутация:
    0
    Можно как то связать " ShellChangeNotifier " с "ShellComboBox"
    Чтоб при нажатии на кнопку открывалось диалоговое окно " ShellChangeNotifier " я там выбрал корневой коталог , и он открылся в "ShellComboBox" и самое гланое чтоб при повторном запуске программы , в "ShellComboBox" открывался этот корневой каталог который я выбрал " ShellChangeNotifier " , и когда надо я мог сменить корневой каталог

    Можно так сделать ?

    Зарание спасибо
     
  12. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.432
    Симпатии:
    40
    Можно.

    Уф.. не помню уж точно названия св-в компонентов но примерно следующим образом
    екзекьютишь какой-нить TDirectoryListBox в котором юзверь выбирает каталог, после чего его выбор пишешь в какую-нить пременную. Ну а потом ShellComboBox.directory(ну или там ShellComboBox.SelectedFolder.PathName)=твоя_пееменная. А дальше сохраняешь значение своей переменной куда-нить в ini. А при зауске проги читаешь это значение и снова ShellComboBox.SelectedFolder.PathName=твоя_пееменная. По поводу ini -IniFiles.TIniFile тебе в помощь.
     
  13. lexaltd

    lexaltd Гость

    Репутация:
    0
    Мне нужно чтоб программа состояла из одного файла
    А что нельзя сделать чтоб компонент " ShellChangeNotifier " работал с "ShellComboBox" ???
     
  14. vital

    vital Больной Компом Детектед

    Репутация:
    0
    Регистрация:
    29 янв 2006
    Сообщения:
    2.432
    Симпатии:
    40
    Можно, просто я не совсем тебя понял и написал к примеру. Все можно)
     
Загрузка...

Поделиться этой страницей