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

402

    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. Hei! Halusin vain kertoa.

      En tiedä luetko näitä, mutta näimme n.4vk sitten, vaihdoimme muutaman sanan ja tunsin edelleen kipinän välillämme. Katso
      Tunteet
      21
      4317
    2. Maatalous- ja yritystuet pois, työeläkevaroilla valtion velka pois

      Suomi saadaan eheytettyä kädenkäänteessä, kun uskalletaan tehdä rohkeita ratkaisuja. Maatalous- ja yritystuet ovat hait
      Maailman menoa
      151
      4067
    3. Miksi ikävä ei helpotu vuosien jälkeenkään?

      Tänään olin ensimmäistä kertaa sinun lähtösi jälkeen tilassa, jossa vuosia sitten nähtiin ensimmäistä kerta. Ollessani
      Rakkaus ja rakastaminen
      13
      3256
    4. Riikka on siis suomalaisille velkaa 84 mrd

      Jos kauhukabinetti istuu vaalikauden loppuun. Keskimäärin yli 20 miljardia uutta velkaa rikkaiden veronalennuksiin jokai
      Maailman menoa
      67
      3056
    5. Teboili alasajo on alkanut

      Niinhän siinä kävi että teebboili loppuu...
      Suomussalmi
      86
      2674
    6. Sanna on suomalaisille siis velkaa 24 mrd euroa

      Muistanette vielä kuinka Italian remonttirahoja perusteltiin sillä, että italialaiset ostaa suomalaisilta paidatkin pääl
      Maailman menoa
      151
      2632
    7. Luotathan siihen tunteeseen, joka välillämme on?

      Uskothan myös, että se kestää tämän? Kaipaan sinua valtavasti. Vielä tehdään yhdessä tästä jotain ihmeellistä ja kaunist
      Ikävä
      28
      2323
    8. Pystyisitkö pitämään

      Näppejä erossa jos tulisi siihen tilaisuus
      Ikävä
      33
      1954
    9. "Sanna Marinin kirja floppasi", kertoo eräs median otsikko

      "Miljardien tappio - Sanna Marin vaikenee", kertoo toinen otsikko. Marin ei siis siinä kirjassaan kerro sanallakaan For
      Maailman menoa
      120
      1605
    10. Tuntuuko ettet tiedä

      Enää miten toimia mun suhteen. Kun en taida tietää itsekään
      Ikävä
      20
      1555
    Aihe