Форум: "Начинающим";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
ВнизРеакция на открытие папки Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.039 c