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
- Creating a Module in a Standard Library
- Writing and Debugging a Basic UNO program
- Calling a Sub from the User Interface
- Creating Dialogs
- Adding Event Handlers
- AutoPilot Dialogs
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). |