summaryrefslogtreecommitdiffstats
path: root/helpcontent2/source/text/sbasic/shared/compatibilitymode.xhp
blob: 4130049a692779f7ae3ab632ab0a3939ac60e4f3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?xml version="1.0" encoding="UTF-8"?>
<helpdocument version="1.0">
    <!--
    * This file is part of the LibreOffice project.
    *
    * This Source Code Form is subject to the terms of the Mozilla Public
    * License, v. 2.0. If a copy of the MPL was not distributed with this
    * file, You can obtain one at http://mozilla.org/MPL/2.0/.
    *
    -->
    <meta>
        <topic id="text/sbasic/shared/compatibilitymode" indexer="include" status="PUBLISH">
            <title id="tit" xml-lang="en-US">CompatibilityMode function</title>
            <filename>/text/sbasic/shared/compatibilitymode.xhp</filename>
        </topic>
    </meta>
    <body>
    <bookmark branch="index" id="N0103">
        <bookmark_value>CompatibilityMode</bookmark_value>
        <bookmark_value>VBA compatibility mode</bookmark_value>
    </bookmark>
    <section id="compatibilitymodefunction">
        <h1 id="N0118"><variable id="compatibilitymodeh1"><link href="text/sbasic/shared/compatibilitymode.xhp">CompatibilityMode() Function</link></variable></h1>
        <paragraph role="paragraph" id="N0120"><literal>CompatibilityMode()</literal> function controls or queries runtime mode. It affects all code executed after setting or resetting the runtime mode. </paragraph>
    </section>
    <warning id="N0119">Use this feature with caution, limit it to document conversion for example.</warning>

    <embed href="text/sbasic/shared/00000003.xhp#functsyntax"/>
    <bascode>
      <paragraph role="bascode" id="bas_id751645014686110">CompatibilityMode(Optional Enable As Boolean) As Boolean</paragraph>
    </bascode>

    <embed href="text/sbasic/shared/00000003.xhp#functvalue"/>
    <paragraph role="paragraph" id="par_id551648117368688"><literal>CompatibilityMode</literal> function always returns the mode that is active after its execution. That is, if called with an argument, it returns the new mode; if called without an argument, it returns the active mode without modifying it.</paragraph>

    <embed href="text/sbasic/shared/00000003.xhp#functparameters"/>
    <paragraph role="paragraph" id="par_id971648117815981"><emph>Enable</emph>: Sets or unsets new compatibility mode when the argument is present.</paragraph>
    <note id="par_id371648123169691"><literal>CompatibilityMode</literal> function relates to <link href="text/sbasic/shared/03103350.xhp#vbasupportstatement">Option VBASupport 1</link>, in which case it always returns <literal>True</literal>. It is unrelated to <link href="text/sbasic/shared/compatible.xhp#compatiblestatement">Option Compatible</link> compiler directive.</note>

    <paragraph role="paragraph" id="N0121">This function may affect or help in the following situations:</paragraph>
    <list type="unordered">
        <listitem><paragraph id="par_id301645018760314" role="listitem">Scoping of variables.</paragraph></listitem>
        <listitem><paragraph role="listitem" id="N0124">Running <literal>RmDir</literal> command in VBA mode. In VBA only empty directories are removed by <literal>RmDir</literal> while %PRODUCTNAME Basic removes a directory recursively.</paragraph></listitem>
        <listitem><paragraph role="listitem" id="N0125">Changing behavior of Basic <literal>Dir</literal> command. The directory flag (16) for the <literal>Dir</literal> command means that only directories are returned in %PRODUCTNAME Basic, while in VBA normal files and directories are returned.</paragraph></listitem>
        <listitem>
            <paragraph id="par_id901639929393688"  role="listitem">Color components calculation with the <link href="text/sbasic/shared/03010303.xhp"><literal>Red</literal></link> and <link href="text/sbasic/shared/03010301.xhp"><literal>Blue</literal></link> functions which <emph>are interchanged</emph> (The <link href="text/sbasic/shared/03010302.xhp"><literal>Green</literal></link> function is not affected).</paragraph>
        </listitem>
    </list>

    <embed href="text/sbasic/shared/00000003.xhp#functexample"/>
    <paragraph role="paragraph" id="par_id541561646705787">Given a NOT empty directory at <emph>file:///home/me/Test</emph></paragraph>
    <bascode>
      <paragraph role="bascode" id="par_id491561646553280" localize="false">Sub RemoveDir</paragraph>
      <paragraph role="paragraph" id="par_id731546017105932" localize="false">    MsgBox CompatibilityMode() ' False</paragraph>
      <paragraph role="paragraph" id="par_id341645017408891" localize="false"></paragraph>
      <paragraph role="bascode" id="par_id771561646565613" localize="false">    CompatibilityMode( True )</paragraph>
      <paragraph role="bascode" id="par_id311561646572637" localize="false">    RmDir( "file:///home/me/Test" )</paragraph>
      <paragraph role="bascode" id="bas_id761645015439188" localize="false">    CompatibilityMode False </paragraph>
      <paragraph role="bascode" id="bas_id51645017464045" localize="false"></paragraph>
      <paragraph role="paragraph" id="par_id731645017105932" localize="false">    MsgBox CompatibilityMode ' False</paragraph>
      <paragraph role="bascode" id="par_id851561646579895" localize="false">End Sub</paragraph>
   </bascode>
   <paragraph role="paragraph" id="par_id461561646613414">With <literal>CompatibilityMode( True )</literal> the program raises an error, otherwise the <literal>Test</literal> directory and all its content is deleted.</paragraph>
   <embed href="text/sbasic/shared/00000003.xhp#functexample"/>
   <paragraph role="paragraph" id="par_id411561647797398">Modifying <literal>Dir</literal> behavior</paragraph>
   <bascode>
    <paragraph role="bascode" id="par_id941561647889938" localize="false">Sub VBADirCommand</paragraph>
    <paragraph role="bascode" id="par_id831561647900147" xml-lang="en-US">    CompatibilityMode( Enable := True )   ' Shows also normal files</paragraph>
    <paragraph role="bascode" id="par_id931561647920869" localize="false">    Entry$ = Dir( "file:///home/me/Tmp/*.*", 16 )</paragraph>
    <paragraph role="bascode" id="par_id31561647939939" localize="false">    Total$ = ""</paragraph>
    <paragraph role="bascode" id="par_id71561647964220" localize="false">    While Entry$ &lt;&gt; ""</paragraph>
    <paragraph role="bascode" id="par_id51561647969918" localize="false">        Total$ = Total$ + Entry$ + Chr$(13)</paragraph>
    <paragraph role="bascode" id="par_id111561647975134" localize="false">        Entry$ = Dir</paragraph>
    <paragraph role="bascode" id="par_id751561647979743" localize="false">    Wend</paragraph>
    <paragraph role="bascode" id="par_id401561647986945" localize="false">    MsgBox Total$</paragraph>
    <paragraph role="bascode" id="bas_id641645017016611" xml-lang="en-US">    CompatibilityMode Enable := False ' Shows only directories</paragraph>
    <paragraph role="bascode" id="par_id111561647991525" localize="false">End Sub</paragraph>
   </bascode>

   <section id="relatedtopics">
        <embed href="text/sbasic/shared/compatible.xhp#compatiblestatement"/>
        <embed href="text/sbasic/shared/03090407.xhp#remstatement"/>
        <paragraph role="paragraph" id="N0131">
            Variables scope modification in <link href="text/sbasic/shared/01020300.xhp">Using Procedures and Functions</link> with <literal>CompatibilityMode()</literal> function.
        </paragraph>
        <embed href="text/sbasic/shared/03103200.xhp#optionbasestatement"/>
        <embed href="text/sbasic/shared/03103300.xhp#explicitstatement"/>
        <embed href="text/sbasic/shared/03103350.xhp#vbasupportstatement"/>
        <embed href="text/sbasic/shared/classmodule.xhp#classmodulestatement"/>
    </section>
</body>
</helpdocument>