Suhteellisen polun määrittely

koodissa

Delphisovelluksessa voin avata sovelluksen Help-filen (vanhan mallinen *.hlp)seuraavalla käskyllä.

ShellExecute(Handle, 'open', 'HELP.HLP',nil,nil, SW_SHOWNORMAL);

Kaikki menee hyvin niin kauan kun tallennan ohjelman työtiedostot ohjelman asennushakemistoon, josta ohjelma on avattu. Mutta jos tallennan muualle niin Help ei enää avaudukaan, ohjelma ei löydä Helppiä (polku kadoksissa?). Eli tarttis siis määritellä Helpin polku tarkkaan seuraavaan tapaan:

ShellExecute(Handle, 'open', '\suhteellinenohjelmistopolku\Omasovellushakemisto\HELP.HLP',nil,nil, SW_SHOWNORMAL);

Mutta - miten määritellään tuo suhteellinen polku, eli mistä ohjelma löytää ohjelman oman hakemiston (ohjelmahan on asennettu asennusohjelmalla tiettyyn hakemistoon, joka on Windowsin tiedossa kyllä, mutta miten palautan tuon ohjelman hakemistopolun?

P.S.
html-helppi-file HELP.chm ei avaudu edes tuolla ekalla koodiversiolla missähän vika...?

5

337

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • ------------------

      Ei ole nyt Delphiä käsillä mutta minkä arvon saa seuraava lause:

      kerro_vastaus:=ExtractFilePath(Application.ExeName);

      • koodissa

        Kiitos vinkistä.
        Tämä toimii, kun haluaa käynnistää Helpin aina ohjelman kotihakemistosta:

        var ohjelmapolku : string;
        begin
        ohjelmapolku := ExtractFilePath(Application.ExeName);
        ohjelmapolku := ohjelmapolku 'HELP.HLP';
        ShellExecute(Handle, PChar(ohjelmapolku), vali,nil,nil, SW_SHOWNORMAL);
        end;


      • toimii2
        koodissa kirjoitti:

        Kiitos vinkistä.
        Tämä toimii, kun haluaa käynnistää Helpin aina ohjelman kotihakemistosta:

        var ohjelmapolku : string;
        begin
        ohjelmapolku := ExtractFilePath(Application.ExeName);
        ohjelmapolku := ohjelmapolku 'HELP.HLP';
        ShellExecute(Handle, PChar(ohjelmapolku), vali,nil,nil, SW_SHOWNORMAL);
        end;

        Oops, painovirhe 5 rivillä('vali' pois), oikea muoto selvyden vuoksi tässä:

        var ohjelmapolku : string;
        begin
        ohjelmapolku := ExtractFilePath(Application.ExeName);
        ohjelmapolku := ohjelmapolku 'HELP.HLP';
        ShellExecute(Handle, PChar(ohjelmapolku),nil,nil, SW_SHOWNORMAL);
        end;


      • D_teuska_
        toimii2 kirjoitti:

        Oops, painovirhe 5 rivillä('vali' pois), oikea muoto selvyden vuoksi tässä:

        var ohjelmapolku : string;
        begin
        ohjelmapolku := ExtractFilePath(Application.ExeName);
        ohjelmapolku := ohjelmapolku 'HELP.HLP';
        ShellExecute(Handle, PChar(ohjelmapolku),nil,nil, SW_SHOWNORMAL);
        end;

        // Get full application path exename
        ParamStr(0);

        Elikkäs sovelluksen parametrien 0. indeksi sisältää
        koko polun sekä sovelluksen *.exe nimen..


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Täytyi haukkuu sut lyttyyn

      En haluu tuntee rakkautta sua kohtaan enää ja haluun unohtaa sut mut sit tulee kuiteki paha olo kun haluis vaan oikeesti
      Ikävä
      62
      1725
    2. SINÄ nainen hyvin läheltä

      Pidän sinusta. Mutta mene ensin juttelemaan lääkärin luokse, ja hoida itsesi kuntoon. Sit kun sä olet kunnossa, niin mä
      Ikävä
      67
      1041
    3. 45
      1035
    4. Et voi olla loputtomasti hiljaa

      Nainen. Tarkoitan siis meidän juttua. Eihän tämä tällaiseen epätietoisuuteen voi jäädä siinä vaan särkyy kumpikin. Kerto
      Ikävä
      63
      963
    5. Ajatus aamuun

      Tämä jollekin tärkeälle. On asioita mistä jutellaan, on asioita mistä vitsaillaan, on myös asioita mistä ei puhuta kenen
      Ikävä
      71
      939
    6. Nainen mitä tekisit

      Joutuisit tekemään miehelle ja sinulle tai sinulle ja miehellesi ja kahdelle lapselle ruokaa ja kaapista löytyy 2 litraa
      Sinkut
      158
      899
    7. Siis ei ole edes mahdollista

      että ei törmätä, ei sit millään vaikka päällä hyppisi
      Ikävä
      44
      860
    8. Martina kauniina lehtihaastattelussa

      Martina antoi hyväntuulisen haastattelun lehteen. Tyylikkäitä kuvia ja kivoja vaatteita kauniilla Martinalla.
      Kotimaiset julkkisjuorut
      182
      805
    9. J-miehelle

      haluan kertoa että olet edelleen mulle rakas. Ajattelen sinua päivittäin kulta.
      Ikävä
      58
      788
    10. Minä en luota sinuun yhtään nainen

      ja aistin että yrität taas satuttaa henkisesti koska tiedät että olet heikkouteni joten siksi tein mitä tein mutta en ki
      Ikävä
      34
      762
    Aihe