Difference between revisions of "Documentation/DevGuide/Basic/Writing and Debugging a Basic UNO program"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (FINAL VERSION FOR L10N)
m
Line 7: Line 7:
 
{{Documentation/DevGuideLanguages|Documentation/DevGuide/Basic/{{SUBPAGENAME}}}}  
 
{{Documentation/DevGuideLanguages|Documentation/DevGuide/Basic/{{SUBPAGENAME}}}}  
 
  {{DISPLAYTITLE:Writing and Debugging a Basic UNO program}}
 
  {{DISPLAYTITLE:Writing and Debugging a Basic UNO program}}
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.  
+
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.
 +
<source lang="oobas">
 
<!--[SOURCE:BasicAndDialogs/FirstStepsBasic.odt]-->
 
<!--[SOURCE:BasicAndDialogs/FirstStepsBasic.odt]-->
 
 
   Sub Main
 
   Sub Main
 
       ' ask the user for a graphics file
 
       ' ask the user for a graphics file
Line 38: Line 38:
 
       oText.insertTextContent(oCursor.getStart(), oGraphicObject, false)
 
       oText.insertTextContent(oCursor.getStart(), oGraphicObject, false)
 
   End Sub
 
   End Sub
 
+
</source>
 
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}}.
  

Revision as of 19:04, 21 December 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.

<!--[SOURCE:BasicAndDialogs/FirstStepsBasic.odt]-->
  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.

Template:Documentation/Tip


Breakpoint.png To debug the program, put the cursor into the line oDoc = ThisComponent and click the Breakpoint icon in the macro bar.
MacroRun.png The Run icon launches the first Sub in the current module. Execution stops with the first breakpoint.
SingleStep.png Now step through the program by clicking the Single Step icon.
Macros.png Click the Macros icon if you need to run a Sub other than the first Sub in the module.. In the OpenOffice.org Basic Macros dialog, navigate to the appropriate module, select the Sub to run and press the Run button.

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:

A macro in the source editor window

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).
Personal tools
In other languages