__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

[email protected]: ~ $
<!DOCTYPE html>
<html lang="es" dir="ltr">
<head>
<base href="../../../../">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Monitorización de los eventos del documento</title>
<link rel="shortcut icon" href="media/navigation/favicon.ico">
<link type="text/css" href="normalize.css" rel="Stylesheet">
<link type="text/css" href="prism.css" rel="Stylesheet">
<link type="text/css" href="default.css" rel="Stylesheet">
<script type="text/javascript" src="polyfills.js"></script><script type="text/javascript" src="languages.js"></script><script type="text/javascript" src="es/langnames.js"></script><script type="text/javascript" src="flexsearch.debug.js"></script><script type="text/javascript" src="prism.js"></script><script type="text/javascript" src="help2.js" defer></script><script type="text/javascript" src="a11y-toggle.js" defer></script><script type="text/javascript" src="paginathing.js" defer></script><script type="text/javascript" src="es/bookmarks.js" defer></script><script type="text/javascript" src="es/contents.js" defer></script><script type="text/javascript" src="help.js" defer></script><meta name="viewport" content="width=device-width,initial-scale=1">
</head>
<body>
<header id="TopLeftHeader"><a class="symbol" href="es/text/shared/05/new_help.html"><div></div></a><a class="logo" href="es/text/shared/05/new_help.html"><p dir="auto">Ayuda de LibreOffice 25.2</p></a><div class="dropdowns"><div class="modules">
<button type="button" data-a11y-toggle="modules-nav" id="modules" aria-haspopup="true" aria-expanded="false" aria-controls="modules-nav">Módulo</button><nav id="modules-nav" hidden=""></nav>
</div></div></header><aside class="leftside"><input id="accordion-1" name="accordion-menu" type="checkbox"><label for="accordion-1" dir="auto">Contenido</label><div id="Contents" class="contents-treeview"></div></aside><div id="SearchFrame"><div id="Bookmarks">
<input id="search-bar" type="search" class="search" placeholder="Buscar en los marcadores del módulo elegido" dir="auto"><div class="nav-container" tabindex="0"><nav class="index" dir="auto"></nav></div>
</div></div>
<div id="DisplayArea" itemprop="softwareHelp" itemscope="true" itemtype="http://schema.org/SoftwareApplication">
<noscript><div id="WarnJS"><h1 dir="auto">Active JavaScript en el navegador para mostrar las páginas de ayuda de LibreOffice.</h1></div></noscript>
      <a id="N0526"></a>         <meta itemprop="keywords" content="Basic,Monitorización de eventos de documento">         <meta itemprop="keywords" content="Python,Monitorización de eventos de documento">         <meta itemprop="keywords" content="Access2Base,Consola">         <meta itemprop="keywords" content="Access2Base,Traza">         <meta itemprop="keywords" content="API,document.DocumentEvent: Monitorización de eventos de documento">         <meta itemprop="keywords" content="API,document.XDocumentEventBroadcaster: Monitorización de eventos de documento">         <meta itemprop="keywords" content="API,document.XDocumentEventListener: Monitorización de eventos de documento">         <meta itemprop="keywords" content="API,lang.EventObject: Monitorización de eventos de documento">
      <a id="pythonmonitor1"></a>
          <h1 id="N0527" dir="auto">
<a id="pythonmonitor"></a>Escucha de eventos de documento</h1>
      <p id="par_id641630582314861" class="paragraph" dir="auto">Escuchar los eventos del documento puede ser útil en situaciones como las siguientes:</p>
      <ul itemprop="Unordered" itemscope="true" itemtype="http://schema.org/ItemList" dir="auto">
        <li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
          <p id="par_id431630582396327" class="listitem" dir="auto">Identificar un nuevo documento en el momento de la apertura, a diferencia de los existentes, y realizar una configuración específica.</p>
        </li>
        <li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
          <p id="par_id461630582396782" class="listitem" dir="auto">Controlar el procesamiento de las solicitudes para guardar, copiar o imprimir documentos o para combinar correspondencia.</p>
        </li>
        <li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
          <p id="par_id631630582394790" class="listitem" dir="auto">Recalcular la tabla de contenidos, los índices o las entradas de la tabla de un documento del escritos cuando se va a cerrar el documento.</p>
        </li>
        <li itemprop="itemListElement" itemscope="true" itemtype="http://schema.org/ItemListUnordered" dir="auto">
          <p id="par_id601630582398998" class="listitem" dir="auto">Importar los paquetes matemáticos de Python antes de abrir un documento Calc. Liberar estos paquetes cuando el documento se cierra.</p>
        </li>
      </ul>
      <p id="N0528" class="paragraph" dir="auto">Además de <a target="_top" href="es/text/sbasic/shared/01040000.html">asignar macros a eventos</a>, es posible monitorizar los eventos emitidos por los documentos de LibreOffice. Los emisores de API (interfaz de programación de aplicaciones, por sus siglas en inglés) son responsables de llamar a las macros de los eventos. A diferencia de los agentes de escucha, que requieren que se definan todos los métodos admitidos, incluso si estos no se utilizan, los monitores de documento únicamente requieren dos métodos junto a las macros conectadas de eventos.</p>
      
      <h2 id="N0529" dir="auto">Monitorización de los eventos del documento</h2>
      <p id="N0530" class="paragraph" dir="auto">A continuación se ilustra la monitorización para los lenguajes Basic y Python mediante la programación orientada a objetos. La asignación de la secuencia de órdenes <span class="literal">OnLoad</span> al evento <span class="menuitem">Abrir documento</span> es suficiente para iniciar y finalizar la monitorización de eventos del documento. La pestaña <span class="menuitem">Eventos</span> del menú <span class="menuitem">Herramientas ▸ Personalizar</span> se utiliza para asignar cualquiera de las dos secuencias de órdenes.</p>
      <p id="N0531" class="paragraph" dir="auto">La interceptación de eventos ayuda a establecer las condiciones previas y posteriores de las secuencias de órdenes, como la carga y descarga de bibliotecas o el seguimiento del procesamiento de las secuencias de órdenes en segundo plano. El uso del módulo <span class="literal">Access2Base.Trace</span> ilustra este segundo contexto.</p>
     <h3 id="N0532" dir="auto">Con Python</h3>
      <a id="bm_id721622446590963"></a>        <meta itemprop="keywords" content="API,frame.Desktop: Monitorización de eventos de documento">        <meta itemprop="keywords" content="API,script.provider.MasterScriptProviderFactory: Monitorización de eventos de documento">        <meta itemprop="keywords" content="API,script.provider.XScript: Monitorización de eventos de documento">
      <p id="N0533" class="paragraph" dir="auto">La monitorización de eventos inicia desde la instanciación del objeto y termina cuando Python libera el objeto. Los eventos producidos se reportan mediante la consola <span class="literal">Access2Base</span></p>
      <div class="note">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/note.svg" alt="note" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="N0534" dir="auto">Los eventos <span class="literal">OnLoad</span> y <span class="literal">OnUnload</span> se pueden utilizar para establecer y restablecer respectivamente la ruta de los programas de Python. Se describen como <span class="menuitem">Abrir documento</span> y <span class="menuitem">Cerrar documento</span>.</p></div>
</div>
<br>
      <div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
         # -*- coding: utf-8 -*-
         from __future__ import unicode_literals
             
         import os.path, uno, unohelper
         from com.sun.star.document import DocumentEvent, \
             XDocumentEventListener as AdapterPattern
         from com.sun.star.lang import EventObject
             
         class UiDocument(unohelper.Base, AdapterPattern):
             """ Monitor de eventos del documento """
             '''
             adaptado de la secuencia de órdenes 'Python script to monitor OnSave event', que se encuentra en:
             https://forum.openoffice.org/en/forum/viewtopic.php?t=68887
             '''
             def __init__(self):
                 """ Monitor de eventos del documento """
                 ''' Reporta mediante la consola Access2Base.Trace o
                 reporta en 1.ª hoja, 1.ª columna para documentos de Calc '''
                 ctx = uno.getComponentContext()
                 smgr = ctx.getServiceManager()
                 desktop = smgr.createInstanceWithContext(
                 'com.sun.star.frame.Desktop' , ctx)
                 self.doc = desktop.CurrentComponent
                 #self.row = 0  # descomentarice solo en documentos de Calc
                 Console.setLevel("DEBUG")
                 self.listen()  # Inicia seguimiento de eventos del documento
             
             @property
             def Filename(self) -&gt; str:
                 sys_filename = uno.fileUrlToSystemPath(self.doc.URL)
                 return os.path.basename(sys_filename)
             
             def setCell(self, calcDoc, txt: str):
                 """ Saca los eventos del documento en la 1ª columna de una hoja de cálculo Calc """
                 sheet = calcDoc.getSheets().getByIndex(0)
                 sheet.getCellByPosition(0,self.row).setString(txt)
                 self.row = self.row + 1
             
             def listen(self, *args):  # OnLoad/OnNew, lo antes posible
                 """ Iniciar la monitorización de los eventos del documento """
                 self.doc.addDocumentEventListener(self)
                 Console.log("INFO", "Se están registrando los eventos del documento", True)
             
             def sleep(self, *args):  # OnUnload hasta el final (opcional)
                 """ Detener la monitorización de los eventos del documento """
                 self.doc.removeDocumentEventListener(self)
                 Console.log("INFO", "Se han registrado los eventos del documento", True)
             
             def documentEventOccured(self, event: DocumentEvent):
                 """ Intercepta todos los eventos del documento """
                 #self.setCell(event.Source, event.EventName) # solo para documentos Calc
                 Console.log("DEBUG",
                     event.EventName+" in "+self.Filename,
                     False)
             
             def disposing(self, event: EventObject):
                 """ Liberar todas las actividades """
                 self.sleep()
                 Console.show()
             
         def OnLoad(*args):  # Evento «Abrir documento»
             listener = UiDocument()  # Inicia la escucha
             
         def OnUnload(*args): # Evento «El documento se ha cerrado»
             pass  # (opcional) realizado cuando se desecha
             
         g_exportedScripts = (OnLoad,)
             
         from com.sun.star.script.provider import XScript
         class Console():
             """
             Puesta en primer o segundo plano de la consola para registrar la ejecución del programa.
             """
             @staticmethod
             def trace(*args,**kwargs):
                 """ Imprime la lista de elementos libres en la consola """
                 scr = Console._a2bScript(script='DebugPrint', module='Compatible')
                 scr.invoke((args),(),())
             @staticmethod
             def log(level: str, text: str, msgBox=False):
                 """ Anexar el mensaje de registro a la consola, con indicación opcional al usuario """
                 scr = Console._a2bScript(script='TraceLog')
                 scr.invoke((level,text,msgBox),(),())
             @staticmethod
             def setLevel(logLevel: str):
                 """ Establecer el límite inferior de los mensajes de registro """
                 scr = Console._a2bScript(script='TraceLevel')
                 scr.invoke((logLevel,),(),())
             @staticmethod
             def show():
                 """ Mostrar el contenido o un diálogo de la consola """
                 scr = Console._a2bScript(script='TraceConsole')
                 scr.invoke((),(),())
             @staticmethod
             def _a2bScript(script: str, library='Access2Base',
                 module='Trace') -&gt; XScript:
                 ''' Coge la secuencia de órdenes Basic basada en la aplicación '''
                 sm = uno.getComponentContext().ServiceManager
                 mspf = sm.createInstanceWithContext(
                     "com.sun.star.script.provider.MasterScriptProviderFactory",
                     uno.getComponentContext())
                 scriptPro = mspf.createScriptProvider("")
                 scriptName = "vnd.sun.star.script:"+library+"."+module+"."+script+"?language=Basic&amp;location=application"
                 xScript = scriptPro.getScript(scriptName)
                 return xScript
      </code></pre></div>
      <div class="warning">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/warning.svg" alt="warning" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="N0647" dir="auto">Preste atención al error ortográfico en el método <span class="literal">documentEventOccured</span>, que proviene de la interfaz de programación de aplicaciones (API, por sus siglas en inglés) de LibreOffice.</p></div>
</div>
<br>
      <div class="tip">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/tip.svg" alt="Icono de consejo" style="width:40px;height:40px;"></div>
<div class="notetext"><p dir="auto">Los eventos <span class="menuitem">Iniciar aplicación</span> and <span class="menuitem">Cerrar la aplicación</span> pueden ser usados, respectivamente, para establecer o restablecer la ruta a las secuencias de órdenes Python del usuario o de la aplicación LibreOffice. De manera similar, las bibliotecas o los módulos Python incluidos en los documentos pueden ser cargados y liberados mediante los eventos <span class="menuitem">Abrir documento</span> y <span class="menuitem">Documento cerrado</span>. Vea <a target="_top" href="es/text/sbasic/python/python_import.html">Importación de módulos Python</a> para mayores detalles.</p></div>
</div>
<br>
     <h3 id="N0649" dir="auto">Con LibreOffice Basic</h3>
      <a id="bm_id591622446367707"></a>        <meta itemprop="keywords" content="API,GlobalScope.BasicLibraries">        <meta itemprop="keywords" content="Herramientas,Cadenas">
      <p id="N0650" class="paragraph" dir="auto">Al usar la pestaña <span class="menuitem">Eventos</span> del menú <span class="menuitem">Herramientas ▸ Personalizar</span>, el evento <span class="menuitem">Abrir documento</span> dispara una inicialización de <span class="literal">ConsoleLogger</span>. La rutina <span class="literal">_documentEventOccured</span>, establecida por <span class="literal">Console Logger</span>, sirve como punto de entrada único para atrapar todos los eventos de documento.</p>
      <h4 id="hd_id421630510141729" dir="auto">Módulo controller.Events</h4>
      <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
        Option Explicit
        
        Global _obj As Object ' instancia de controller.ConsoleLogger
        
        Sub OnLoad(evt As com.sun.star.document.DocumentEvent) ' &gt;&gt; Abrir documento &lt;&lt;
            _obj = New ConsoleLogger : _obj.StartAdapter(evt)
        End Sub ' controller.OnLoad
        Sub _documentEventOccured(evt As com.sun.star.document.DocumentEvent)
            ''' Punto de entrada único de ConsoleLogger '''
             _obj.DocumentEventOccurs(evt)
        End Sub ' controller._documentEventOccured
      </code></pre></div>
      <h4 id="hd_id721630511986813" dir="auto">Módulo de clase controller.ConsoleLogger</h4>
      <p id="par_id901630509435225" class="paragraph" dir="auto">La monitorización de eventos se inicia desde el momento en que se instancia un objeto <span class="literal">ConsoleLogger</span> y finalmente se detiene al cerrar el documento. La rutina <span class="literal">StartAdapter</span> carga las bibliotecas Basic necesarias, mientras que los eventos capturados se reportan mediante el módulo <span class="literal">Access2Base.Trace</span>.</p>
      <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
          Option Explicit
          Option Compatible
          Option ClassModule
              
          ' Objeto del patrón de diseño ADAPTER que se instanciará en el evento "Abrir documento".
          Private Const UI_PROMPT = True
          Private Const UI_NOPROMPT = Falso ' Poner como Verdadero para visualizar los eventos de los documentos
              
          ' MIEMBROS
          Private _evtAdapter As Object ' com.sun.star.document.XDocumentEventBroadcaster
          Private _txtMsg As String ' mensaje de texto para hacer registros en la consola
              
          ' PROPIEDADES
          Private Property Get FileName As String
              ''' nombre de archivo dependiente del sistema '''
              Const _LIBRARY = "Tools" : With GlobalScope.BasicLibraries
                  If Not .IsLibraryLoaded(_LIBRARY) Then .LoadLibrary(_LIBRARY)
              End With
              Filename = Tools.Strings.FilenameOutofPath(ThisComponent.URL)
          End Property ' controller.ConsoleLogger.Filename
              
          ' MÉTODOS
          Public Sub DocumentEventOccurs(evt As com.sun.star.document.DocumentEvent)
              ''' Monitorizar eventos de documento '''
              Access2Base.Trace.TraceLog("DEBUG", _
                  evt.EventName &amp;" in "&amp; Filename(evt.Source.URL), _
                  UI_NOPROMPT)
              Select Case evt.EventName
                  Case "OnUnload" : _StopAdapter(evt)
              End Select
          End Sub ' controller.ConsoleLogger.DocumentEventOccurs
              
          Public Sub StartAdapter(Optional evt As com.sun.star.document.DocumentEvent)
              ''' Iniciar registro de eventos de documento '''
              Const _LIBRARY = "Access2Base" : With GlobalScope.BasicLibraries
                  If Not .IsLibraryLoaded(_LIBRARY) Then .LoadLibrary(_LIBRARY)
              End With : Access2Base.Trace.TraceLevel("DEBUG")
              If IsMissing(evt) Then _txtMsg = "" Else _txtMsg = evt.EventName &amp; "-"
              Access2Base.Trace.TraceLog("INFO", _txtMsg &amp; "Se están registrando los eventos del documento", UI_PROMPT)
              _evtAdapter = CreateUnoListener( "_", "com.sun.star.document.XDocumentEventListener" )
              ThisComponent.addDocumentEventListener( _evtAdapter )
          End Sub ' controller.ConsoleLogger.StartAdapter
              
          Private Sub _StopAdapter(Optional evt As com.sun.star.document.DocumentEvent)
              ''' Terminar el registro de eventos del documento '''
              ThisComponent.removeDocumentEventListener( _evtAdapter )
              If IsMissing(evt) Then _txtMsg = "" Else _txtMsg = evt.EventName &amp; "-"
              Access2Base.Trace.TraceLog("INFO", _txtMsg &amp; "Se registraron los eventos del documento", UI_PROMPT)
              Access2Base.Trace.TraceConsole() ' Diálogo con los eventos capturados
          End Sub ' controller.ConsoleLogger._StopAdapter
              
          ' EVENTOS
          ' Su código para la gestión de eventos va aquí
      </code></pre></div>
      <div class="warning">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/warning.svg" alt="warning" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="N0724" dir="auto">Preste atención al error ortográfico en el método <span class="literal">_documentEventOccured</span>, que proviene de la interfaz de programación de aplicaciones (API, por sus siglas en inglés) de LibreOffice.</p></div>
</div>
<br>
     <h2 id="N0725" dir="auto">Descubrimiento de eventos de documento</h2>
        <a id="bm_id681622445958242"></a>           <meta itemprop="keywords" content="API,frame.GlobalEventBroadcaster: Monitorización de eventos del documento">
      <p id="N0726" class="paragraph" dir="auto">El objeto API de emisora proporciona la lista de los eventos de los que es responsable:</p>
      <h3 id="N0727" dir="auto">Con Python</h3>
      <div class="pycode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-python line-numbers">
         # -*- coding: utf-8 -*-
         from __future__ import unicode_literals
             
         import uno, apso_utils as ui
             
         def displayAvailableEvents():
             """ Mostrar eventos del documento """
             '''
             adaptado de DisplayAvailableEvents() por A. Pitonyak
             https://forum.openoffice.org/en/forum/viewtopic.php?&amp;t=43689
             '''
             ctx = XSCRIPTCONTEXT.getComponentContext()
             smgr = ctx.ServiceManager
             geb = smgr.createInstanceWithContext(
                 "com.sun.star.frame.GlobalEventBroadcaster", ctx)
             events = geb.Events.getElementNames()
             ui.msgbox('; '.join(events))
             
         g_exportedScripts = (displayAvailableEvents,)
      </code></pre></div>
      <div class="note">
<div class="noteicon" dir="auto"><img src="media/icon-themes/res/helpimg/note.svg" alt="note" style="width:40px;height:40px;"></div>
<div class="notetext"><p id="N0747" dir="auto">La extensión Organizador Alternativo de Secuencias de Órdenes Python o <a target="_blank" href="https://extensions.libreoffice.org/extensions/apso-alternative-script-organizer-for-python">Alternative Python Script Organizer (APSO)</a> se usa para desplegar en pantalla la información de los eventos.</p></div>
</div>
<br>
      <h3 id="N0748" dir="auto">Con LibreOffice Basic</h3>
      <div class="bascode" itemscope="true" itemtype="http://schema.org/SoftwareSourceCode" itemprop="codeSampleType" content="snippet" data-tooltip="Pulse en el texto para copiarlo en el portapapeles"><pre dir="auto"><code class="language-visual-basic line-numbers">
         Sub DisplayAvailableEvents
             ''' Mostrar eventos del documento '''
             Dim geb As Object ' com.sun.star.frame.GlobalEventBroadcaster
             Dim events() As String
             geb = CreateUnoService("com.sun.star.frame.GlobalEventBroadcaster")
             events = geb.Events.ElementNames()
             MsgBox Join(events, "; ")
         End Sub
      </code></pre></div>
      <a id="relatedtopics"></a><div class="relatedtopics">
<p class="related" itemprop="mentions" dir="auto"><a id="related"></a><span class="emph">Temas relacionados</span></p>
<div class="relatedbody" itemprop="mentions">
         <div class="embedded"><p class="embedded" dir="auto"><a target="_top" href="es/text/sbasic/python/python_listener.html">Creating Event Listeners</a></p></div>
         <div class="embedded"><p class="embedded" dir="auto"><a target="_top" href="es/text/sbasic/python/python_import.html">Importar módulos de Python</a></p></div>
         <div class="embedded"><p class="embedded" dir="auto"><a target="_top" href="es/text/sbasic/python/python_handler.html">Creación de un controlador de diálogos</a></p></div>
         <div class="embedded"><p class="embedded" dir="auto"><a target="_top" href="es/text/sbasic/python/python_examples.html">Ejemplos de programación en Python</a></p></div>
         <div class="embedded"><p class="embedded" dir="auto"><a target="_top" href="es/text/sbasic/python/python_programming.html">Programar con secuencias de órdenes en Python</a></p></div>
         <div class="embedded"><p class="embedded" dir="auto"><a target="_top" href="es/text/sbasic/python/python_2_basic.html">Llamar macros en Basic desde Python</a></p></div>
      </div>
</div>
   </div>
<div id="DonationFrame"></div>
<footer><h2 style="text-align: center;"><a href="https://books.libreoffice.org" target="_blank">Libros de LibreOffice</a></h2>
<div class="noteicon" dir="auto" style="display:flex;justify-content:center;flex-wrap:wrap;row-gap:15px;">
<img src="media/navigation/libo-writer.svg" alt="Writer Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-calc.svg" alt="Calc Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-impress.svg" alt="Impress Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-draw.svg" alt="Draw Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-base.svg" alt="Base Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-math.svg" alt="Math Icon" style="width:60px;height:60px;"><img src="media/navigation/libo-symbol-black.svg" alt="Getting Started Icon" style="width:60px;height:60px;">
</div>
<div id="DEBUG" class="debug">
<h3 class="bug">Help content debug info:</h3>
<p dir="auto">This page is: <a href="https://opengrok.libreoffice.org/xref/help/source/text/sbasic/python/python_document_events.xhp" target="_blank">/text/sbasic/python/python_document_events.xhp</a></p>
<p dir="auto">Title is: Monitorización de los eventos del documento</p>
<p id="bm_module" dir="auto"></p>
<p id="bm_system" dir="auto"></p>
<p id="bm_HID" dir="auto"></p>
</div></footer>
</body>
</html>

Filemanager

Name Type Size Permission Actions
main0000.html File 9.78 KB 0644
python_2_basic.html File 16.96 KB 0644
python_dialogs.html File 8.53 KB 0644
python_document_events.html File 25.83 KB 0644
python_examples.html File 6.89 KB 0644
python_handler.html File 17.02 KB 0644
python_ide.html File 6.29 KB 0644
python_import.html File 13.13 KB 0644
python_listener.html File 13.14 KB 0644
python_locations.html File 10.53 KB 0644
python_platform.html File 11.23 KB 0644
python_programming.html File 23.74 KB 0644
python_screen.html File 12.79 KB 0644
python_session.html File 13.14 KB 0644
python_shell.html File 12 KB 0644
Filemanager