04. august 2003 - 10:50Der er
9 kommentarer og 1 løsning
Shortcut keys til styles i OpenOffice og StarOffice
Hej!
I Microsoft Office har man mulighed for at tildele Shortcut Keys til styles - jeg har for eksempel tildelt Alt+1 til heading 1 - Alt+2 til heading 2 osv, og det betyder, at når jeg skriver tekster, kan jeg nemt markere linier og tildele det korrekte afsnit-hieraki. Nu er problemet bare, at jeg kun bruger MS Office på arbejde, og jeg savner funktionen hjemme. Hvordan kan man lave noget tilsvarende i OO eller SO?
Nej - shortcut keys direkte til styles findes ikke - mit spørgsmål går på, hvordan man laver noget tilsvarende. En løsning ville være en makro, som kaldte en style funktion, men det indbyggede makrosprog kan itlsyneladende kun kalde de funktioner, som ligger i menuerne - og styles ligger i et modul for sig, som jeg ikke kan kalde med en makro.
Netop! Derfor kan du ikke tildele en shortcut til en style i StarOffice. Heller ved at lave noget tilsvarende til MSOffice, da StarOffice ikke har mulighed for at lave noget tilsvarende.
Selvfølgelig kan man lave en tilsvarende funktionalitet - om ikke andet er source koden tilgængelig, så i yderste konsekvens kan man selv kode det ind i programmet, men det er en større opgave, end jeg gider give mig i kast med, og derfor spørger jeg her, om andre har en nemmere løsning.
Med tilsvarende mener jeg ikke, at det skal hedde ShortCut keys og være en tro kopi af MS Office skrevet i Visual Basic og med dansende papirclips. Jeg har beskrevet mit behov, som er, at jeg skal kunne markere en tekst og tilføje en style ved en tastekombination. Tilsvarende funktionalitet vil være en hvilken som helst løsning, som tilgodeser dette behov.
I rest my case! Selvfølgelig kan det kodes ind i programmet via sourcekoden, det har du ret i. Den mulighed var bare længere ude end min fantasi rakte til.
Misforstå mig ikke - jeg har ingen planer om selv at kode det ind. Det var bare for at understrege min pointe: At jeg søger en løsning på problemet - ikke nødvendigvis en direkte kopi af Microsoft's løsning. Jeg har i øvrigt haft spørgsmålet liggende et par gange både her og på sslug, så det kan være, at jeg på et tidspunkt må indse, at der bare ikke er en nem løsning.
Du kan godt lave en makro (eller rettere flere), der gør det.
Lav først følgende funktion:
Function SetCurrentParaStyle ( NewStyle ) Dim oDocument, oDesktop As Object Dim oText As Object Dim oVCursor, oCursor As Object oDesktop = createUnoService("com.sun.star.frame.Desktop") oDocument = oDesktop.getCurrentComponent() oText = oDocument.Text oVCursor = oDocument.currentcontroller.getViewCursor() oCursor = oText.createTextCursorByRange(oVCursor.getstart()) ' Set the style of your choice in the line below... oCursor.paraStyleName = NewStyle End Function
Den forventer en varibel, der fortæller om den ønskede style.
Lav så en makro for hver style, der kalder funktionen med stylen's navn som input, fx:
Sub Heading1 SetCurrentParaStyle( "Heading 1" ) End Sub
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.