Jeg deltog på museernes Arkæologisk GIS Forum på Lindholm Høje Museet i mandags.
En af deltagerne spurgte, hvorfor man ikke kunne tildele genvejstaster til værktøjerne i MapInfo Professional – ja han gjorde faktisk opmærksom på, at han gentagne gange havde bedt om denne mulighed.
Nu er der et stykke vej fra Aalborg til Sønderjylland, så det gav mig mulighed for at overveje, hvordan man kunne løse netop dette.
Den kendte løsning er, at man manuelt i menufilen (MapInfow.mnu) tilføjer menupunkter for de værktøjer, som man ønsker en genvejsknap til. Problemet her er, at det skal man gøre hver gang, der kommer en ny version af MapInfo Professional.
Alternativt kan man lave et lille program, der kan gøre det for en. Det valgte jeg at gøre. Faktisk viste det sig at være nemmere en jeg havde troet.
I programmet starter jeg med at definere to menupunkter, som gør det muligt at skifte mellem en række værktøjer- Man skifter altså enten op eller ned i rækkefølgen. Jeg anvender Ctrl+Q til at vælge næste værktøj og Ctrl+Alt+Q til at vælge forrige værktøj. I koden kan man angive andre genvejstaster.
Create Menu "ToolSwitcher" As
"Switch to next tool" & Chr$(9) & "Ctrl+Q/W^Q"
Calling MENUSwitchToNextTool,
"Switch to previous tool" & Chr$(9) & "Ctrl+Alt+Q/W^@Q"
Calling MENUSwitchToPreviousTool,
"(-",
"End ToolSwitcher"
Calling MENUEndProgram
Alter Menu ID 4 Add
"ToolSwitcher" As "ToolSwitcher"
Vær opmærksom på, at det først er fra MapInfo Professional 10.0, at MapInfo Professional understøtter anvendelsen af mere end en Ctrl/Alt/Shift genvejstast ad gangen.
Efterfølgende definerer jeg en liste med de værktøjer, som jeg oftest anvender og som jeg derfor ønsker at kunne skifte i mellem.
Redim marrToolIDs(5)
marrToolIDs(1) = M_TOOLS_SELECTOR
marrToolIDs(2) = M_TOOLS_EXPAND
marrToolIDs(3) = M_TOOLS_SHRINK
marrToolIDs(4) = M_TOOLS_RECENTER
marrToolIDs(5) = M_TOOLS_PNT_QUERY
I procedurerne der kaldes af menupunkterne, vælges altså henholdsvis næste eller forrige værktøj fra listen. Her illustreret ved vælg næste værktøjs proceduren:
Sub MENUSwitchToNextTool
If mnCurrentTool = Ubound(marrToolIDs) Then
mnCurrentTool = 1
Else
mnCurrentTool = mnCurrentTool + 1
End If
Run Command "Run Menu Command " & marrToolIDs(mnCurrentTool)
End Sub
Meget simpel konstruktion. Programmet kan udvides med specifikke genvejstaster til nogle udvalgte værktøjer.
I kan hente program og sourcekoden her: ToolSwitcher
Peter


