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

Вниз

текущая директория   Найти похожие ветки 

 
Wall   (2007-02-20 10:45) [0]

Здравствуйте. Обьясните пожалуйста, может ли текущая директория поменяться самопроизвольно во время работы, можно ли спокойно работать,
используя относительные пути к файлам и не проверять GetCurrentDir.
И вообще где она записана физически? В самом приложении или где-то
еще?


 
Elen ©   (2007-02-20 10:50) [1]


>  может ли текущая директория поменяться самопроизвольно
> во время работы

Врядли. GetCurrentDir показывает дир проги.


 
Wall   (2007-02-20 10:55) [2]

> GetCurrentDir показывает дир проги.
либо показывает значение, установленное SetCurrentDir


 
Ega23 ©   (2007-02-20 10:57) [3]


> Обьясните пожалуйста, может ли текущая директория поменяться
> самопроизвольно во время работы


Да.


> можно ли спокойно работать,
> используя относительные пути к файлам и не проверять GetCurrentDir.
>
> И вообще где она записана физически? В самом приложении
> или где-то
> еще?


Объяви глобальную переменную MyApplicationDir : string;, в самом начале проинициализируй её как
MyApplicationDir := ExtractFilePath(ParamStr(0));
и используй дальше её.


 
Wall   (2007-02-20 11:00) [4]

ok, спасибо


 
ЮЮ ©   (2007-02-20 11:00) [5]


> Врядли. GetCurrentDir показывает дир проги.

И что такое "дир проги."?
Если запустить с помощью ярлыка, то указывает путь, указанный в "Рабочая папка"


 
Ega23 ©   (2007-02-20 11:01) [6]


> Врядли. GetCurrentDir показывает дир проги.
>


А как тебе такое:


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtDlgs, ExtCtrls;

type
 TForm1 = class(TForm)
   Image1: TImage;
   OpenPictureDialog1: TOpenPictureDialog;
   Button1: TButton;
   Button2: TButton;
   Label1: TLabel;
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
 if not OpenPictureDialog1.Execute then Exit;
 Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Label1.Caption := GetCurrentDir;
end;

end.


:)


 
Elen ©   (2007-02-20 11:33) [7]


> Ega23 ©   (20.02.07 11:01) [6]

Дык я думала что автор имеет ввиду стороннюю прогу. А вот насчет ярлыка - эт точно.


 
Ega23 ©   (2007-02-20 11:49) [8]


> Дык я думала что автор имеет ввиду стороннюю прогу. А вот
> насчет ярлыка - эт точно.


Тут не только ярлык. Вон, с любым диалогом CurrDir меняется.


 
Elen ©   (2007-02-20 11:53) [9]


> Вон, с любым диалогом CurrDir меняется.

Никогда не сталкиваюсь с такой проблемой т.к. пользуюсь Application.exename


 
Reindeer Moss Eater ©   (2007-02-20 11:54) [10]

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


 
Ega23 ©   (2007-02-20 11:56) [11]


> Никогда не сталкиваюсь с такой проблемой т.к. пользуюсь
> Application.exename


Application не всегда есть. Именно поэтому и написал в [3] ParamStr(0)


 
Wall   (2007-02-20 14:19) [12]

> Вон, с любым диалогом CurrDir меняется.
sorry, я не использую vcl вообще.
данные могут читаться как из файлов, так
и из архива - удобно писать пути относительно exe. кроме того
"читатели" ничего не знают о том, откуда в данный момент берутся файлы.
стоит переделать?


 
Reindeer Moss Eater ©   (2007-02-20 15:46) [13]

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


 
Loginov Dmitry ©   (2007-02-20 18:17) [14]

> удобно писать пути относительно exe.


Ну так и пиши

MyApplicationDir + MyRelativePath


 
Плохиш ©   (2007-02-20 22:01) [15]


> Elen ©   (20.02.07 10:50) [1]
> GetCurrentDir показывает дир проги.

С чего бы это?


 
Плохиш ©   (2007-02-20 22:05) [16]


> А вот насчет ярлыка - эт точно.

Какой-такой ярлык-марлык? c:\tmp> d:\bbb\super.exe Что вернёт GetCurrentDir и какое отношение это будет иметь к "дир проги"?


 
iXT ©   (2007-02-20 22:14) [17]


> Плохиш ©   (20.02.07 22:05) [16]

Смотря что делает super.exe :) Может там SetCurrentDir.



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

Форум: "Начинающим";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.039 c
11-1150184429
DevilDevil
2006-06-13 11:40
2007.03.11
эквивалент SpinEdit? Key preview?


15-1171283075
WondeRu
2007-02-12 15:24
2007.03.11
Vista для разработчика


15-1171275632
Layner
2007-02-12 13:20
2007.03.11
Кто знает, какие на mail.ru ограничения по отправке писем в день?


15-1171262859
Карелин Артем
2007-02-12 09:47
2007.03.11
Витамины пьете? Если да то какие?


2-1171716285
@gent
2007-02-17 15:44
2007.03.11
Дирректория запуска программы.





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский