Difference between revisions of "Documentation/DevGuide/Basic/Writing and Debugging a Basic UNO program"
OOoWikiBot (talk | contribs) m (Robot: Changing Category:Documentation/Developers Guide/Basic and Dialogs) |
|||
| Line 13: | Line 13: | ||
sGraphicUrl = InputBox("Please enter the URL of a graphic file", _ | sGraphicUrl = InputBox("Please enter the URL of a graphic file", _ | ||
"Import Graphics", _ | "Import Graphics", _ | ||
| − | "file:///" | + | "file:///") |
if sGraphicURL = "" then ' User clicked Cancel | if sGraphicURL = "" then ' User clicked Cancel | ||
exit sub | exit sub | ||
| Line 38: | Line 38: | ||
End Sub | End Sub | ||
| − | If help is required on Basic keywords, press F1 while the text cursor is on a keyword. The {{PRODUCTNAME}} online help contains descriptions of the Basic language as supported by {{PRODUCTNAME | + | If help is required on Basic keywords, press F1 while the text cursor is on a keyword. The {{PRODUCTNAME}} online help contains descriptions of the Basic language as supported by {{PRODUCTNAME}}. |
| − | Starting with the line < | + | Starting with the line <tt>oDoc = ThisComponent</tt>, where the document model is accessed, we use the UNO integration of {{PRODUCTNAME}} Basic. <tt>ThisComponent</tt> is a shortcut to access a document model from the Basic code contained in it. Earlier, you created <tt>Module1</tt> in ''FirstStepsBasic.odt'', that is, your Basic code is embedded in the document ''FirstStepsBasic.odt'', not in a global library below the '''My Macros''' container. The property <tt>ThisComponent</tt> therefore contains the document model of ''FirstStepsBasic.odt''. |
{{Documentation/Tip|Outside document libraries use <tt>ThisComponent</tt> or <tt>StarDesktop.CurrentComponent</tt> to retrieve the current document. If access to an open document is required, even if it is not the current document, you have to iterate over the components in <tt>StarDesktop.Components</tt>, checking their URL property with code similar to the following: | {{Documentation/Tip|Outside document libraries use <tt>ThisComponent</tt> or <tt>StarDesktop.CurrentComponent</tt> to retrieve the current document. If access to an open document is required, even if it is not the current document, you have to iterate over the components in <tt>StarDesktop.Components</tt>, checking their URL property with code similar to the following: | ||
| Line 59: | Line 59: | ||
{| cellpadding=4 | {| cellpadding=4 | ||
|[[Image:Breakpoint.png]] | |[[Image:Breakpoint.png]] | ||
| − | |To debug the program, put the cursor into the line < | + | |To debug the program, put the cursor into the line <tt>oDoc = ThisComponent</tt> and click the '''Breakpoint''' icon in the macro bar. |
|- | |- | ||
|[[Image:MacroRun.png]] | |[[Image:MacroRun.png]] | ||
| Line 71: | Line 71: | ||
|} | |} | ||
| − | To observe the values of Basic variables during debugging, enter a variable name in the '''Watch''' field of the Basic editor and press the '''Enter''' key to add the watch, or point at a variable name with the mouse cursor without clicking it. In the example below, we can observe the variables < | + | To observe the values of Basic variables during debugging, enter a variable name in the '''Watch''' field of the Basic editor and press the '''Enter''' key to add the watch, or point at a variable name with the mouse cursor without clicking it. In the example below, we can observe the variables <tt>sGraphicUrl</tt> and <tt>oGraphicObject</tt>: |
[[Image:Watch.png|none|thumb|500px|A macro in the source editor window]] | [[Image:Watch.png|none|thumb|500px|A macro in the source editor window]] | ||
Revision as of 23:29, 15 February 2009
Enter the following source code in the Basic editor window. The example asks the user for the location of a graphics file and inserts it at the current cursor position of our document. Later, the example will be extended by a small insert graphics autopilot.
Sub Main
' ask the user for a graphics file
sGraphicUrl = InputBox("Please enter the URL of a graphic file", _
"Import Graphics", _
"file:///")
if sGraphicURL = "" then ' User clicked Cancel
exit sub
endif
' access the document model
oDoc = ThisComponent
' get the Text service of the document
oText = oDoc.getText()
' create an instance of a graphic object using the document service factory
oGraphicObject = oDoc.createInstance("com.sun.star.text.GraphicObject")
' set the URL of the graphic
oGraphicObject.GraphicURL = sGraphicURL
' get the current cursor position in the GUI and create a text cursor from it
oViewCursor = oDoc.getCurrentController().getViewCursor()
oCursor = oText.createTextCursorByRange(oViewCursor.getStart())
' insert the graphical object at the cursor position
oText.insertTextContent(oCursor.getStart(), oGraphicObject, false)
End Sub
If help is required on Basic keywords, press F1 while the text cursor is on a keyword. The OpenOffice.org online help contains descriptions of the Basic language as supported by OpenOffice.org.
Starting with the line oDoc = ThisComponent, where the document model is accessed, we use the UNO integration of OpenOffice.org Basic. ThisComponent is a shortcut to access a document model from the Basic code contained in it. Earlier, you created Module1 in FirstStepsBasic.odt, that is, your Basic code is embedded in the document FirstStepsBasic.odt, not in a global library below the My Macros container. The property ThisComponent therefore contains the document model of FirstStepsBasic.odt.
To observe the values of Basic variables during debugging, enter a variable name in the Watch field of the Basic editor and press the Enter key to add the watch, or point at a variable name with the mouse cursor without clicking it. In the example below, we can observe the variables sGraphicUrl and oGraphicObject:
Since OpenOffice.org 2.0 it is also possible to inspect the values of UNO objects in the Basic debugger during runtime.
| Content on this page is licensed under the Public Documentation License (PDL). |