Newsgroup: it.comp.lang.delphi
Titolo: Delphi - Word e collegamenti ipertestuali

Ciao a tutti,
ho un nuovo quesito per il Gruppo.
Da delphi, utilizzando un documento di word, creo una lettera da stampare
sostituendo alcune variabili con dei dati che l'utente immette nella
procedura.
Tutto funziona perfettamente ed il risultato è anche apprezzabile.
Ora ho una implementazione da fare.
Vorrei che alcune variabili del foglio di word che io sostituisco con i dati
immessi dall'utente, abbiamo la possibilità di essere dei collegamenti
ipertestuali.
In pratica se l'utente ci clicca con il mouse vorrei che si aprisse un
ulteriore foglio di word collegato al primo.
Chiedo troppo ?
Non sono riuscito a trovare nulla che mi faccia anche questa funzione.
Qualche idea ?
Ciao
Marco
Reporter Professional srl
supp...@reporterprofessional.it

 collegamenti ipertestuali.
a parte ke questo è il NG sbagliato, dovresti guardarti la documentazione di 
VBA x Word, in particolare a: Insieme Hyperlinks e Oggetto Hperlink
-- 
Mauro Falzari ( 
http://digilander.libero.it/mauro.falzari
 )
"Se guardi nell'abisso, anche l'abisso guarda in te." (Friedrich Nietzsche)

Ciao a tutti,
visto che dopo tanti sbattimenti e capocciate contro lo schermo del mio PC
ho risolto il mio problema,
vorrei lasciare nel NG una traccia del mio lavoro.
Forse prima o poi a qualcuno potrà interessare.
Ho scritto una piccola procedura che fa in modo di aprire un foglio di Word
in cui ho inserito alcune variabili che sostituisco
con dei campi imputati dall'utente del programma. Fin qui tutto bene (anche
perchè sono stato aiutato dal NG).
Ora dovevo fare in modo che alcune di queste variabili avessero anche un
collegamento ipertestuale (hyperlink)
Ho scoperto che posso farlo sul foglio di word solo se inserisco la
variabile in una tabella
(o almeno questo dopo tante prove è quello a cui sono arrivato io).
La procedura che ho creato e che serve per risolvere il mio problema è la
seguente :
//.........
procedure StWord(campo: OleVariant ; variab : OleVariant) ;
Var
mcase       : OleVariant;
mwhword     : OleVariant;
mwwcards    : OleVariant;
wslike      : OleVariant;
mawforms    : OleVariant;
fForw       : OleVariant;
wWrap       : OleVariant;
fFormat     : OleVariant;
begin
   mcase    := False;
   mwhword  := False;
   mwwcards := False;
   wslike   := False;
   mawforms := False;
   fForw    := True;
   wWrap    := wdFindContinue;
   fFormat  := False;
// questo sostituisce le variabili di word con i dati imputati dall'utente
   with MainForm.WordApplication1.Selection.Find do
   begin
      Execute(campo, mcase, mwhword, mwwcards, wslike, mawforms,
              fForw, wWrap, fFormat, variab, rReplace);
   end;
// questo inserisce il collegamento ipetestuale (solo quando esiste)
   if flink<>''
   then begin
           MainForm.WordApplication1.Selection.Hyperlinks.Add
           (MainForm.WordApplication1.Selection.Range,flink,EmptyParam);
        end;
end;
//............
campo   = variabile sul foglio di word
variab    = valore con cui sostituisco la variabile
rReplace = variabile pubblica (OleVariant) che indica se devo fare il
replace di tutto cio che trova nel foglio (replaceall) oppure se deve farlo
solo del primo campo che trova (replace)
flink      = variabile pubblica (OleVariant) che indica il collegamento
ipertestuale (es. c:\documenti\pippo.doc oppure il link ad una email o
pagina web)
Grazie per aver letto queste informazioni un poco contorte.
