Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.008 c
1-19592
ewgeny
2003-03-27 10:41
2003.04.07
указатель на структуру


7-19898
Димон
2003-02-13 21:14
2003.04.07
Как програмно изменять скорость сидюка???


3-19453
Кирк
2003-03-18 16:38
2003.04.07
проблема с ODBC


14-19768
GDBoy
2003-03-20 20:50
2003.04.07
Посоветуйте, плз, на каких сайтах можно найти хорошие книги...


3-19434
off
2003-03-18 13:41
2003.04.07
Иной способ?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский