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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.11.2008, 17:11   #11
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 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=""
yulia вне форума Ответить с цитированием
Старый 18.11.2008, 17:17   #12
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

Я кажется поняла.... если так заменить проверку и выбрать файл, который находится в корне диска, то за счет того, что диск выбирается отдельно, он не считается родителем и путь получается не полный.... значит надо как-то приписать его в начало пути )))
yulia вне форума Ответить с цитированием
Старый 18.11.2008, 17:29   #13
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 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.
yulia вне форума Ответить с цитированием
Старый 18.11.2008, 18:37   #14
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

Все, всем спасибо ))) получилось )))
yulia вне форума Ответить с цитированием
Старый 02.12.2008, 17:29   #15
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 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
yulia вне форума Ответить с цитированием
Старый 02.12.2008, 18:14   #16
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Так, стоп... Ошибочка вкралась...
В этом виде:
if FindFirst(Directory + '*.jpg', faDirectory, SearchRec) = 0 then
она будет искать только каталоги (faDirectory), а нужны файлы (faAniFiles)...

Последний раз редактировалось mihali4; 02.12.2008 в 20:15.
mihali4 вне форума Ответить с цитированием
Старый 02.12.2008, 18:17   #17
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

та я бы давно ну его нафиг ))) но сдавать-то надо.....
yulia вне форума Ответить с цитированием
Старый 02.12.2008, 18:18   #18
yulia
Форумчанин
 
Аватар для yulia
 
Регистрация: 24.03.2007
Сообщений: 314
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
if FindFirst(Directory + '*.*', faDirectory, SearchRec) = 0 then
=>
if FindFirst(Directory + '*.jpg', faDirectory, SearchRec) = 0 then

Так трудно дается? Может, ну его нафиг?

не настолько трудно ))) пробовала, оно в таком случае вообще ничего не находит...
yulia вне форума Ответить с цитированием
Старый 02.12.2008, 18:19   #19
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Может, ну его нафиг?
....
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Старый 02.12.2008, 18:23   #20
Sm1Le
Форумчанин
 
Аватар для Sm1Le
 
Регистрация: 31.10.2008
Сообщений: 500
По умолчанию

а вы уверенны что там где вы ищите есть файлы которые надо найти ! ?
Skype : UASm1Le.
Sm1Le вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
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