PDA

Visualizza la versione completa : delphi 6 - usare ole object


mnkt
02-02-2004, 15:56
ciao a tutti,

ho un problemino da risolvere:

voglio utilizzare un ole container per gestire gli allegati che l'utente, attraverso una dialog, seleziona e, in fase di salvataggio del record, copia il file sorgente verso una path di destinazione costante.

Richiamare l'allegato mi riesce, ma la proprietà dell'oggetto ole "SourceDoc" non visualizza la path del documento sorgente selezionato e resta vuota.

Inoltre, quando richiamo un PDF, nessun problema, lui mi fa vedere l'iconcina del documente richiamato; ma quando richiamo un documento word, lui me lo apre dentro l'ole container, quindi l'iconcina se ne va a benedire......

Ci sono dei bug su questo oggetto che forse non conosco?oppure (cosa molto più probabile) utilizzo nel modo sbagliato il componente TOleContainer e quindi mi da tutti questi problemi??

Se qualcuno lo avesse già utilizzato con esito positivo, gradirei un esempiuccio se fosse possibile....-

Grazie mille
:ciauz:

alka
02-02-2004, 16:59
Non ho mai avuto l'occasione di usare il TOleContainer ma, a prima vista, credo che non sia il controllo che faccia al caso tuo, o meglio dovresti avere una lista di questi controlli, poichè ciascuno di essi interagisce con un server OLE alla volta.

Forse non mi è ben chiaro cosa vuoi ottenere precisamente...qualcosa di simile alla finestra che mostra le proprietà di un Contatto di Oulook nella quale è possibile inserire qualsiasi tipo di elemento?

Comunque, secondo me ti stai addentrando in una problematica che ti darà senz'altro del filo da torcere...ne vale la pena? ;)

mnkt
02-02-2004, 17:16
ciao,


allora, hai presente quando in Outlook inserisci un allegato in una nuova mail che invii?

Ecco, io credo che quell'oggetto che ti fa vedere, aprire, modificare,eliminare il file allegato sia un ole container.
Questo oggetto così ad occhio credo lavori in base al registro del s.o. e da lì preveli le informazioni sull'estensione dei file associati alle applicazioni che servono ad aprirli).

Però non funziona un granché bene, o almeno a me non funziona così bene.
Io credevo che fosse una cosa molto più semplice ed intuitiva da arrivarci, anche perchè se vedi le istruzioni e le proprietà che ti mette a disposizione sembravano chiare :confused:

Ma, mi sa che agirò in altro modo se non ci riesco, ma adesso non mi voglio arrendere.

Grazie ancora
Ciao
:ciauz:

alka
02-02-2004, 17:42
Originariamente inviato da mnkt
allora, hai presente quando in Outlook inserisci un allegato in una nuova mail che invii?
Sì, ho capito di quale finestra stai parlando.


Originariamente inviato da mnkt
Ecco, io credo che quell'oggetto che ti fa vedere, aprire, modificare,eliminare il file allegato sia un ole container.
Non è detto che ogni controllo visuale presente in un programma abbia un proprio corrispondente in Delphi, peraltro con le stesse funzionalità.
E' possibile che il "contenitore" che vedi in Outlook sia una finestra ricavata con non poche chiamate a funzioni API, anche complesse, per ottenere funzionalità simili.


Originariamente inviato da mnkt
Questo oggetto così ad occhio credo lavori in base al registro del s.o. e da lì preveli le informazioni sull'estensione dei file associati alle applicazioni che servono ad aprirli).
Questo è il modo di funzionamento di un server OLE opportunamente registrato, ma direi che il TOleContainer contiene un solo oggetto OLE mentre Outlook ne riesce a contenere di più.
Come ti dicevo prima, non è detto che vi sia una corrispondenza tra i due tipi di controlli.


Originariamente inviato da mnkt
Però non funziona un granché bene, o almeno a me non funziona così bene.
Il contenitore ospita un solo oggetto di cui visualizza l'icona o, a richiesta, il contenuto caricando l'interfaccia del server OLE, se disponibile, nell'applicazione modificando anche i menu.


Originariamente inviato da mnkt
Io credevo che fosse una cosa molto più semplice ed intuitiva da arrivarci, anche perchè se vedi le istruzioni e le proprietà che ti mette a disposizione sembravano chiare :confused:
I server OLE non sono mai stati chiarissimi, senza contare le difficoltà che ci sono nel gestire applicazioni che interagiscono con questo tipo di oggetti, influenzate tutte dai vari problemi di "versioning" che nascono (se il server OLE viene alterato, la tua applicazione può ricevere errori poichè non riesce ad agganciare un certo metodo o proprietà).


Originariamente inviato da mnkt
Ma, mi sa che agirò in altro modo se non ci riesco, ma adesso non mi voglio arrendere.
Corretto. :)

Secondo me, è meglio se dedichi un po' di tempo a qualche lettura estesa sull'argomento, senza andare troppo a tentativi, poichè potresti maleinterpretare alcuni nomi di metodi o proprietà o scrivere codice parzialmente funzionante e concettualmente sbagliato.

Vedi se questo articolo (http://delphi.about.com/cs/oleanddelphi/index.htm) può esserti d'aiuto.

Ciao! :ciauz:

mnkt
04-02-2004, 09:27
:ciauz:

Loading