Difference between revisions of "Documentation/BASIC Guide/Documents"

From Apache OpenOffice Wiki
Jump to: navigation, search
m (Robot: Automated text replacement (-{{InterWiki Languages BasicGuide\|articletitle={{PAGENAME}}}} + ))
m (ThisComponent: "instruction" -> "object")
(6 intermediate revisions by 4 users not shown)
Line 11: Line 11:
  
 
* [[Documentation/BASIC Guide/StarDesktop|The StarDesktop]]
 
* [[Documentation/BASIC Guide/StarDesktop|The StarDesktop]]
* [[Documentation/BASIC Guide/Templates|Templates]]
+
* [[Documentation/BASIC Guide/Templates|Styles and Templates]]
 +
 
 +
=== The current document ===
 +
In previous versions of the Basic Programming Guide these instructions were used to obtain the current document :
 +
<source lang="oobas">
 +
Dim Doc As Object
 +
 
 +
Doc = StarDesktop.CurrentComponent
 +
</source>
 +
This correct code has a drawback : it does not work if the macro is started from the IDE because it then refers to the IDE, not the document. This code works only if the macro is started from the document itself!
 +
 
 +
You should instead use Basic object <b><tt>ThisComponent</tt></b>. It returns the document object on which the macro is run. If you start the macro from the IDE, <b><tt>ThisComponent</tt></b> will still find and return your document.
 +
<source lang="oobas">
 +
Dim Doc As Object
 +
 
 +
Doc = ThisComponent ' recommended coding for Basic
 +
</source>
  
 
   
 
   
 +
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Documents}}
 
{{PDL1}}
 
{{PDL1}}

Revision as of 08:22, 24 January 2010


The Apache OpenOffice API has been structured so that as many of its parts as possible can be used universally for different tasks. This includes the interfaces and services for creating, opening, saving, converting, and printing documents and for template administration. Since these function areas are available in all types of documents, they are explained first in this chapter.

The current document

In previous versions of the Basic Programming Guide these instructions were used to obtain the current document :

Dim Doc As Object
 
Doc = StarDesktop.CurrentComponent

This correct code has a drawback : it does not work if the macro is started from the IDE because it then refers to the IDE, not the document. This code works only if the macro is started from the document itself!

You should instead use Basic object ThisComponent. It returns the document object on which the macro is run. If you start the macro from the IDE, ThisComponent will still find and return your document.

Dim Doc As Object
 
Doc = ThisComponent ' recommended coding for Basic


Content on this page is licensed under the Public Documentation License (PDL).
Personal tools