![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
procedure TForm1.TreeView1DblClick(Sender: TObject);
var path:string; Function recGetPath(node:TTreeNode):TTreeNod e; begin If node.Text<>dir then begin path:=node.Text+path; recGetPath(node.Parent); end else path:=node.Text+'\'+path; end; Function isDirectory(s:string):boolean; begin result := GetFileAttributes(pchar(path)) and faDirectory = faDirectory; end; begin recGetPath(TreeView1.Selected); If not isDirectory(path) then Image1.Picture.LoadFromFile(path); end; А не могли бы вы мне еще сказать смысл этой проверки? какой смысл проверять не равен ли выделенный узел начальному каталогу? Ну точнее в какой-то реализации может и надо, но у меня это невозможно, так как начальный каталог выбирается из ShellCombo отдельно... И можно ли эту проверку заменить на Node.Parent<>nil? как это правильно сделать? я попробовала и у меня получается в итоге path="" |
![]() |
![]() |
![]() |
#12 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
Я кажется поняла.... если так заменить проверку и выбрать файл, который находится в корне диска, то за счет того, что диск выбирается отдельно, он не считается родителем и путь получается не полный.... значит надо как-то приписать его в начало пути )))
|
![]() |
![]() |
![]() |
#13 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
Function recGetPath(node:TTreeNode):TTreeNod e;
begin If node.Parent<>nil then begin path:=node.Text+path; recGetPath(node.Parent); end else path:=node.Text+'\'+path; end; Помогите найти ошибку в этой части, пожалуйста.... оно, если больше 3-ч уровней вложенности , перестает ставить \ ... не могу понять почему.... Точнее я знаю почему - в процедуре неправильно \ расставляется... но я не могу придумать как сделать, чтобы было нормально.. Оно то его в конце доставляет лишний, то в середине не ставит... ((( Последний раз редактировалось yulia; 18.11.2008 в 17:42. |
![]() |
![]() |
![]() |
#14 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
Все, всем спасибо ))) получилось )))
|
![]() |
![]() |
![]() |
#15 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
procedure GetDirectories(Tree: TTreeView; Directory: string;
Item: TTreeNode; IncludeFiles: Boolean); var SearchRec: TSearchRec; ItemTemp: TTreeNode; begin Tree.Items.BeginUpdate; if Directory[Length(Directory)] <> '\' then Directory := Directory + '\'; if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then begin repeat if (SearchRec.Attr and faDirectory = faDirectory) and (SearchRec.Name[1] <> '.') then begin if (SearchRec.Attr and faDirectory > 0) then Item := Tree.Items.AddChild(Item, SearchRec.Name); ItemTemp := Item.Parent; GetDirectories(Tree, Directory + SearchRec.Name, Item, IncludeFiles); Item := ItemTemp; end else if IncludeFiles then if SearchRec.Name[1] <> '.' then Tree.Items.AddChild(Item, SearchRec.Name); until FindNext(SearchRec) <> 0; FindClose(SearchRec); end; Tree.Items.EndUpdate; end; procedure TForm1.FormCreate(Sender: TObject); begin Dir := RzShellCombo1.SelectedFolder.PathNa me; Screen.Cursor := crHourGlass; TreeView1.Items.BeginUpdate; try TreeView1.Items.Clear; GetDirectories(TreeView1, Dir, nil, true); finally Screen.Cursor := crDefault; TreeView1.Items.EndUpdate; end; end; Помогите, пожалуйста, переделать эту процедуру так, чтобы оно искало не все файлы, а только *.jpg |
![]() |
![]() |
![]() |
#16 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
Так, стоп... Ошибочка вкралась...
В этом виде: if FindFirst(Directory + '*.jpg', faDirectory, SearchRec) = 0 then она будет искать только каталоги (faDirectory), а нужны файлы (faAniFiles)... Последний раз редактировалось mihali4; 02.12.2008 в 20:15. |
![]() |
![]() |
![]() |
#17 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]()
та я бы давно ну его нафиг ))) но сдавать-то надо.....
|
![]() |
![]() |
![]() |
#18 |
Форумчанин
Регистрация: 24.03.2007
Сообщений: 314
|
![]() |
![]() |
![]() |
![]() |
#19 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 500
|
![]()
Skype : UASm1Le.
|
![]() |
![]() |
![]() |
#20 |
Форумчанин
Регистрация: 31.10.2008
Сообщений: 500
|
![]()
а вы уверенны что там где вы ищите есть файлы которые надо найти ! ?
Skype : UASm1Le.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
TreeView и БД | Constellation | БД в Delphi | 12 | 27.09.2008 15:22 |
TreeView | _SERGEYX_ | Общие вопросы Delphi | 1 | 01.09.2008 17:29 |
Treeview | forzi | Помощь студентам | 4 | 04.05.2008 23:50 |
TreeView и текст | Stanislav | Общие вопросы Delphi | 5 | 28.03.2008 00:25 |