Visualizzare una ToolBar tramite Macro

Creare una macro - Scrivere uno script - Usare le API
Rispondi
paolo.zecchini
Messaggi: 3
Iscritto il: martedì 24 maggio 2011, 15:13

Visualizzare una ToolBar tramite Macro

Messaggio da paolo.zecchini »

Salve a tutti.

Avrei la necessita di creare una macro che possa visualizzare tramite pulsante o menu una barra degli strumenti internamente ad open draw.

Nessuno può darmi una mano?

Mille grazie Paolo.
OpenOffice 3.1 su Windows Vista
c.spaziani
Messaggi: 21
Iscritto il: lunedì 16 gennaio 2012, 12:48

Re: Visualizzare una ToolBar tramite Macro

Messaggio da c.spaziani »

Mostra barra:

Codice: Seleziona tutto

ThisComponent.CurrentController.Frame.LayoutManager.showElement("private:resource/toolbar/standardbar")
Nascondi barra:

Codice: Seleziona tutto

ThisComponent.CurrentController.Frame.LayoutManager.hideElement("private:resource/toolbar/standardbar")
OpenOffice 3.4.1
LibreOffice 3.6.1.2
Microsoft Windows 7 (6.1) x64 Ultimate Edition Service Pack 1 (Build 7601)
Avatar utente
Mizio1961
Volontario
Volontario
Messaggi: 841
Iscritto il: mercoledì 5 ottobre 2011, 22:55
Località: Roma

Re: Visualizzare una ToolBar tramite Macro

Messaggio da Mizio1961 »

Esiste qualche altro riferimento per toolbar, menù a popup ecc relativi a come automatizzare da macro creaione, aggiornamento, cancellazione di questa parte dell'interfaccia grafica?
Saluti
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto. ;-)
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

Re: Visualizzare una ToolBar tramite Macro

Messaggio da sanraff »

Buonasera, la mia versione di OpenOffice è la 3.3 installata su SO Windows 7.
Ho trovato molto interessante questa guida per visualizzare una toolbar tramite Macro, infatti ho provato questi comandi descritti e funzionano.
Invece, quello che non riesco a fare e che se utilizzo la stessa istruzione per nascondere e poi mostrare la "barra di Formattazione", "la barra di Formattazione del testo" oppure qualsiasi dicitura riportata nel sottomenù "Visualizza - Barra degli strumenti", la macro non funziona.
Infatti se questa istruzione
ThisComponent.CurrentController.Frame.LayoutManager.hideElement("private:resource/toolbar/standardbar")
la sostituisco con questa
ThisComponent.CurrentController.Frame.LayoutManager.hideElement("private:resource/toolbar/formattingbar")
e lancio la macro, non succede niente, come non succede niente se provo a gestire tutti i passaggi con il "Registratore di macro".
Sicuramente questo accade perchè non conosco la corretta istruzione e perchè non so se la parola "formattingbar" è giusta.
Ringraziandovi per un eventuale aiuto, saluti.
OpenOffice 3.3 SU WINDOWS 7
Avatar utente
Mizio1961
Volontario
Volontario
Messaggi: 841
Iscritto il: mercoledì 5 ottobre 2011, 22:55
Località: Roma

Re: Visualizzare una ToolBar tramite Macro

Messaggio da Mizio1961 »

Ciao
In questo topic trovi un pò di tutto sulle toolbar personalizzate
http://forum.openoffice.org/it/forum/vi ... 993#p13993
Inoltre guarda le due macro che seguono:

Codice: Seleziona tutto

public sub HideLM
   dim oForm as object
   dim oFormLM as object
   dim i as integer
   msgbox "Hide"
   oForm    = Thiscomponent
   oFormLM  = oForm.CurrentController.Frame.LayoutManager
   for i = lbound(oFormLM.elements) to ubound(oFormLM.elements)
'      oFormLM.hideElement(oFormLM.elements(i).resourceurl)
   next i
   oForm.refresh
end sub

public sub ShowLM
   dim oForm as object
   dim oFormLM as object
   dim i as integer
   oForm    = Thiscomponent
   oFormLM = oForm.CurrentController.Frame.LayoutManager
   for i = lbound(oFormLM.elements) to ubound(oFormLM.elements)
      oFormLM.showElement(oFormLM.elements(i).resourceurl)
   next i
   oForm.refresh
   oForm.currentController.frame.close(true)
end sub
In pratica, oltre al loro funzionamento specifico per i formulari, indicano il fatto che puoi fare un ciclo di ispezione sugli elementi del layoutmanager e conoscerne varie caratteristiche. La resourceurl corrisponde al nome della toolbar da inserire nella riga di comando ThisComponent.CurrentController.Frame.LayoutManager.hideElement("private:resource/toolbar/standardbar") che parametricamente diventa ThisComponent.CurrentController.Frame.LayoutManager.hideElement(resourceurl)
Spero che possa esserti di aiuto per le tue necessità
Saluti by Mizio ;)
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto. ;-)
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

Re: Visualizzare una ToolBar tramite Macro

Messaggio da sanraff »

Buonasera, ho provato la prima parte di istruzioni da lei suggerita, però quando eseguo la macro mi segnala un errore, per l'esattezza senza scrivere tutto il programma il cursore si blocca alle due parole evidenziate.
Le ho messe in sospensione e la macro gira, però questa volta nasconde tutto, mentre a me interessava che la barrà dei menù fosse presente.
Ho dato un'occhiata al link da lei suggerito, però lo devo studiare bene.
Diciamo che per ora non ho ancora risolto il mio problema; ma esiste una guida in italiano dove si può apprendere la corretta sintassi per scrivere validi programmi in StartBasic?, ringraziandola per il tempo che mi ha dedicato, cordialmente la saluto.
public sub HideLM
oForm.refresh
end sub

public sub ShowLM
oForm.refresh
oForm.currentController.frame.close(true)
end sub
OpenOffice 3.3 SU WINDOWS 7
Avatar utente
Mizio1961
Volontario
Volontario
Messaggi: 841
Iscritto il: mercoledì 5 ottobre 2011, 22:55
Località: Roma

Re: Visualizzare una ToolBar tramite Macro

Messaggio da Mizio1961 »

Ciao
Le istruzioni che hai evidenziato danno problemi perchè sono specifiche dei formulari, propri (quasi) di Base.
Ogni formulario ha il suo LayoutManager e le sue funzioni, diverse da quelle dell'interfaccia generale di una delle applicazioni di OpenOffice (Calc, Writer o altro)
E' normale quindi che ti dessero problemi.
Purtroppo le guide sono tutte su internet, nei vari siti tipo wiki ecc in quanto vengono aggiornate costantemente dall'operosità dei mille e mille volontari che ci sono dietro.
QUelle cartacee sono sempre specifiche di uno o più argomenti o generali e che quindi entrano poco nel particolare della singola prprietà di un oggetto
Comunque nella sezione Tutorial trovi molti riferimenti validi, tra cui ti segnalo:
http://wiki.openoffice.org/wiki/IT/Docu ... ASIC_Guide
Vedi un pò se partendo da qui ti si apre il mondo della programmazione in Oo
Saluti e... buon divertimento ;)
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto. ;-)
sanraff
Messaggi: 316
Iscritto il: sabato 27 ottobre 2012, 14:08

Re: Visualizzare una ToolBar tramite Macro

Messaggio da sanraff »

Buonasera sig. Mizio1961, ho dato un' occhiata al link da lei suggerito, viewtopic.php?f=28&p=13993#p13993, però facendo delle prove, non ho capito se le istruzioni riportate vanno provate a blocchi oppure vanno copiate in un'unica macro ed eseguita.
Le dico questo, perchè in entrambi i casi danno errori.
Inoltre volevo capire se utilizzando solo questa istruzione "ThisComponent.CurrentController.Frame.LayoutManager.hideElement("private:resource/toolbar/standardbar")", sostituendo la stringa "standardbar", c'era la possibilità di nascondere anche la barra di formattazione e la barra di formattazione del testo.
Per concludere vorrei capire perchè in alcuni suoi programmi a volte inizia con "Sub", a volte con "public sub" ed altre volte con "Function", grazie.
OpenOffice 3.3 SU WINDOWS 7
Avatar utente
Mizio1961
Volontario
Volontario
Messaggi: 841
Iscritto il: mercoledì 5 ottobre 2011, 22:55
Località: Roma

Re: Visualizzare una ToolBar tramite Macro

Messaggio da Mizio1961 »

Ciao
Quello che trovi nei miei topic è un lavoro che cerca di aprire finestre su un mondo che è tutto da scoprire, sia per le risorse che possono essere reperite in rete sia per le potenzialità della piattaforma OO.
Ciò significa che è indirizzato a chi ha già capacità di muoversi nell'ambiente macro ed eventualmente sa dove mettere le mani se qualcosa è incompleto o funziona male, come può accadare in questi casi dove il mio ambiente di sviluppo è legato a una sola postazione, quindi senza possibilità di riscontrare quanto serva del mio ambiente di sviluppo di base per far si che tutto funzioni correttamente anche su altri PC.
Premesso questo ti rispondo (scusa se ti dò del tu ma lo trovo per me più semplice) ai quesiti:
Nel primo caso la risposta è si. La mia macro ti consente di conoscere i nomi delle toolbar che hai nel tuo ambiente di lavoro, nomi da sostituire a "standardbar" nella riga di comando che la visualizza (metodo show) o la nasconde (metodo hide)
Per il nome delle macro, quella è un'impostazione che deriva dalle mie esperienze precedenti e dalle caratteristiche proprie del linguaggio, che trovi nei vari manuali:
Se la macro inizia con Sub o con Public Sub, questa è pubblica, cioè è visibile all'interno di tutto l'ambiente macro
Se la macro inizia con Private il suo lavoro è confinato al modulo in cui è stata scritta.
Lo stesso vale (Nulla davanti, Public o Private) per Function
La Sub viene usata in genere per eseguire un'insieme di istruzioni comuni a più programmi, in modo da scrivere il codice una volta sola, riducendo i tempi di manutenzione generale dei programmi.
La Function ha la stessa finalità; in più mi consente di restituire un valore al programma chiamante, così da essere usata per indirizzare il flusso del programma in diversi rami a seconda del valore restituito.
Non se te l'ho comunicato ma su questo link http://wiki.openoffice.org/wiki/IT/Docu ... ASIC_Guide trovi molte info che ti possono essere utili per il lavoro con le macro.
Per ora ti saluto e... buon divertimento ;-)
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto. ;-)
pinosauro
Messaggi: 37
Iscritto il: sabato 7 settembre 2013, 8:33

Re: Visualizzare una ToolBar tramite Macro

Messaggio da pinosauro »

Scusate tutti,

Codice: Seleziona tutto Espandi visualeSub main
ThisComponent.CurrentController.Frame.LayoutManager.hideElement("private:resource/toolbar/standardbar")
End Sub


...facendo riferimento al codice che avete indicato, e tirando le somme del discorso, quali sono gli altri nomi da utilizzare per far apparire/scomparire le altre barre al posto di STANDARDBAR?

Grazie mille e così chiudiamo il topic come RISOLTO :D
OpenOffice 3.3 / win 8
Avatar utente
Mizio1961
Volontario
Volontario
Messaggi: 841
Iscritto il: mercoledì 5 ottobre 2011, 22:55
Località: Roma

Re: Visualizzare una ToolBar tramite Macro

Messaggio da Mizio1961 »

Ariciao a tutti
Le toolbar possono essere più d'una e diverse da installazione a installazione
Come detto in precedenza devi usare un ciclo che le trova e le nasconde o le visualizza a seconda di ciò che ti serve
Per nascondere

Codice: Seleziona tutto

   oFormLM  = oForm.CurrentController.Frame.LayoutManager
   for i = lbound(oFormLM.elements) to ubound(oFormLM.elements)
      oFormLM.hideElement(oFormLM.elements(i).resourceurl)
   next i
Per visualizzare

Codice: Seleziona tutto

   oFormLM  = oForm.CurrentController.Frame.LayoutManager
   for i = lbound(oFormLM.elements) to ubound(oFormLM.elements)
      oFormLM.showElement(oFormLM.elements(i).resourceurl)
   next i
Saluti
OpenOffice Windows - Libre su Ubuntu Desktop e Notebook WiFi
Per cortesia, inserisci [Risolto] nel Titolo iniziale se il tuo problema è stato risolto. ;-)
Rispondi