Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Inserire un editor (Word?) in una applicazione VB6

Buongiorno a tutti, ho un quesito da porvi.
Il mio cliente ha questa necessita': permettere, dall'interno di una
applicazione gestionale (da me gia' creata con VB6), di creare/editare
dei documenti di testo.
La strada che ho seguito inizialmente e' stata quella di creare un
piccolo editor RTF integrato nell'applicazione.
Il cliente mi fa notare pero' che "cosi' non posso fare le cose che
faccio con Word, come inserire linee e tabelle, giustificare il testo,
eccetera..."
La soluzione che devo realizzare deve quindi bene o male utilizzare
Word stesso...
Il problema e' che pero' io devo mantenere un certo controllo
sull'attivita' dell'utente all'interno dell editor (aprirlo con un
modello predefinito, salvarlo solo con il nome e nella posizione
decise dalla mia applicazione, impedire l'utilizzo di alcune
funzionalita' di Word potenzialmente "pericolose", ecc.)
Ho provato a questo punto ad inserire nel mio progetto il componenete
"Documento di Microsoft Word" (Progetto -> Componenti -> Oggetti
Inseribili), ma non ho capito come fare ad utilizzarlo, visto che non
mostra proprieta', metodi o oggetti utilizzabili, a parte quelli
"standard" che hanno bene o male tutti i controlli (e in piu' il
documento di Word visibile sullo schermo non mostra alcuni menu', come
ad esempio il menu' "File").
Ho provato a cercare documentazione, qui e in rete, ma non ho trovato
niente che potesse essermi utile; se qualcuno ha gia' affrontato il
problema e sa fornirmi qualche suggerimento o indirizzarmi su della
documentazione gia' esistente (o infine indicare un metodo alternativo
per inserire un editor "complesso" all'interno di un'applicazione
VB)... lo ringrazio infinitamente fin da ora.
Saluti,
Marco Gentili

Inserisci un oggetto OLE, oppure, se come dicevi, abbisogni di un maggiore
controllo, aggiungi ai riferimenti le librerie di Word e instanzialo via
codice (CreateObject e affini).
Su google troverai molti esempi!
Ciao, Luca.

 codice (CreateObject e affini).
E questa e' una soluzione che ho gia' usato piu' di una volta con
Excel.
Solo che i due casi sono diversi: con Excel dovevo limitarmi ad
aprire/creare un file, compilarlo in automatico come pare a me,
salvare e chiudere.
Con Word, invece, dovrei dare il controllo all'utente perche' possa
creare il documento come piu' gli aggrada, ma in piu' poter impedire
certe funzionalita' e intercettare (ad esempio) alcune operazioni tipo
il salvataggio del file.
E' possibile fare tutto cio' con l'Object Library di Word?
Forse alcuni di voi staranno ridendo sotto i baffi pensando "Ma quanto
e' ingenuo, questo qui, e' OVVIO che non posso inserire Word in un
applicazione VB e fargli fare quello che pare a me!".
Beh, nel caso avvertitemi e/o canzonatemi (non mi offendo), in modo
che possa scartare questa soluzione e dedicarmi ad altro... ;-)
Saluti,
Marco Gentili

Dim W As Object
Set W = New Word.Application
W.Documents.Open FileName:="NomeDiUnFileWordVuotoODiUnTemplate"
Ci sono anche alcuni eventi che credo tu possa gestire, es. Document_Close,
Document_Open, ecc. ecc.
Usa l'object browser.
Ciao, Luca.

...

Ti ringrazio per l'aiuto, ma forse non ho spiegato bene quali sono le
mie necessita', oppure non ho ben capito la soluzione che mi
suggerisci.
Lo so anche io che posso comandare Word a mio piacimento utilizzando
nel mio progetto il Word Object Library, ho gia' fatto piu' volte la
stessa cosa con Excel.
Qui pero' il caso e' diverso: io devo aprire Word con un certo
documento (e fin qui nessun problema), dopodiche' mostrare Word (e per
questo basta un 'W.Visible = True') e dare il controllo all'utente
perche' faccia le modifiche che gli pare sul documento in questione.
Ora... come faccio io dal mio programma utilizzando le Word Object
Library ad intercettare (ad esempio) il momento in cui l'utente decide
di salvare il file e far partire il codice scritto da me per gestire
l'evento?
A me non sembra si possa fare... oppure si'?
Tu dici che ci sono alcuni eventi che posso gestire: io vedo solo
Open, Close e New...
Saluti,
Marco Gentili