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

383

    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. Hengenvaaralliset kiihdytysajot päättyivät karmealla tavalla, kilpailija kuoli

      Onnettomuudesta on aloitettu selvitys. Tapahtuma keskeytettiin onnettomuuteen. Tapahtumaa tutkitaan paikan päällä yhtei
      Kauhava
      168
      6144
    2. Ootko rakastunut?

      Kerro pois nyt
      Ikävä
      147
      1714
    3. Onhan sulla nainen parempi mieli

      Nyt? Ainakin toivon niin.
      Ikävä
      113
      1508
    4. Ujosteletko tosissaan vai mitä oikeen

      Himmailet???? Mitä pelkäät?????
      Ikävä
      51
      1260
    5. Suureksi onneksesi on myönnettävä

      Että olen nyt sitten mennyt rakastumaan sinuun. Ei tässä mitään, olen kärsivällinen ❤️
      Ikävä
      46
      904
    6. Möykkähulluus vaati kuolonuhrin

      Nuori elämä menettiin täysin turhaan tällä järjettömyydellä! Toivottavasti näitä ei enää koskaan nähdä Kauhavalla! 😢
      Kauhava
      28
      844
    7. Älä mies pidä mua pettäjänä

      En petä ketään. Älä mies ajattele niin. Anteeksi että ihastuin suhun varattuna. Pettänyt en ole koskaan ketään vaikka hu
      Ikävä
      96
      827
    8. Reeniähororeeniä

      Helvetillisen vaikeaa työskennellä hoitajana,kun ei kestä silmissään yhtään läskiä. Saati hoitaa sellaista. Mitä tehdä?
      Kouvola
      5
      779
    9. Kävit nainen näemmä mun

      Facessa katsomassa....
      Ikävä
      41
      729
    10. Tarvitsemme lisää maahanmuuttoa.

      Väestö eläköityy, eli tarvitsemme lisää tekeviä käsiä ja veronmaksajia. Ainut ratkaisu löytyy maahanmuutosta. Nimenomaan
      Maailman menoa
      219
      714
    Aihe