Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Здравтсвуйте уважаемые программисты. Как мне решить проблемму... [D7]


Страницы:   1 2 3

uka ©   (2007-02-05 13:47:00) 

Здравтсвуйте уважаемые программисты. Как мне решить проблемму вот такого плана. В папке находятся веб-странички. Необходимо занести названия файлов в ветви TreeView и при выборе ветви соответственно открывался свой файл.


uka   (2007-02-07 20:09:00) [21]

А как искать эти файлы?


RASkov   (2007-02-07 18:45:00) [22]

> [21] uka ©   (07.02.07 18:28)

Я упростил твою задачу, но хозяин барин...
Тогда [19]
Ищешь нужные тебе файлы и добавляешь по своему вкусу в TreeView.
Обрабатываешь клики по TreeView, извлекаешь из Node имя файла(придумай как его тебе там хранить, можно в тексте, конечно, полностью имя с путем) и WebBrowser.Navigate(FileName);


uka   (2007-02-07 18:28:00) [23]


> RASkov   (06.02.07 20:51) [20]
> > [17] uka ©   (06.02.07 20:42)
>
> *FL.Directory:='<Путь к папке с твоими файлами>';
> Я тебе полностью всю твою программу написал в [18] :)

Ты извини меня, но я не то имел ввиду. Мне не нужен FileListBox. Мне нужно чтобы имена считывалиьс в TreeView. Или без FileListBox нельзя этого сделать?


RASkov   (2007-02-06 20:51:00) [24]

> [17] uka ©   (06.02.07 20:42)

*FL.Directory:='<Путь к папке с твоими файлами>';
Я тебе полностью всю твою программу написал в [18] :)


iXT   (2007-02-06 20:51:00) [25]

1. Учись работать с FindFirst, FindNext, ..
2. Учись работать с TreeView
3. Не дано!


RASkov   (2007-02-06 20:47:00) [26]

> [17] uka ©   (06.02.07 20:42)

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, OleCtrls, SHDocVw, FileCtrl, StdCtrls, ExtCtrls;

type
 TForm1 = class(TForm)
   WB: TWebBrowser;
   FL: TFileListBox;
   procedure FLClick(Sender: TObject);
   procedure FormCreate(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
 FL.Directory:='<Путь к паке с твоими файлами>';
end;

procedure TForm1.FLClick(Sender: TObject);
begin
 WB.Navigate(FL.FileName);
end;

end.


uka   (2007-02-06 20:42:00) [27]

Нет этот вариант не подходит. Мне нужно чтобы имена файлов считывались в ветви дерева(TreeView) и при выборе какой-то ветви открывался своя веб-страничка в маоей проге.


Elen   (2007-02-06 12:05:00) [28]


> Можете какой-нибудь примерчик дать с FileListBox?

Ага :

procedure TForm1.FileListBox1DblClick(Sender: TObject);
begin
WinExec(pchar(FileListBox1.Items[FileListBox1.itemindex]),1);
end;


uka   (2007-02-06 11:55:00) [29]

В моей проге открывалась эта страничка.


RASkov   (2007-02-06 10:31:00) [30]

> [13] uka ©   (06.02.07 07:27)
> и при выборе ветви соответственно открывался свой файл.

Поясни, что надо.... чтоб зарегистрированной программой открывался (IE, Opera) или в твоей?


uka   (2007-02-06 07:27:00) [31]

Фильтр есть.
Все файлы с расширением .htm или .html
Можете какой-нибудь примерчик дать с FileListBox?


RASkov   (2007-02-05 15:29:00) [32]

> [11] Elen ©   (05.02.07 15:19)

Какой всё таки, с одной стороны, умный у тебя Пунто :) в классах Delphi шарит :)
> автору
FileListBox - в "плоском" виде отобразит все файлы (сканирование отпадает), обработай только клик...
Но если тебе необходимо строить дерево т.е. делить найденные файлы на группы то - TreeView и свой алгоритм построения дерева в момент сканирования папки...


Elen   (2007-02-05 15:19:00) [33]

Удалено модератором
Примечание: Флуд


RASkov   (2007-02-05 15:12:00) [34]

> [8] Elen ©   (05.02.07 14:56)

Наверное всетаки - FileListBox....


RASkov   (2007-02-05 15:10:00) [35]

> Кстати есть DirectoryListBox.

А чем он может помочь? :)


Elen   (2007-02-05 14:56:00) [36]


> но у него нет похоже фильтра по типу файлов....

Кстати есть DirectoryListBox.


RASkov   (2007-02-05 14:53:00) [37]

> А там ведь рекурсии могут быть

Если только для папки(без подкаталогов) то без рекурсии :)

> к тому же в этой папке будут содержаться только эти файлы
> то проблем особых не будет, и ему не придется возиться с
> построением дерева

Ну это ему виднее...


Elen   (2007-02-05 14:49:00) [38]


> RASkov

Да фильтра нет, но если автор реализует запуск тольконужных ему файлов, и к тому же в этой папке будут содержаться только эти файлы то проблем особых не будет, и ему не придется возиться с построением дерева (А там ведь рекурсии могут быть) :)


RASkov   (2007-02-05 14:30:00) [39]

> [3] Elen ©   (05.02.07 14:07)

из D7
object ShellTreeView1: TShellTreeView
 Left = 16
 Top = 16
 Width = 281
 Height = 253
 ObjectTypes = [otNonFolders]
 Root = 'C:\TEMP'
 UseShellImages = True
 AutoRefresh = False
 Indent = 19
 ParentColor = False
 RightClickSelect = True
 ShowRoot = False
 TabOrder = 0
end
но у него нет похоже фильтра по типу файлов....

> [4] uka ©   (05.02.07 14:20)

Поищи здесь на форуме FindFirst, FindNext, FindClose....
Вот кусок из хелпа:
procedure TForm1.Button1Click(Sender: TObject);

var
 sr: TSearchRec;
 FileAttrs: Integer;
begin
 StringGrid1.RowCount := 1;
 if CheckBox1.Checked then
   FileAttrs := faReadOnly
 else
   FileAttrs := 0;
 if CheckBox2.Checked then
   FileAttrs := FileAttrs + faHidden;
 if CheckBox3.Checked then
   FileAttrs := FileAttrs + faSysFile;
 if CheckBox4.Checked then
   FileAttrs := FileAttrs + faVolumeID;
 if CheckBox5.Checked then

   FileAttrs := FileAttrs + faDirectory;
 if CheckBox6.Checked then
   FileAttrs := FileAttrs + faArchive;
 if CheckBox7.Checked then

   FileAttrs := FileAttrs + faAnyFile;

 with StringGrid1 do
 begin
   RowCount := 0;

   if FindFirst(Edit1.Text, FileAttrs, sr) = 0 then

   begin
     repeat
       if (sr.Attr and FileAttrs) = sr.Attr then
       begin
       RowCount := RowCount + 1;
       Cells[1,RowCount-1] := sr.Name;
       Cells[2,RowCount-1] := IntToStr(sr.Size);
       end;
     until FindNext(sr) <> 0;
     FindClose(sr);
   end;
 end;
end;


uka   (2007-02-05 14:20:00) [40]

В том и проблемма, что я не знаю как сканировать.


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо