IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Еще несколько вопросов :), Фильтр ShellTreeView, слежение за прогой
Dim
сообщение 11.09.2005 16:47
Сообщение #1


Гость






Подскажите плиз:

1. Как сделать фильтр в ShellTreeView чтобы отображались только папки и ЕХЕфайлы? Стандартные настройки типа ObjectTypes не дают такой возможности...

2. Я запускаю чужую прогу вот так:
 if WinExec(PChar(GamePath), SW_SHOW)<32 then
Application.MessageBox(PChar(wMsg1), PChar(wCap), MB_OK + MB_ICONWARNING);

Как сделать, чтобы моя программа после запуска другой заныкалась от юзеря, но не закрылась. А вот когда пользователь закроет ту другую прогу (GamePath), то чтоб автоматом закрылась и моя unsure.gif
 К началу страницы 
+ Ответить 
hiv
сообщение 13.09.2005 11:57
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


1) Создаешь обработчик события onAddFolder:
procedure TForm1.ShellTreeView1AddFolder(Sender: TObject;
AFolder: TShellFolder; var CanAdd: Boolean);
begin
CanAdd := (AFolder.IsFolder)or((not AFolder.IsFolder)and
(UpperCase(RightStr(ExtractFileName(AFolder.PathName),4))='.EXE'));
end;


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Dim
сообщение 13.09.2005 19:13
Сообщение #3


Гость






Цитата(hiv @ 13.09.05 11:57)
1) Создаешь обработчик события onAddFolder:
procedure TForm1.ShellTreeView1AddFolder(Sender: TObject;
  AFolder: TShellFolder; var CanAdd: Boolean);
begin
  CanAdd := (AFolder.IsFolder)or((not AFolder.IsFolder)and
            (UpperCase(RightStr(ExtractFileName(AFolder.PathName),4))='.EXE'));
end;

Спасибо! Супер =)
 К началу страницы 
+ Ответить 
-Boris-
сообщение 30.01.2006 10:12
Сообщение #4


Гость






Метод не работает для CD! Вместо пути к файлу PathName содержит путь к папке содержащей файл. А свойство DisplayName может не содержать расширения! Что делать? подскажите!
 К началу страницы 
+ Ответить 
hardcase
сообщение 30.01.2006 11:27
Сообщение #5


code warrior
****

Группа: Пользователи
Сообщений: 484
Пол: Мужской
Реальное имя: Славен

Репутация: -  8  +


Попробуй использовать вместо
Код
RightStr(ExtractFileName(AFolder.PathName),4)
Нормальную функцию
Код
ExtractFileExt(const S: string)
для вычленения расширения файла - у тебя наверно там в юникоде пути прописаны.

А, извини, невнимательно прочитал пост. У меня сейчас в D7 не стоят Shell компоненты, обидно.

Сообщение отредактировано: hardcase - 30.01.2006 11:37


--------------------
ИзВ ин ИтЕ зА нЕ рОв НЫй П оч ЕРк
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 12.07.2025 10:30
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"