![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
текущая директория
Wall © (2007-02-20 10:45:00)Здравствуйте. Обьясните пожалуйста, может ли текущая директория поменяться самопроизвольно во время работы, можно ли спокойно работать,
используя относительные пути к файлам и не проверять GetCurrentDir.
И вообще где она записана физически? В самом приложении или где-то
еще?
iXT (2007-02-20 22:14:00) [1]
> Плохиш © (20.02.07 22:05) [16]
Смотря что делает super.exe :) Может там SetCurrentDir.
Плохиш (2007-02-20 22:05:00) [2]
> А вот насчет ярлыка - эт точно.
Какой-такой ярлык-марлык?c:\tmp> d:\bbb\super.exeЧто вернёт GetCurrentDir и какое отношение это будет иметь к "дир проги"?
Плохиш (2007-02-20 22:01:00) [3]
> Elen © (20.02.07 10:50) [1]
> GetCurrentDir показывает дир проги.
С чего бы это?
Loginov Dmitry (2007-02-20 18:17:00) [4]> удобно писать пути относительно exe.
Ну так и пиши
MyApplicationDir + MyRelativePath
Reindeer Moss Eater (2007-02-20 15:46:00) [5]Текущая директория поменяться самопроизвольно не может.
Wall (2007-02-20 14:19:00) [6]> Вон, с любым диалогом CurrDir меняется.
sorry, я не использую vcl вообще.
данные могут читаться как из файлов, так
и из архива - удобно писать пути относительно exe. кроме того
"читатели" ничего не знают о том, откуда в данный момент берутся файлы.
стоит переделать?
Ega23 (2007-02-20 11:56:00) [7]
> Никогда не сталкиваюсь с такой проблемой т.к. пользуюсь
> Application.exename
Application не всегда есть. Именно поэтому и написал в [3] ParamStr(0)
Reindeer Moss Eater (2007-02-20 11:54:00) [8]Текущая директория поменяться самопроизвольно не может.
Elen (2007-02-20 11:53:00) [9]
> Вон, с любым диалогом CurrDir меняется.
Никогда не сталкиваюсь с такой проблемой т.к. пользуюсь Application.exename
Ega23 (2007-02-20 11:49:00) [10]
> Дык я думала что автор имеет ввиду стороннюю прогу. А вот
> насчет ярлыка - эт точно.
Тут не только ярлык. Вон, с любым диалогом CurrDir меняется.
Elen (2007-02-20 11:33:00) [11]
> Ega23 © (20.02.07 11:01) [6]
Дык я думала что автор имеет ввиду стороннюю прогу. А вот насчет ярлыка - эт точно.
Ega23 (2007-02-20 11:01:00) [12]
> Врядли. 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.
:)
ЮЮ (2007-02-20 11:00:00) [13]
> Врядли. GetCurrentDir показывает дир проги.
И что такое 'дир проги.'?
Если запустить с помощью ярлыка, то указывает путь, указанный в "Рабочая папка"
Wall (2007-02-20 11:00:00) [14]ok, спасибо
Ega23 (2007-02-20 10:57:00) [15]
> Обьясните пожалуйста, может ли текущая директория поменяться
> самопроизвольно во время работы
Да.
> можно ли спокойно работать,
> используя относительные пути к файлам и не проверять GetCurrentDir.
>
> И вообще где она записана физически? В самом приложении
> или где-то
> еще?
Объяви глобальную переменную MyApplicationDir : string;, в самом начале проинициализируй её как
MyApplicationDir := ExtractFilePath(ParamStr(0));
и используй дальше её.
Wall (2007-02-20 10:55:00) [16]> GetCurrentDir показывает дир проги.
либо показывает значение, установленное SetCurrentDir
Elen (2007-02-20 10:50:00) [17]
> может ли текущая директория поменяться самопроизвольно
> во время работы
Врядли. GetCurrentDir показывает дир проги.