[Risolto] Immagini incorporate in Dialog

Creare una macro - Scrivere uno script - Usare le API
Rispondi
Avatar utente
giuserpe
Messaggi: 127
Iscritto il: mercoledì 23 aprile 2014, 12:53

[Risolto] Immagini incorporate in Dialog

Messaggio da giuserpe »

Mi sono imbatturo in un file Excel con macro e dialoghi. Il file è scaricabile da http://www.bosettiegatti.eu/utility/201 ... andom.xlsm e servirebbe al calcolo delle anomalie secondo il Nuovo Codice dei contratti. Ma non entro più di tanto in argomento...
Sono stato attratto dalla "ricchezza" dei Dialog di questo file ed in particolare dai campi di controllo immagine che conservano una particolare caratteristica anche dopo aver convertito il file in formato ODF. Anzi, la stessa caratteristica sembra essere propria anche di eventuali nuovi campi di controllo immagine che si decide di creare in quel file (vedi immagine allegata).
In pratica selezionando da disco un'immagine da inserire in un campo di controllo immagine, questa viene incorporata, riportando come percorso la dicitura <Immagine-incorporata>, appunto...
Ho provato inutilmente a riprodurre questo comportamento nei dialoghi della mia estensione LeenO, ma come risultato, alla successiva installazione dell'estensione, la stessa immagine viene persa inquanto l'url, che all'origine viene conservato, non c'è più dopo l'installazione stessa.
L'intenzione è gestire tutto via Python, quindi cercare di avere un dialogo pronto in tutti i suoi componenti già nell'IDE Basic.
Esiste una qualche opzione da settare per ottenere l'<Immagine-incorporata> nei Dialog, in modo da non pensarci più ad ogni nuova installazione del pacchetto OXT?
Allegati
Screenshot 2016-06-04 23.05.04.png
Ultima modifica di giuserpe il sabato 24 settembre 2016, 16:34, modificato 2 volte in totale.
LibreOffice fresh su Windows e Linux
Avatar utente
giuserpe
Messaggi: 127
Iscritto il: mercoledì 23 aprile 2014, 12:53

Re: Immagini incorporate in Dialog

Messaggio da giuserpe »

Ho trovato...
Il Dialog deve essere nel file.ods (nel mio caso) e non nella libreria dell'applicazione OXT.
Di fatto però il problema si sposta sull'URL di chiatata del dialogo.
Nel caso in cui il MioDialog è nella libreria dell'applicazione devo usare un URL tipo:

Codice: Seleziona tutto

"vnd.sun.star.script:UltimusFree2.MioDialog?language=Basic&location=application"
Se, invece, lo metto nel file.ods dovrei usare qualcosa del genere:

Codice: Seleziona tutto

"vnd.sun.star.script:Standard.DlgMain?language=Basic&location=document"
Ma, manco a dirlo, così non va.
Qualcuno vuole aggiungere qualcosa?
LibreOffice fresh su Windows e Linux
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: Immagini incorporate in Dialog

Messaggio da unlucky83 »

ciao giuserpe
come vuoi chiamare una finestra di dialogo? questa è la sintassi per chiamare le macro
Tipicamente si esegue una macro che crea l'oggetto Dialogo, prendendo come modello quello salvato nella DialogLibraries del documento
Ti riporto un pezzo di macro che si occupa di creare il dialogo sulla base di un modello salvato nell'archivio personale.

Codice: Seleziona tutto

Function createDialogue(DialogName as String, SubTitle As String, Optional Center As Boolean)
Dim oLib as Object, dlg as Object

GlobalScope.DialogLibraries.loadLibrary(Libname) ' Libname is defined elsewhere in this library
oLib = GlobalScope.DialogLibraries.getByName(Libname)
dlg = CreateUnoDialog(oLib.getByName(DialogName))
Aiutami a capire a che punto ti sei bloccato :)
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Avatar utente
giuserpe
Messaggi: 127
Iscritto il: mercoledì 23 aprile 2014, 12:53

Re: Immagini incorporate in Dialog

Messaggio da giuserpe »

Ciao,
intanto ho risolto facendo riferimento a questa discussione: https://forum.openoffice.org/en/forum/v ... 20&t=67700
Con questo sistema è possibile creare la stringa (che in realtà è un numero esadecimale) che rappresenta la mappa di bit dell'immagine da inserire nel dialogo.
Una volta ricavata questa stringa, la si passa come argomento al GetIconGraphic(ICON_DATA).
A quel punto il gioco è fatto, ma il problema è che l'immagine che ho scelto necessita di una stringa di poco meno di di 46000 caratteri. Nessun problema per Libreoffice, ma l'esitazione del dialogo al momento del suo avvio mi ci ha fatto rinunciare.
E intanto sono passato alla gestione dei dialoghi direttamente in Python. Sia ben chiaro, i dialoghi continuo a crearli con l'IDE di LibreOffice, ma settaggi e visualizzazione sono affidati a Python. Adesso, però, rischio di andare OT: l'argomento merita lo spazio di una nuova discussione.
Chiedo scusa per non aver condiviso da subito la soluzione trovata, ma è passato del tempo e mi è sfuggito.
LibreOffice fresh su Windows e Linux
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: [Risolto] Immagini incorporate in Dialog

Messaggio da unlucky83 »

Meglio tardi che mai :)
Chiedi sempre cose inusuali ma interessanti. vale la pena aspettare le soluzioni che trovi ;)
Buin lavoro
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: [Risolto] Immagini incorporate in Dialog

Messaggio da Gaetanopr »

Ciao giuserpe ma non avevamo già affrontato questa problematica ? viewtopic.php?f=26&t=7416&p=39288#p39288

Saluti
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Avatar utente
giuserpe
Messaggi: 127
Iscritto il: mercoledì 23 aprile 2014, 12:53

Re: [Risolto] Immagini incorporate in Dialog

Messaggio da giuserpe »

Ciao Gaetanopr,
in effetti le due discussioni sono complementari. Non l'ho fatto con malignità e non mi piace arrogarmi capacità che non ho. Ho detto in altre occasioni che sono solo un abile utente del copia/incolla...
Sono solito mettere, tra i commenti al codice che scrivo, i link alle soluzioni che trovo in giro, ma questa volta mi è sfuggito. Quindi ho rifatto qualche ricerca partendo dalla soluzione che avevo ritrovandomi sul forum internazionale.
Sappi, comunque, che sono capace di vedere un film più volte senza ricordarmelo (è l'età). Pazienza, vuol dire che approfitterò per ringraziarti anche qui.
Alla fine non ho approfondito per capire come si possa fare la stessa cosa con Python. Per ora ho altre priorità.

Grazie ancora
LibreOffice fresh su Windows e Linux
Gaetanopr
Volontario
Volontario
Messaggi: 3300
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: [Risolto] Immagini incorporate in Dialog

Messaggio da Gaetanopr »

Ciao giuserpe, la mia domanda era solo curiosità in quanto avevi posto lo stesso quesito alcuni mesi prima, non intendevo assolutamente dirti che hai agito in maniera scorretta.
La macro che ti avevo proposto nella precedente discussione non era di mia creazione ma cercata e trovata in rete per un mio lavoro(probabilmente prelevata dallo stesso tuo link), d'altronde i forum servono a questo.


Saluti
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Avatar utente
giuserpe
Messaggi: 127
Iscritto il: mercoledì 23 aprile 2014, 12:53

Re: [Risolto] Immagini incorporate in Dialog

Messaggio da giuserpe »

:D :super:
LibreOffice fresh su Windows e Linux
Rispondi