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

394

    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. Sä olet epävakaa

      tai ainakin yrität onnistuneesti vaikuttaa siltä. Ei sun kanssa uskalla ruveta yhtään mihinkään, menis hommat ojasta all
      Ikävä
      46
      2075
    2. Mieti miten paljon yritin

      Löytää yhteyttä kanssasi uudelleen sen väärinymmärryksen jälkeen. Koen etten tullut puoleltasi hyvin kohdelluksi mies😔
      Ikävä
      57
      1819
    3. Kurkkiiko myyrä jo

      Milloin tulee kolostaan?
      Ikävä
      36
      1534
    4. Yksi viesti häneltä ja ottaisin takaisin

      Mutta ei sitä tule. Ja ehkä parempi niin, tein jo valintani. En saanut häneltä tarpeeksi, kaikki muu meni minun edelle j
      Ikävä
      32
      1443
    5. Kaikki on hyvin rakkaani

      Ja tulee olemaan.
      Ikävä
      78
      1238
    6. En enää uskalla laittaa sulle viestiä

      Naiselta miehelle ****
      Ikävä
      58
      1122
    7. Keskisarjan puheet

      Onko kansanedustajan sopivaa puhua tuollai vai pitäisikkö potkia pois eduskunnasta?
      Suomussalmi
      189
      973
    8. En ikinä koskaan

      En tule ikinä hyväksymään!
      Tunteet
      57
      949
    9. Sovitaanko ja halataanko?

      Pyydetään toisiltamme anteeksi...❤️
      Ikävä
      49
      913
    10. Olen selvästi rikki

      Narsistiset ihmiset jotenkin koukuttaa minut.
      Ikävä
      24
      894
    Aihe