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

Вниз

OpenDialog   Найти похожие ветки 

 
Shumov D. ©   (2003-03-28 17:16) [0]

У компонента OpenDialog усть propertie: InitialDir, тоесть чтобы при открытии диалог открывался в заранее определенной директории. У меня вопрос: а если мне полный путь дирректории не известен известна только конечная папка например skins что тогда надо написать InitialDir. Поясню на примере есть программа она находится в папке "1" у нее есть подпапка "2" в программе надо выбирать файл из папки "2", но при этом не известно где пользаватель разместит программу, т.е. надо чтобы полюбому OpenDialog открывался в папке "2" не зависимо от того где расположена программа.


 
Skier ©   (2003-03-28 17:17) [1]

TApplication.ExeName ?


 
QUE ©   (2003-03-28 17:17) [2]

ExtractFilePAth(Application.Exename)+"2/filename.ext"


 
Shumov D. ©   (2003-03-28 17:23) [3]

нет, немного не то. Приведу обработчик как у меня есть сейчас:
procedure TForm1.Button1Click(Sender: TObject);

begin
if OpenDialog1.Execute then
begin
edPath.Text := OpenDialog1.FileName;
SkinData1.SkinFile:= edPath.Text;
end;
end;

файл всегда разный, и от этого зависит поведение программы


 
Anatoly Podgoretsky ©   (2003-03-28 17:23) [4]

QUE © (28.03.03 17:17)
Это же не Линукс


 
Anatoly Podgoretsky ©   (2003-03-28 17:25) [5]

OpenDialog.InitialDir := ExtractFilePath(Application.Exename)+"2";


 
Shumov D. ©   (2003-03-28 17:26) [6]

Пробовал как в html указывать InitialDir как ./2, ошибку при компиляции не выдает, но и не делает то, что нужно


 
Shumov D. ©   (2003-03-28 17:29) [7]


> Anatoly Podgoretsky © (28.03.03 17:25)
> OpenDialog.InitialDir := ExtractFilePath(Application.Exename)+"2";

нет, не получается, не открывает он нужную директорию


 
Palladin ©   (2003-03-28 17:32) [8]

OpenDialog.InitialDir:=ExtractFilePath(ParamStr(0))+"1\2";


 
NickBat ©   (2003-03-28 17:32) [9]

Нет под рукой Делфи, но кажется забыли слеш поставить

ExtractFilePath(Application.Exename)+"2";
ExtractFilePath(Application.Exename)+"\2";


 
Anatoly Podgoretsky ©   (2003-03-28 17:33) [10]

Приводи код, должно работать и вставь тестовую строку перед вызовом ShowMessage(OpenDialog.InitialDir), скажешь что покажет и соответстувует ли твоим ожиданиям.


 
Anatoly Podgoretsky ©   (2003-03-28 17:35) [11]

Palladin © (28.03.03 17:32)
Получится "d:\1\1\2";


NickBat © (28.03.03 17:32)
Получится "d:\1\\2";





 
Shumov D. ©   (2003-03-28 17:40) [12]


> Anatoly Podgoretsky © (28.03.03 17:33)
> Приводи код, должно работать и вставь тестовую строку перед
> вызовом ShowMessage(OpenDialog.InitialDir), скажешь что
> покажет и соответстувует ли твоим ожиданиям

Вот код:
procedure TForm1.Button1Click(Sender: TObject);

begin
if OpenDialog1.Execute then
begin
OpenDialog1.InitialDir := ExtractFilePath(Application.Exename)+"skins";
ShowMessage(OpenDialog1.InitialDir);
edPath.Text := OpenDialog1.FileName;
SkinData1.SkinFile:= edPath.Text;
end;
end;

В ShowMessage выводит правильный путь, но диалог открывается совсем не там где нужно.


 
Shumov D. ©   (2003-03-28 17:44) [13]

> Anatoly Podgoretsky © (28.03.03 17:33)
> Приводи код, должно работать и вставь тестовую строку перед
> вызовом ShowMessage(OpenDialog.InitialDir), скажешь что
> покажет и соответстувует ли твоим ожиданиям

Вот код:
procedure TForm1.Button1Click(Sender: TObject);

begin
if OpenDialog1.Execute then
begin
OpenDialog1.InitialDir := ExtractFilePath(Application.Exename)+"skins";
ShowMessage(OpenDialog1.InitialDir);
edPath.Text := OpenDialog1.FileName;
SkinData1.SkinFile:= edPath.Text;
end;
end;
В ShowMessage выводит правильный путь, но диалог открывается совсем не там где нужно.


 
Palladin ©   (2003-03-28 17:47) [14]


> Anatoly Podgoretsky © (28.03.03 17:35)

точно... мне показалось что у него два уровня вложености после папки программы...

> Shumov D. © (28.03.03 17:44)

батенька! не путайтесь в логике исполнения
OpenDialog1.InitialDir := ExtractFilePath(Application.Exename)+"skins";
if OpenDialog1.Execute then
begin
edPath.Text := OpenDialog1.FileName;
SkinData1.SkinFile:= edPath.Text;
end;


 
Anatoly Podgoretsky ©   (2003-03-28 17:49) [15]

Ну и будем тебя допрашивать какой именно путь открывается, какие у тебя установки ссвойств в OpenDialog1?
Во вторых почему ты устанавливаешь нужный тебе путь после, а не до?


 
Shumov D. ©   (2003-03-28 17:56) [16]

To Palladin: спасибо за указание на ошибку.
To ALL: всем спасибо, все получилось как надо



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

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

Наверх




Память: 0.5 MB
Время: 0.012 c
14-19775
DeMoN-777
2003-03-21 16:30
2003.04.07
Cgi


3-19442
Scaramanga
2003-03-18 11:16
2003.04.07
Access и Delphi


3-19425
Liris
2003-03-18 11:39
2003.04.07
1С и Delphi ???


1-19676
N&N
2003-03-24 13:00
2003.04.07
Форматирование ячеек Excel


1-19636
AFrolov
2003-03-25 14:20
2003.04.07
Использование DLL из программы