Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[?] Inserire un editor (Word?) in una applicazione VB6

37 views
Skip to first unread message

Marco Gentili

unread,
Jan 21, 2004, 7:55:50 AM1/21/04
to
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

Luca di Cerneglons

unread,
Jan 21, 2004, 11:54:10 AM1/21/04
to
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.


Marco Gentili

unread,
Jan 22, 2004, 5:07:18 AM1/22/04
to
"Luca di Cerneglons" <som...@microsoft.com> wrote in message news:<bumarl$j5r27$1...@ID-72074.news.uni-berlin.de>...

> Inserisci un oggetto OLE,

Ok, e questa e' piu' o meno la stessa soluzione che avevo indicato
quando ho detto:

>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,

Solo che non capisco come fare a "controllarlo", non mi viene mostrato
(per esempio) il menu' "File" con le opzioni di salvataggio, stampa,
ecc., e comunque credo che in questo caso io non possa "intercettare"
da programma quello che l'utente fa dentro la finestra di Word,
giusto?

> oppure, se come dicevi, abbisogni di un maggiore
> controllo, aggiungi ai riferimenti le librerie di Word e instanzialo via
> 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

Luca di Cerneglons

unread,
Jan 22, 2004, 7:36:22 AM1/22/04
to
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.


Marco Gentili

unread,
Jan 23, 2004, 11:49:48 AM1/23/04
to
"Luca di Cerneglons" <NOal...@supereva.it> wrote in message news:<atPPb.270551$vO5.11...@twister1.libero.it>...

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

0 new messages