![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Место положение .exe
Nathan © (2010-05-23 20:48:00)Столкнулся с проблемой. Для получения место положения программы использовал код:
function AppPath: string;
begin
Result := ExtractFilePath(Application.ExeName);
end;
Далее типа: INI := TIniFile.Create(AppPath +'\' + 'setting.ini');
Все работало прекрасно, пока не не потребовалось открыть ассоциированный файл с программой. Вот тут и начались подводные камни. Функция возвращает путь файла, а не программы. Так же, если в .nix под wine запустить по ссылки путь будет браться путь ссылки, а не там где лежит программа.
Так понимаю, что привет ты возникают из за передачи параметров ParamStr.
Вот и не пойму как разрулить эту ситуации. Может кто помочь?
Игорь Шевченко (2010-05-23 21:59:00) [1]
> Вот и не знаю, что с этим делать
справку читать
antonn (2010-05-23 21:13:00) [2]ParamStr(0) содержит полный путь к программе. ParamCount указывает на кол-во переданных параметров программе.
Nathan (2010-05-23 21:01:00) [3]Действительно со сплешем ошибочка вышла, писал по памяти, зачем то воткнул. Понимаю, что привет из за:
procedure TForm.FormShow(Sender: TObject);
var
str: string;
i: Integer;
begin
if (ParamCount > 0) then
begin
Str := ParamStr(1);
for i := 2 to ParamCount do
begin
Str := Str + ' ' + ParamStr(i);
end;
ManualOpen(Str);
end;
end;
Вот и не знаю, что с этим делать
Ega23 (2010-05-23 20:57:00) [4]смотри ParamStr, ParamCount.
Объекта Application может и не быть.
antonn (2010-05-23 20:51:00) [5]ExtractFilePath() возвращает путь уже со слешем.
c getcurrentdirectory() не путаете?