Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.03.26;
Скачать: CL | DM;

Вниз

Реакция на открытие папки   Найти похожие ветки 

 
Der Nechk@ssoff ©   (2006-03-10 13:57) [0]

Здраствуйте!Можно ли в Delphi сделать так чтобы при попытке открыть Nную папку открывалась прога (Сделаная тоже в Delphi),если можно то как?


 
Плохиш ©   (2006-03-10 13:59) [1]

А делфи тут при чём? Это функции системы.


 
Der Nechk@ssoff ©   (2006-03-10 14:02) [2]

Ну в смысле чтобы прга реагировала на попытку открытия папки(если так нельзя то как сделать тоже самое только по отношению к файлу)


 
Плохиш ©   (2006-03-10 14:11) [3]


> Реакция на открытие папки

Кстати, cd c:\tmp это открытие папки?


 
Mozgan   (2006-03-10 16:30) [4]

Привет!

Я  тоже сейчас решаю подобную проблему :)
Я так понимаю запустить файл? Если это файл с расширение *.txt то как следовательно запустить Блокнот?

Держи кусок рабочего кода, может пригодится :)))

Поясню:
В listBox1 содержатся все найденные файлы с помощью FindFirst...
label5 - полное имя файла (с путюм).


procedure TForm1.ListBox1DblClick(Sender: TObject);
var i: integer;
begin
 for i:=0 to listbox1.Items.Count-1 do
 if listbox1.Selected[i]then
 shellapi.ShellExecuteA(application.Handle,"open",pchar(label5.Caption),nil,nil,S W_SHOW);
end;


 
oldman ©   (2006-03-10 16:34) [5]


> Можно ли в Delphi сделать так чтобы при попытке открыть
> Nную папку


А чем папку окрываешь, если не секрет?
если FileOpenDialog. то никак...
если чем-то другим, то... ЧЕМ???


 
Mozgan   (2006-03-10 16:37) [6]

А что ты делаешь? В чем задача-то? жду :)


 
Mozgan   (2006-03-10 16:49) [7]

Короче вот мой код:

procedure TForm1.Button1Click(Sender: TObject);
var
 SR: TSearchrec;
 attr: integer;
 dir: string;
begin
 listbox1.Clear;
 dir:= Pchar(label1.Caption);
 attr:=faAnyFile;
 if FindFirst(dir,attr,SR)=0 then
 repeat
   listbox1.Items.Add(SR.Name);
 until
   Findnext(SR)<>0;
   findclose(SR);
end.

/---------------------------------/
//запустим файл или откроем папку
procedure TForm1.ListBox1DblClick(Sender: TObject);
var i: integer;
begin
 for i:=0 to listbox1.Items.Count-1 do
 if listbox1.Selected[i]then
 shellapi.ShellExecuteA(application.Handle,"open",pchar(label5.Caption),nil,nil,S W_SHOW);
end;

Копируй в свою прогу и работай. :)

p.s. если чт я не МАСТЕР!
так самоучка :)
Удачи!


 
Dedaulus   (2006-03-11 17:17) [8]

Чтобы вызвать диалог выбора папки используйте функцию:

Uses ShellAPI, ShlObj;

function OpenDir: string;
var
   TitleName : string;
   lpItemID : PItemIDList;
   BrowseInfo : TBrowseInfo;
   DisplayName : array[0..MAX_PATH] of char;
   TempPath : array[0..MAX_PATH] of char;
begin
  FillChar(BrowseInfo, sizeof(TBrowseInfo), #0);
  BrowseInfo.hwndOwner := Form1.Handle;
  BrowseInfo.pszDisplayName := @DisplayName;
  TitleName := "Please specify a directory";
  BrowseInfo.ulFlags := BIF_RETURNONLYFSDIRS;
  lpItemID := SHBrowseForFolder(BrowseInfo);
  if lpItemId <> nil then
  begin
     SHGetPathFromIDList(lpItemID, TempPath);
     Result := TempPath;
     GlobalFreePtr(lpItemID);
  end;
end;


 
Der Nechk@ssoff ©   (2006-03-13 11:53) [9]

Спасибо!Пашет.



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

Текущий архив: 2006.03.26;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
1-1140277657
Игорь Степанов
2006-02-18 18:47
2006.03.26
Вывод bitmap-изображения на канву компонента Image


2-1141838875
Adios
2006-03-08 20:27
2006.03.26
Проблема с процедурой


2-1141845624
Новочеркасский Волк
2006-03-08 22:20
2006.03.26
Подскажиет коды для "вредных" клавиш.


15-1141632664
Бугага
2006-03-06 11:11
2006.03.26
Запустить PHP скрипт в планировщике


1-1140428731
Ega23
2006-02-20 12:45
2006.03.26
Активизация/Деактивизация Frame