Tillverka hjälpsystem till ditt program med Help Workshop
Förord
Hej och välkomna till en kurs i hur man tillverkar hjälpsystem i 32-bitars Windowsmiljö. Allt eftersom ditt program blir större och förses mer fler funktioner desto viktigare blir det att implementera en fungerande hjälpfil till ditt program. Ett väl utformat hjälpsystem kräver mindre support av slutanvändaren och ju mer detaljrikt och uttömmande ditt hjälpsystem blir, desto mer användbart blir det när slutanvändaren vill söka efter information. Nåväl, för att skapa ett hjälpsystem underlättar det högst avsevärt om du har tillgång till ett verktyg för ändamålet och det har du på din Visual Basic-skiva. Jag själv använder mig av Visual Basic 5 och där finns installationsprogrammet till Help Workshop i mappen \Tools\HCW. Jag har valt att skapa ett hjälpsystem enligt den gamla standarden (som jag personligen tycker är bättre) och alltså inte den HTML-baserade versionen som t ex Microsoft Office 2000 använder sig av.Innehåll
»»
»
»
»
»
»
»
»
»
Planera ditt hjälpprojekt
Innan du börjar med ditt projekt kan det vara lämpligt att fundera över hur ditt hjälpsystem ska vara strukturerat. Det är alltid lättare att skissa på vilka avsnitt och rubriker du vill ha innan du börjar med själva konstruerandet. Det har i alla fall jag själv fått erfarenhet av när jag gjort hjälpsystem till mina applikationer.
Filtyper för att skapa en hjälpfil
Efter att du har gjort klart planeringen för hjälpprojektet är det dags att börja skapa de filer som kommer att ingå i en kompilerad hjälpfil när du så småningom blir klar med projektet. Det är många sorters filer som används för att skapa en kompilerad 32-bitars Windows-hjälpfil. Se nedanstående tabell: Filtillägg | Filtyp | Beskrivning |
---|---|---|
.rtf | Hjälpämne | Innehåller text för hjälpfilen och nödvändiga koder för att länka ämnen. Kan även innehålla grafik eller anrop till grafikfiler. |
.cnt | Hjälpinnehåll | Innehåller en hierarkisk struktur över de hjälpavsnitt som skapar objekt på fliken Innehåll när hjälpsystemet körs. |
.hpj | Hjälpprojekt | Innehåller en lista över text- och grafikfiler som behövs för hjälpfilen. |
.bmp .wmf | Grafik | Nödvändig endast om du refererar till grafik i .rtf-filen i stället för att bädda in den där. |
.shg | Hypergrafik | En förbättrad grafik med en eller flera hotspots som skapas med Shed.exe. |
.mrb | Bitmapp | En speciell bitmap som är kompilerad med Mrbc.exe och innehåller mer än en version av bitmappen för olika upplösningar. |
.avi | Multimedia | Man refererar till dessa filer i .rtf-filen med {mci filnamn}. |
Börja med att skapa en hjälpämnesfil
För att koda en hjälpämnesfil behöver du en ordbehandlare som kan spara i .rtf-format. Microsoft Word klarar naturligtvis detta. För att demonstrera kommer jag att använda ett exempel som jag gjort till ett tidigare program (som för övrigt heter SerieBuilder). I hjälpprojektet används särskilda kontrollkoder för att definiera ämnen, titlar och nyckelord. Se tabell nedan.
Kontrollkod | Formellt namn | Beskrivning |
---|---|---|
# (fotnot) | Context String | Definition av en sträng som på ett unikt sätt definierar ett ämne i hjälpen. |
$ (fotnot) | Title | Definition av hjälpämnets titel (valfritt). |
K (fotnot) | Keyword | Definition av ett nyckelord som användaren använder för att söka efter ett ämne. |
+ (fotnot) | Browse sequence | Definierar den ordning som användaren läser igenom ämnen (valfri) |
* (fotnot) | Build tag | En tagg som anger ämnen som är villkorliga vid kompilering med hjälpkompilatorn. |
Dubbelt understruken eller genomstruken | Jump | Syns i den kompilerade textfilen som textgrön, enkelt understruken text. Talar om för användaren att hon kan klicka på texten för att hoppa till ett annat ämne. |
Enkelt understruken text | Popup | Visas i den kompilerade filen som grön, streckat understruken text. Om användaren klickar på den fås ett popup-fönster. |
Dold text | Context sting | Anger den sammanhangssträng som visas för ämnet när användaren klickar på föregående text. |
Nedanstånde skärmdump är ett utdrag ur en rtf-fil som jag använt till ett eget program och som ligger till grund till min hjälpfil. På bilden ser du två ämnen med rubriker som måste skiljas åt med hårda sidbrytningar. Varje ämne måste ha en unik sammanhangssträng. Skriv en fotnot i början av raden, där du börjar med #-tecknet. Skriv namnet på ämnessträngen. För ämnet "Skapa en ny serie" har jag döpt ämnessträngen till samma namn men jag har bytt ut mellanslagen mot understrykningsstreck (Skapa_en_ny_serie). Det är praktiskt att döpa ämnessträngen till samma namn som ämnet när vi senare ska tillverka innehållsfilen (.cnt). Använd inte mellanslag överhuvudtaget för det genererar ett fel när du senare kompilerar projektet.
För att lägga till ett nyckelord som skall referera till ämnet "Skapa en ny tabell", placera insättningspunkten just efter #-fotnoten och lägg till en fotnot med K nere i fotnotsdelen (se bild). Observera att nyckelorden åtskiljs av semikolon. Du kan även använda ett vanligt kolon för att gruppera flera indexord under ett annat.
I mitt program har jag tillämpat nedanstående metod:
K Skapa serie;Ange:vinstpoäng;Ange:rubrik
På skärmdumpen nedan kan ni se hur indexorden kan grupperas under ett annat när du har använt kolon.
Länka ämnen med hopp och popups
När du är klar med alla avsnitt och hjälpämnen, så kan du lägga till hopp och popups. Detta gör att slutanvändaren på ett smidigt och snabbt sätt kan få den information han söker. Hopp markeras som grön, understruken text i den kompilerade hjälpfilen (.hlp). När användaren klickar på ett hopp förflyttas hon till ett annat närliggande ämne. Popups markeras som grön text, streckat understruken i hjälpfilen. När användaren klickar på en sådan text (eller trycker Enter) så uppenbarar sig ett popupfönster som består av en definition av den understrukna texten. Du skapar hopp och popups i rtf-filen och detta gör du genom att använda textformatering i form av dold text och understrykningar. För att skapa ett hopp, markera ordet eller orden du vill använda och stryk under dem med dubbla streck eller
Nedanstående bild består av en skärmdump från min rtf-fil i Microsoft Word och i den röda ringen kan ni se hur jag har länkat ämnet registrera för att generera ett popupfönster med sammanhangssträngen Reg_Popup. Observera också i fotnotsfältet att tecknet # används för länken Reg_Popup.
Så här ser det sedan ut när användaren klickar fram popupfönstret i den kompilerade hjälpfilen:
Lägga till grafik i din hjälpfil
Help Workshop erbjuder även möjligheten att lägga till grafik i form av bitmappar (.bmp) eller Windows Metafiler (.wmf). Du kan även använda bitmappar av typen multiple-hotspot (.shg) eller av typen multi-resolution (.mrb). Det erbjuds två tillvägagångssätt för att utsmycka dina hjälpämnen med grafik. Du kan referera till ett grafiskt objekt genom att använda kodkommandon som är specifika för Help Workshop (se tabell längre ned). Använder du dig av Microsoft Word kan du enkelt bädda in en bild direkt i dokumentet genom att använda Bildobjekt i Infoga-menyn. Fördelen med det sistnämnda alternativet är att du inte behöver distribuera någon grafikfil. Nackdelen kan ju vara att Hlp-filen blir större ju fler bildobjekt du infogar, men detta upplevs sällan som något problem eftersom den kompilerade hjälpfilen tillåter en storlek på 2 GB. Jag valde att referera till en separat bmp-fil i mitt program och då använde jag följande kod för att referera till grafikfilen pil.bmp:
{bml pil.bmp}
Detta kommando inom klammertecken resulterade i nedanstående hjälpämne: | Parametervärden för bildjustering | |||||||||||
|
Skapa en innehållsfil
När du nu kommit så här långt är det dags att skapa en innehållsfil (.cnt). Innehållsfilen kommer att återspeglas under fliken Innehåll i den kompilerade hjälpfilen (.hlp). Börja skapa en innehållsfil genom att välja New under File-menyn. Välj sedan "Help Contents" och klicka på OK för att aktivera det redigeringsprogram för innehållsfiler som ingår i Help Workshop.Ange sedan den hjälpfil i vilken dina filer ska ingå i rutan "Default filename (and window)". Skriv sedan in den text som skall förekomma i titelfältet i dialogrutan Help Topics i rutan "Default title". Spara sedan innehållsfilen med lämpligt namn (kan vara praktiskt att spara den med samma namn som ditt program). Rubrikerna för varje ämne i innehållsfilen förekommer tillsammans med en bokikon. När man dubbelklickar på denna bokikon byts den ut mot en ikon föreställande en öppen bok och alla objekt som sorterar under aktuell rubrik listas tillsammans med en ikon föreställande ett frågetecken (se bild ovan).
För att skapa en rubrik, klicka på knappen "Add Below" och nedanstående ruta uppenbarar sig:
Du skapar en rubrik genom att först välja alternativknappen Heading och sedan fyller i namnet på din rubrik i fältet Title. För att skapa en objekt gör du på motsvarande sätt och fyller i titeln för ämnet samt dess identifikation (ID) som du tidigare angav i rtf-filen.
Klicka sedan på OK. Fortsätt sedan på samma sätt att lägga till rubriker och ämnen till du känner dig nöjd med din innehållsfil. Vill du lägga till ett annat fönster än det som är standard kan du ange det här.
Skapa hjälpprojektfilen
När du är klar med innehållsfilen kan du spara den och sedan välja New under File-menyn. Välj sedan Help Project för att skapa en hjälpprojectfil (.hpj). Nu visas en fönster som du inte sett tidigare och som kan se ut liknande som i bilden nedan:
Nu är det dags att göra en del inställningar i din hjälpprojektfil. Du börjar med att klicka på knappen Options och ett fönster kommer upp som innehåller åtta flikar. Välj fliken General och skriv sedan in information om standardämne, hjälpfilens titel och copyrightinformation för hjälpprojektfilen. På fliken Files skriver du in ett standardnamn för hjälpfilen (i mitt exempel blev det SerieBuilder.hlp), namn och mapp för en textfil för felloggning samt sökvägen för hjälpämnesfilen (.rtf) och innehållsfilen (.cnt) som du skapade tidigare.
På fliken Fonts väljer du standardteckensnitt för fönstren i din hjälpfil. På fliken Compression kan du välja kompressionsgrad för den kompilerade hjälpfilen (ingen, maximum eller anpassad). Klicka sedan på fliken FTS och markera där kryssrutan Generate full text search index. När du tycker att du är färdig med dina inställningar kan du klicka på OK.
Klicka sedan på knappen Bitmaps för att öppna dialogrutan Bitmap Folders. Klicka på Browseknappen för att leta upp grafikfilerna som du refererade till i rtf-filen.
Klicka därefter på knappen Map och en ny dialogrutan uppenbarar sig.
I denna dialogrutan sätter du heltalsvärden på dina ämnes-ID. Dessa tal kommer du senare att kunna använda i ditt program för att hämta sammanhangsberoende hjälptext.
Kompilera hjälpfilen
Att kompilera ditt hjälpprojekt är egentligen förbluffande enkelt. Du klickar bara på kommandoknappen Save and Compile nere i högra hörnet. Efter avslutad kompilering öppnar Help Workshop en loggskärm som beskriver den kompilerade filen och talar om i falla några fel inträffade. Bryt nu inte ihop om det skulle bli en massa varningar och fel för Help Workshop är väldigt duktig på att ange var de eventuella felen ligger. Läs helt enkelt igenom loggskärmen så ser du nog vad som kan ha orsakat felet. Help Workshop kan visa tre sorters felmeddelanden när hjälpfilen kompileras:
- Noteringar angående problem som inte alls påverkar hjälpfilens sätt att arbeta.
- Varningar för problem, funna i en hjälpfil men som inte stoppar kompileringen.
- Fel som gör att hjälpfilen inte kan kompileras.
Koppla hjälpfilen till ditt VB-projekt
När du till slut fått rätsida på din kompilering och därmed också kunnat skapa en fungerande hjälpfil (.hlp) så är det dags att koppla hjälpfilen till ditt program. Detta gör du genom att antingen välja Properties i Projektmenyn eller skriva in en hjälpfil på fliken General i dialogrutan Project Properties eller genom att sätta egenskapen Helpfile i objektet App i koden, t ex:
App.Helpfile = "SerieBuilder.hlp"
Nästa steg är att sätta egenskaperna WhatsThisButton och WhatsThisHelp till True. Sätt sedan egenskapen WhatsThisHelpID för varje kontroll som ska ha sammanhangsberoende hjälp till det ID-nummer som du angav i Map-dialogrutan tidigare.
För att sedan kunna aktivera din hjälpfil måste du lägga till en allmän dialogkontroll (Common Dialog) till ditt formulär och lägga till följande kod i en meny (förslagsvis):
Private Sub mnuHelp_Click()
CommonDialog1.Helpfile = "SerieBuilder.hlp"
CommonDialog1.HelpCommand = cdlHelpContents
CommonDialog1.ShowHelp
Efter att du har kompilerat ditt VB-projekt till en exe-fil så har du nu ett program med ett fungerande hjälpsystem kopplat till sig. Tänk på att hjälpfilen bör ligga i samma mapp som din exe-fil alternativt i mappen Windows\Help.
Avslutningsvis
Help Workshop tillhandahåller ytterligare funktioner som jag inte tagit upp här och som kanske mest är till gagn för den avancerade användaren. Man kan exempelvis anpassa sin hjälpfil genom att använda makron. Vidare kan du implementera rörliga bilder (i -format) samt en hel del andra funktioner. För Er som är intresserade av detta hänvisar jag till hjälpmenyn i Help Workshop där det finns massor av tips att hämta. Vid tangentbordet
/Staffan Berg
0 Kommentarer