Главная страница
    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.043 c
15-1171455223
Kenny
2007-02-14 15:13
2007.03.11
Monitor


2-1171724058
Norfolk
2007-02-17 17:54
2007.03.11
TPageControl запись в поле Edit на второй вкладке.


2-1171856337
A$$embler
2007-02-19 06:38
2007.03.11
Эквалайзер на Delphi7


2-1171046515
jon007
2007-02-09 21:41
2007.03.11
Получение напряжений блока питания средствами Delphi


5-1149513099
Gleb
2006-06-05 17:11
2007.03.11
Подскажите как в компоненте TTreeView через edit1.text добавить н





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