Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > GetCurrentDir


Автор: artem1987 4.9.2006, 13:32
как получит путь к директории в котором лежит проект?
GetDir или GetCurrentDir дает C:\Program Files\Common Files\.....

Автор: Snowy 4.9.2006, 13:36
Код

ExtractFileDir(ParamStr(0));
GetDir даёт правильное значение - это текущая папка, а не папка программы.

Автор: artem1987 4.9.2006, 14:01
спасибо ,а как работать с типом TSearchRec 
сложность возникает с тем как передать значение поля этой структуры типа TFileName в функцию FileOpen 
где используется string?

Автор: Yanis 4.9.2006, 14:08
artem1987
Код
var
  s: string
begin
  func(TFileName(s));
end;

Автор: artem1987 4.9.2006, 14:13
так у меня этот TFileName есть мне бы из него вытащить стринг

Автор: Alexeis 4.9.2006, 14:49
Код

procedure TForm1.FormCreate(Sender: TObject);
var
  s : TSearchRec;
begin
  s.Name := ExtractFileDir(ParamStr(0));
end;

Автор: Yanis 4.9.2006, 15:02
artem1987
Это может повергнуть тебя в шок, но TFileName и есть string.

Автор: artem1987 4.9.2006, 15:11
alexeis1, спасибо,этим я и занимаюсь только SearchRec получаю из FindFirst
а вот тогда подскажите почему SR.Name  : TFileName не присваевается переменной s : string?

Автор: Snowy 4.9.2006, 15:12
Цитата(artem1987 @  4.9.2006,  14:13 Найти цитируемый пост)
так у меня этот TFileName есть мне бы из него вытащить стринг
Они совместимы.
ЗЫ. Посмотри справку по FindFirst - там есть подробный пример.

Автор: Alexeis 4.9.2006, 15:26
Цитата(artem1987 @  4.9.2006,  15:11 Найти цитируемый пост)
SR.Name  : TFileName не присваевается переменной s : string? 

Как не присвивается? Только что проверил:
Код

var
  schr : TSearchRec;
  s    : AnsiString;
begin
  s := schr.Name;
  schr.Name := s;
end;

все компилится без ошибок!

Автор: artem1987 4.9.2006, 16:34
может это просто в watches не видно

Автор: Alexeis 4.9.2006, 16:47
Цитата(artem1987 @  4.9.2006,  16:34 Найти цитируемый пост)
может это просто в watches не видно 

Это не имеет значение - экзешник то запускается...

Автор: Akella 6.9.2006, 08:36
Код
ExtractFileDir(Application.exename);

Автор: Snowy 6.9.2006, 09:43
Akella, привет... Ты уже вышел из анабиоза? smile Ответ давно дан smile

Application.exename - это частный случай.
Exename - это пропертя. 
Код

property ExeName: string read GetExeName;

function TApplication.GetExeName: string;
begin
  Result := ParamStr(0);
end;
Спрашивается - нафига нам такие завороты, когда можно получить напрямую и будет работать всегда, а не только с формами: 
Цитата(Snowy @  4.9.2006,  13:36 Найти цитируемый пост)
ExtractFileDir(ParamStr(0));

Автор: Akella 6.9.2006, 10:45
Цитата(Snowy @  6.9.2006,  09:43 Найти цитируемый пост)
Akella, привет... Ты уже вышел из анабиоза?  Ответ давно дан 

да я же просто привёл ещё один вариант, не был я в анбиозе

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)