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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.031 c
2-1171985997
Vlad Oshin
2007-02-20 18:39
2007.03.11
Передать фокус в dbgrig(ячейку) из WebBrowser. не получается


2-1171639805
@gent
2007-02-16 18:30
2007.03.11
Создание папки


2-1171645054
RedBanner
2007-02-16 19:57
2007.03.11
Хитрость


2-1171717962
Evgeniy Gordeev
2007-02-17 16:12
2007.03.11
Проблемы с MS Outlook 2003


15-1170606148
DemonP
2007-02-04 19:22
2007.03.11
Electronics Workbench.512