Tämä toimii, kun ohjelmatiedoston sijainti tunnetaan. Ohjelman
asennusvaiheessa hakureitti voi olla siis melkeimpä mitä tahansa.
Esim. InnoSetup tekee asennus vaiheessa näin : DestDir: "{app}
\IniFiles";
Tuosta {app} en ole löytänyt mitään TIniFiles luokassa.
Kuinka saisi toimimaan tyyliin :
[User]
Profiele={app}\Profiles\default.pro
Tarkoituksena on siis, että ensikäyttäjän ei tarvitse lähteä aivan
tyhjältä pöydältä, vaan oletusarvot ovat tuossa default.pro
tiedostossa.
Eki
Miksi et käytä suhteellista polkua profiilin määrktyksessä? Tyyliin:
Profiele=.\Profiles\default.pro
silloinhan voit ohjelmassa tarkistaa onko kyseessä absoluuttinen polku
ja jos ei niin voit muodostaa koko polun ajonaikaisesti hakemalla
ohjelman polun ja yhdistämällä sen määritettyyn suhteelliseen polkuun.
Esim.
var appPath: string;
begin
if ( OnkoSuhteellinenPolku(iniPolku) ) then begin
appPath := ... // Haet ohjelman polun, vaikka
// GetModuleFileName:a käyttämällä.
// Liität suhteellisen polun perään
appPath := appPath + iniPolku;
end
else begin
// Absoluuttinen polku. ei tarvi tehdä mitään
end
Asko.
--
It is not necessary to understand things in order to argue about them.
Pierre Beaumarchais (1732 - 1799)
Jos käsitin kysymyksesi oikein, suosittelen että vilkaiset mitä
ParamStr(0) tai Application.ExeName palauttavat.
=> pitäisi löytyä .exe tiedoston nimi polkuineen.
Siitä ExtractFilePath antaa polun.
jl
Tuo on aivan OK kun polkua tutkitaan ohjelmasta, mutta ajatusena oli
lukea polku INI tiedostosta.
Löysin vähän yksinkertaisemman ratkaisun ilman rekursiota.
Tuo .\Profiles\ vaikuttaa toimivalta, vaikka en ole vielä kokeillut.
Kiitokset vinkeistä.
Eki