Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.02.25;
Скачать: [xml.tar.bz2];

Вниз

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

 
uka ©   (2007-02-05 13:47) [0]

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


 
Плохиш ©   (2007-02-05 13:53) [1]


> Как мне решить проблемму

Надо начать с изучения теории.


 
RASkov   (2007-02-05 13:57) [2]

> Как мне решить проблемму вот такого плана

То, что ты написал, это не проблема, а задача....
Сканируй папку на наличие нужных файлов, строй дерево, обрабатывай события TreeView...
Будут проблемы спрашивай....


 
Elen ©   (2007-02-05 14:07) [3]


> uka

Если в D7 еще есть TshellTreeView можеш использовать его, настроив на нужную папку.


 
uka ©   (2007-02-05 14:20) [4]

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


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

> [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;


 
Elen ©   (2007-02-05 14:49) [6]


> RASkov

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


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

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

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

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

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


 
Elen ©   (2007-02-05 14:56) [8]


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

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


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

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

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


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

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

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


 
Elen ©   (2007-02-05 15:19) [11]

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


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

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

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


 
uka ©   (2007-02-06 07:27) [13]

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


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

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

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


 
uka ©   (2007-02-06 11:55) [15]

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


 
Elen ©   (2007-02-06 12:05) [16]


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

Ага :

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


 
uka ©   (2007-02-06 20:42) [17]

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


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

> [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.


 
iXT ©   (2007-02-06 20:51) [19]

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


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

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

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


 
uka ©   (2007-02-07 18:28) [21]


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

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


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

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

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


 
uka ©   (2007-02-07 20:09) [23]

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


 
RASkov   (2007-02-07 21:06) [24]

> [23] uka ©   (07.02.07 20:09)

[19] 1 пункт.


 
uka ©   (2007-02-07 21:08) [25]

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


 
RASkov   (2007-02-07 21:17) [26]

> [25] uka ©   (07.02.07 21:08)

Ну это только тебе известно...


 
uka ©   (2007-02-08 08:02) [27]

А как сделать заполнение по маске ".html"?


 
Elen ©   (2007-02-08 08:13) [28]


> А как сделать заполнение по маске ".html"?

В   if FindFirst(Edit1.Text, FileAttrs, sr) = 0 then в этот эдит ставиш типа "d:\MoyaPapka\*.html"


 
uka ©   (2007-02-08 08:15) [29]

Что за параметры FileAttrs, sr?


 
Elen ©   (2007-02-08 08:19) [30]


> Что за параметры FileAttrs, sr?

А в справочке почитать?


 
uka ©   (2007-02-08 08:33) [31]

Точно, благодарю. Видимо еще не совсем проснулся.
А ты не знаешь ответа на вопрос [25]?


 
RASkov   (2007-02-08 08:38) [32]

> А как сделать, чтобы они заполнялись в дерево в определенном
> порядке?

Ты сам на него попробуй ответить.
Кто порядок определяет? В каком - алфавитном или еще каком....


 
Elen ©   (2007-02-08 08:43) [33]


> RASkov   (08.02.07 08:38) [32]

Наверное автор имел ввиду чтобы FindFirst...FindNext возвращал список отсортированный либо по дате либо по алфавиту, по размеру и.т.д. (Как это командер делает)


 
RASkov   (2007-02-08 08:47) [34]

> [33] Elen ©   (08.02.07 08:43)

Если честно, то я не знаю, что имеет ввиду автор, поэтому и предлогаю ему определиться с порядком.
Но похоже он вообще еще не проснулся:)


 
uka ©   (2007-02-08 08:50) [35]

В алфавитном не получится. Мне нужно, чтобы высраивалось вот так:
Введение
1.Глава
2.Глава
....
А у меня получается:
1.Глава
2.Глава
Введение.


 
Elen ©   (2007-02-08 08:54) [36]


> uka ©   (08.02.07 08:50) [35]

Ну-у-у. Это спорный порядок. Тебе значит нужно куча IFов. Мой совет назвать файлы соответствующим образом :

001 - Введение
002 - 1.Глава
003 - 2.Глава

Ну и т.д. И тогда избавишся от проблем сортировки


 
uka ©   (2007-02-08 08:59) [37]

А как тогда потом избавиться от 001-003 и от расширения файлов?


 
Elen ©   (2007-02-08 09:01) [38]


> А как тогда потом избавиться от 001-003 и от расширения
> файлов?

Не сложно, но зачем?


 
uka ©   (2007-02-08 09:03) [39]

Так нужно. Так было сказано .


 
Elen ©   (2007-02-08 09:06) [40]


> Так нужно. Так было сказано .

Кем сказано? Это что контрольная.



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.02.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.047 c
9-1144573893
ArtemESC
2006-04-09 13:11
2007.02.25
Реализация 3D движка


15-1169002710
PhysY
2007-01-17 05:58
2007.02.25
Как рассчитывается физика в физ. движках?


3-1165326993
DmitryNekl
2006-12-05 16:56
2007.02.25
Логические поля в MySQL и Delphi


2-1170935401
niil
2007-02-08 14:50
2007.02.25
Копии TabSheet в рантайме


15-1170235768
RustamK
2007-01-31 12:29
2007.02.25
Bandy 2007





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский