Помощь - Поиск - Пользователи - Календарь
Полная версия: Еще несколько вопросов :)
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
Dim
Подскажите плиз:

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
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;
Dim
Цитата(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-
Метод не работает для CD! Вместо пути к файлу PathName содержит путь к папке содержащей файл. А свойство DisplayName может не содержать расширения! Что делать? подскажите!
hardcase
Попробуй использовать вместо
Код
RightStr(ExtractFileName(AFolder.PathName),4)
Нормальную функцию
Код
ExtractFileExt(const S: string)
для вычленения расширения файла - у тебя наверно там в юникоде пути прописаны.

А, извини, невнимательно прочитал пост. У меня сейчас в D7 не стоят Shell компоненты, обидно.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.