Download - CAD Magazine

Download - CAD Magazine Download - CAD Magazine

cadmagazine.nl
from cadmagazine.nl More from this publisher
12.07.2015 Views

MicroStationExtra informatie voor gebruikerHelpteksten en –bestanden in MVBADoor: Johan VreedeDeze keer een onderwerp dat niet zo vaak aanbod komt bij programmeren: helpteksten enhelpbestanden. Dit onderdeel wordt vaak vergetenof overgeslagen. Het mag bekend zijn dat veelinformatie over de precieze werking van een routineen vooral over de volgorde van handelingen juist inde helpbestanden is ondergebracht. Wat dat betreftis het niet meer dat terecht dat hieraan ook wataandacht besteed wordt.Afbeelding 1.Bij helpmeldingen in MicroStation kunnen we drie soortenonderscheiden. De eerste is een melding in het scherm opeen specifieke plaats, zoals statusmeldingen en foutmeldingen.Daarnaast zijn er meldingen in het scherm bij het puntvan aandacht – meestal de cursor. Deze korte meldingenheten tooltip-teksten en komen meestal voor bij buttons inmenu’s. De derde melding is uitleg in helpbestanden,waarbij zowel sprake kan zijn van het oproepen van hettotale helpbestand, met inhoudsopgave en zoekmogelijkheden,als van het oproepen van contextgevoelige helpSchermmeldingenMeldingen in het scherm bij MicroStation V8 verschijnen inprincipe op twee plaatsen:Linksonder in beeld, hier aangeduid als statusgebied, zieafbeelding 1, of midden onder in beeld, hier aangeduid alsmessagegebied. Het verschijnen van meldingen in hetstatusgebied wordt vooral gestuurd door de statements:ShowPrompt, ShowError, ShowStatus en ShowCommand.De statements ShowMessage en ShowTempMessagehebben vooral invloed op het messagegebied. De syntaxvoor een melding is als volgt:Application.ShowPromptDe verschillend statements kunnen licht afwijkenderesultaten hebben.• ShowPrompt toont een meldtekst linksonder in beelden is bedoeld om tijdens de uitvoering van de routineinstructies of informatie over de voortgang te geven.• ShowError toont ook een meldtekst linksonder inbeeld, maar deze tekst verdwijnt als in het statusgebiedwordt geklikt waarna de vorige meldtekst weerverschijnt.• ShowCommand verandert de commandtekst-promptin het statusgebied, het deel voor het groter-dan-teken.• ShowStatus toont een meldtekst in het statusveld,midden onder.• ShowTempMessage heeft drie parameters: locatie,melding, detailtekst. Het toont een melding in hetstatusgebied of in het message-gebied, afhankelijk vande waarde van de eerste parameter, 15 of 16, en toonteen meer gedetailleerde tekst in het detailgebied vanhet Message Center, zie beneden.• ShowMessage heeft vier parameters: melding, detailtekst,icon en alertbox. Het toont een melding in hetmessagegebied, een meer gedetailleerde tekst in hetdetailgebied van het Message Center, zie beneden, eenicon, info/warning/error met nummers 10,11,12, eneventueel een dialoogbox met deze melding.In de voorbeeldroutine zijn de verschillende mogelijkhedente bekijken. De keuze-dialoogbox is via het meegeleverdemenu op te roepen.Message CenterSinds versie V8kent MicroStationhet zogehetenMessage Centervoor het tonen vanmeldingen. Middenin de statusregelonder in hetscherm, tussen statusgebieden messagegebied,hetvakje waarin eventueeleen icoontjeAfbeelding 2.verschijnt, bevindt zich een vakje dat de mogelijkheidbiedt de dialoogbox van het Message Center te openen.In dat dialoogvenster is het mogelijk de laatste melding eneen aantal voorgaande meldingen terug te lezen.Bovendien bevat het onderste deel van die dialoogboxeventueel extra beschrijvende tekst bij de melding.Tooltips en teksten bij menuknoppenEen andere mogelijkheid voor het tonen van melding isde zogeheten tooltip-tekst. Dit is een korte tekst die in eengeelgekleurd vakje verschijnt naast het element waarbovende cursor zweeft. Dit is vaak een menuknop. Bij het aanmakenvan menuopties, zie afbeelding 2, kunnen zowelteksten voor ‘tooltip’ als voor ‘description’ worden ingevuld.De eerste melding verschijnt in het genoemde geelgekleurdevakje, de tweede verschijnt in het statusgebied.HelpbestandenWindows kent voor het weergeven van helpbestanden eenspeciaal bestandsformaat, waarbij de bestanden de extensie58CADMagazine April/Mei 2006-3

MicroStationHelpContextID heet. Hiermee is het mogelijk te bepalenwelk deel van het helpbestand met dit onderdeel gekoppeldmoet zijn. De helpContextID is meestal een getal. Binnenhet helpbestand is een kruistabel aanwezig die aangeeftwelk deel van het helpbestand in beeld moet komen als datgetal aangereikt wordt. De programmeercode voor decontextgevoelige help in MVBA is als volgt:Afbeelding 3..CHM hebben. Er zijn diverse kleine softwareprogramma’sbeschikbaar als shareware of als onderdeel van een programmeeromgeving,die het mogelijk maken om van beschikbareteksten, in Word of HTML, helpbestanden te maken. In ditvoorbeeld is gebruik gemaakt van HTML Help Workshop.Dit is onderdeel van Microsoft Visual Studio, maar er zijnvele andere help-compilers te vinden op Internet. Op basisvan een aantal specifieke invoerbestanden wordt een CHMbestandgecompileerd. De verschillende tekstbestanden, indit geval HTML-bestanden, vormen de feitelijke tekst, waarbijelk tekstbestand als apart onderdeel wordt gezien.Daarnaast is een inhoudsopgave nodig, ook in HTML, diehet mogelijk maakt binnen de helpfile naar een ander onderwerpte springen. Dit is vooral nodig bij contextgevoeligeonderdelen. Daarvoor is overigens ook een kruistabel nodig,een .h-bestand, waarin de verschillende onderwerpen via eenreferentienummer zijn benoemd. Dit referentienummer isnodig in de MVBA-routine. Let op: de topics hebben denaam van de HTML-bestanden, maar dan zonder deHTMAL-extensie. Als voorbeeld voor HTML HelpWorkshop is een stuurbestand, project .HHP, bijgevoegd.Het oproepen/openen van het helpbestand vanuit het menugebeurt met de commandoregel:dos c:\winnt\hh.exe c:\cm2006_3.chmContextgevoelige helpContextgevoelige help houdt in dat bij het oproepen vanhelpfunctie een specifiek deel van het helpbestand in beeldkomt. Daarvoor moet worden geregeld dat bij het indrukkenvan de speciale toets, meestal F1, het helpbestand wordtgeopend en dat de helpsoftware bij een speciaal hoofdstukbinnen het helpbestand terechtkomt.De meeste controls op een userform hebben een attribuut datAfbeelding 4.Private Sub ListBox2_KeyUp(ByVal KeyCode As_MSForms.ReturnInteger, ByVal Shift As Integer)Dim retCode As LongDim hwnd As LongIf KeyCode = vbKeyF1 Thenhwnd = FindWindowEx(0, 0, vbNullString,“Userform1”)retCode = HtmlHelpLongArg(hwnd, MYHELP_FILE,` HHHELPCONTEXT,Me.ActiveControl.HelpContextID)‘retCode = HtmlHelpLongArg(hwnd, MYHELP_FI-LE, _ HH_DISPLAY_TOPIC, 0)End IfEnd SubDe regel met HH_HELP_CONTEXT zorgt er voor dat hethelpbestand met een bepaald topic wordt geopend. De regelmet HH_DISPLAY_TOPIC zorgt er voor dat het helpbestand als geheel wordt geopend.Voor de juiste werking vanuit MVBA zal een speciaalwindows-hulpbestand HHCTRL.OCX moeten wordenaangeroepen en deze dient te worden gedeclareerd:Public Const HH_HELP_CONTEXT = &HFPublic Const HH_DISPLAY_TOPIC = &H0Public Const MYHELP_FILE = “c:\cm2006_3.chm”Public Declare Function HtmlHelpLongArg Lib“hhctrl.ocx” _ Alias “HtmlHelpA” (ByVal hwndCaller AsLong, ByVal pszfile As String, ByVal ucommand AsLong, ByVal dwdata As Long) As _ LongPublic Declare Function FindWindowEx Lib “User32”Alias _ “FindWindowExA” (ByVal hWndParent AsLong, ByVal _ hWndChildAfter As Long, ByVal lpClassAs String, ByVal _ lpWindowName As String) As LongLet op: de contextgevoelige help werkt alleen als debetreffende control aangeklikt is, dus contextgevoeligehelp bij commandbuttons is praktisch niet uitvoerbaar.Werk dan met een tooltip tekst.De voorbeeldroutine bij dit artikel toont een dialoogboxmet alle voorkomende teksten in de tekening en gegevensover font en uitlijning van die teksten, met daarbij helpinformatieals tooltips, meldingen en help onder deF1-toets.Tot slot moet nogmaals gezegd worden dat de gebruikervooral zal letten op de zaken die tijdens de uitvoering vande routine in beeld verschijnen, dus deze teksten moetenduidelijk zijn en voldoende informatie bevatten. Succesmet uw eigen help-systeem.De auteur van dit artikel is bereikbaar viajohan.vreede@studio4d.nl. De broncode, de MVBAroutine,van het beschreven voorbeeld en bijbehorendehulpbestanden zijn te vinden op www.cadmagazine.nl.CADMagazine April/Mei 2006-3 59

MicroStationExtra informatie voor gebruikerHelpteksten en –bestanden in MVBADoor: Johan VreedeDeze keer een onderwerp dat niet zo vaak aanbod komt bij programmeren: helpteksten enhelpbestanden. Dit onderdeel wordt vaak vergetenof overgeslagen. Het mag bekend zijn dat veelinformatie over de precieze werking van een routineen vooral over de volgorde van handelingen juist inde helpbestanden is ondergebracht. Wat dat betreftis het niet meer dat terecht dat hieraan ook wataandacht besteed wordt.Afbeelding 1.Bij helpmeldingen in MicroStation kunnen we drie soortenonderscheiden. De eerste is een melding in het scherm opeen specifieke plaats, zoals statusmeldingen en foutmeldingen.Daarnaast zijn er meldingen in het scherm bij het puntvan aandacht – meestal de cursor. Deze korte meldingenheten tooltip-teksten en komen meestal voor bij buttons inmenu’s. De derde melding is uitleg in helpbestanden,waarbij zowel sprake kan zijn van het oproepen van hettotale helpbestand, met inhoudsopgave en zoekmogelijkheden,als van het oproepen van contextgevoelige helpSchermmeldingenMeldingen in het scherm bij MicroStation V8 verschijnen inprincipe op twee plaatsen:Linksonder in beeld, hier aangeduid als statusgebied, zieafbeelding 1, of midden onder in beeld, hier aangeduid alsmessagegebied. Het verschijnen van meldingen in hetstatusgebied wordt vooral gestuurd door de statements:ShowPrompt, ShowError, ShowStatus en ShowCommand.De statements ShowMessage en ShowTempMessagehebben vooral invloed op het messagegebied. De syntaxvoor een melding is als volgt:Application.ShowPromptDe verschillend statements kunnen licht afwijkenderesultaten hebben.• ShowPrompt toont een meldtekst linksonder in beelden is bedoeld om tijdens de uitvoering van de routineinstructies of informatie over de voortgang te geven.• ShowError toont ook een meldtekst linksonder inbeeld, maar deze tekst verdwijnt als in het statusgebiedwordt geklikt waarna de vorige meldtekst weerverschijnt.• ShowCommand verandert de commandtekst-promptin het statusgebied, het deel voor het groter-dan-teken.• ShowStatus toont een meldtekst in het statusveld,midden onder.• ShowTempMessage heeft drie parameters: locatie,melding, detailtekst. Het toont een melding in hetstatusgebied of in het message-gebied, afhankelijk vande waarde van de eerste parameter, 15 of 16, en toonteen meer gedetailleerde tekst in het detailgebied vanhet Message Center, zie beneden.• ShowMessage heeft vier parameters: melding, detailtekst,icon en alertbox. Het toont een melding in hetmessagegebied, een meer gedetailleerde tekst in hetdetailgebied van het Message Center, zie beneden, eenicon, info/warning/error met nummers 10,11,12, eneventueel een dialoogbox met deze melding.In de voorbeeldroutine zijn de verschillende mogelijkhedente bekijken. De keuze-dialoogbox is via het meegeleverdemenu op te roepen.Message CenterSinds versie V8kent MicroStationhet zogehetenMessage Centervoor het tonen vanmeldingen. Middenin de statusregelonder in hetscherm, tussen statusgebieden messagegebied,hetvakje waarin eventueeleen icoontjeAfbeelding 2.verschijnt, bevindt zich een vakje dat de mogelijkheidbiedt de dialoogbox van het Message Center te openen.In dat dialoogvenster is het mogelijk de laatste melding eneen aantal voorgaande meldingen terug te lezen.Bovendien bevat het onderste deel van die dialoogboxeventueel extra beschrijvende tekst bij de melding.Tooltips en teksten bij menuknoppenEen andere mogelijkheid voor het tonen van melding isde zogeheten tooltip-tekst. Dit is een korte tekst die in eengeelgekleurd vakje verschijnt naast het element waarbovende cursor zweeft. Dit is vaak een menuknop. Bij het aanmakenvan menuopties, zie afbeelding 2, kunnen zowelteksten voor ‘tooltip’ als voor ‘description’ worden ingevuld.De eerste melding verschijnt in het genoemde geelgekleurdevakje, de tweede verschijnt in het statusgebied.HelpbestandenWindows kent voor het weergeven van helpbestanden eenspeciaal bestandsformaat, waarbij de bestanden de extensie58<strong>CAD</strong><strong>Magazine</strong> April/Mei 2006-3

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!