Pääteohjaustehtäviä
12 / 22-23.11
1. Avustus
WinHelpillä
- 1.
- Kirjoita
avustuksen alkua omaan ohjelmaasi. Kopioi aluksi tiedosto
n:\kurssit\winohj\oop\apf\mfc\vaihtaja\help2000.dot
omaan hakemistoosi. Käynnistä sitten Word 2000 (jos vanhempi Word,
niin käytä
help97.dot
tai
help.dot
), avaa uusi tiedosto ja valitse malliksi (
template)
HELP2000 (Tools/Templates and Add-Ins../Document template/Attach ja tarkista
vielä että Add automatically... on päällä).
- 2.
- Ennen
aloittamista tarkista, että makrossa Testaa (Tools/Macro/Macros ja valitse
Testaa ja Edit) rivi
WordBasic.Shell "C:\PROGRA~1\Borland\Delphi6\Help\Tools\hcw /c /m /e" +
BaseName$, 1
-
- todella
osoittaa sinne, missä hcw.exe on. Samoin tarkista että tiedostojen
sijaintipolku on oikein (
Tools/Options/File
locations/Documents
,
tässä tulee joko olla . tai se hakemisto, jossa työskentelet).
- 3.
- Kirjoita
avustustiedosto .rtf-nimellä (mieluiten tietysti omaan työhösi
liittyen) ja testaa sitä. (jostain syystä pitää kerran
avata ja sulkea .err-tiedosto käsin).
Käyttö:
0) Tee heti ensimmäiseksi File saveAs oikeaan hakemistoon ja .doc-päättellä
1) Vaihda näyttömuodoksi normaali (View/Normal).
2) Jaa avustuksesi "sivuihin". Kukin sivu erotetaan Sivunvaihdolla (Ctrl-Enter)
3) Kunkin sivun 1. rivi kannattaa merkitä otsikoksi Heading1 tai Heading2-
tyylillä. Älä käytä tyhjiä rivejä! (Ctrl-1, Ctrl-2)
4) Mene yhden kerran kunkin sivun 1.riville ja paina nappulaa "NimiJaOsoite"
(Ctrl-Shift-N). Tämä makro tekee tarvittavat hyppypaikat ja otsikot sivulle.
5) Jos haluat hypätä johonkin kohti, mene Footnotes-ikkunassa hyppypaikkaa
vastaavalle #-riville ja paina OtaHyppy (Ctrl-Shift-O).
6) Siirry sille tekstissä siihen paikkaan, josta haluat hypätä tähän kohti,
maalaa se sana,jonka haluat linkiksi. Paina 2alleviivaus (Ctrl-Shift-A).
Siirry sanan loppuun ja paina LisaaHyppy (Ctrl-Shift-L)
7) Kun haluamasi hypyt on merkitty, paina Testaa (Ctrl-Shift-T).
8) Korjaile ja testaa uudelleen.
9) Lisäile myös avainsanoja: mene sanan kohdalle ja paina KeyWord
(Ctrl-Shiftf-K)
10) Anna myös lukemisjärjestys: Mene kunkin sivun alkuun ja paina JarjNro
(Ctrl-Shift-J) ja sitten Footnotes ikkunaan syntyvän + -merkin kohdalla
kirjoita juokseva tunnus, esim. 00, 01 jne...
- 4.
- Delphissä
avustuksen saa auki esimerkiksi suorittamalla komennon
Application.HelpJump('Elaimet'); // Haluttu #-tunnistemerkkijono .hlp-tiedostosta
-
- Ensin
pitää kuitenkin olla esim. .dpr-tiedoston alussa sijoitus:
Application.HelpFile := 'elukat.hlp';
-
- Voi
myös kirjoittaa .hpj-tiedoston
[MAP]-osaan:
[Map]
#define kissa 100
#define koira 101
-
- ja
sitten laittamalla halutun
Delphi-komponentin
HelpContext-kohtaan
noita vastaavia numeroita. Ja avustustiedostossa täytyy tietysti olla
sitten nuo mainitut tunnistemerkkijonot (niitä #:lla
Footnotes-ikkunassa
merkittyjä).
-
- On
myös mahdollista vaihtaa komponentin ominaisuus
HelpType
muotoon:
htKeyword.
Tällöin ominaisuuteen
HelpKeyWord
voi kirjoittaa alaviitteellä K-merkittyjä sanoja. Koodista voi
myös suoraan hypätä avainsanaan kutsulla
Application.HelpKeyWord('Kissa'); // Haluttu K-alaviite .hlp-tiedostosta
-
- Huom!
KeyWord-käytössä
helpin
pitää olla auki, jotta hypyt toimivat?
2. Avustus
HTML:llä
- 1.
- Kirjoita
erittäin minimaalinen HTML- tiedosto (yhden valmiin saat esim:
n:\kurssit\winohj\help\html\Elaimet.html)
- 2.
- Tee
Delphillä erittäin minimaalinen WWW- selain, jossa on vain yksi
HTML-
komponentti (
TWebBrowser),
Edit-
ikkuna ja nappula Hae.
- 3.
- HTML-
komponenttiin voit hakea dokumentin komennolla
WebBrowser.Navigate(EditURL.Text);
- 4.
- Edit-
ikkunaan pitää kirjoittaa www-linkki tai tiedoston koko polku (?).
Jos halutaan välttää absoluuttisia polkuja - kuten aina
pitäisi - ja kuitenkin hakea tiedostoa samasta hakemistosta kuin
missä ohjelma on, voidaan nimi selvittää seuraavasti (esim.
FormCreatessa)
EditUrl.Text := ExtractFilePath(ParamStr(0)) + 'Elaimet.html'
-
- Vastaavasti
nykyhakemisto asetettaisiin polun eteen (nykyhakemisto voi olla eri kuin se,
mistä ohjelma on käynnistetty):
GetDir(0,dir); // dir:string jossakin
EditUrl.Text := dir + '\' + 'Elaimet.html';// GetDir ei laita loppuun \-merkkiä!
- 5.
- Jos
F1 nappula halutaan toimimaan ja tähän vielä
sisältöpohjainen avustus, niin silloin voidaan kirjoittaa lomakkeen
OnHelp-tapahtumaan
esimerkiksi koodi:
function TForm1.FormHelp(Command: Word; Data: Integer;
var CallHelp: Boolean): Boolean;
var ctl : TControl; fn:string;
begin
//
ctl := ActiveControl;
fn := ExtractFilePath(ParamStr(0)) + '..\html\elaimet.html';
WebBrowser1.Navigate(fn+'#'+ctl.HelpKeyword);
CallHelp := false;
Result := true;
end;
-
- Lomakkeen
BorderIcons-ominaisuudesta
tulee
biHelp
laittaa todeksi. Sitten nappuloihin yms. kontrolleihin laitetaan
HelpKeyword
halutuksi
<a
name="???"></a>
tagilla merkittyyn hyppypaikkaan. Jotta F1 toimisi, pitää vielä
valita ainakin lomakkeella
HelpContext-kohtaan
jokin nollasta poikkeava arvo.