Newsgroup: it.comp.appl.access
Titolo: Percorso immagini

In una maschera c'è un controllo immagine (icona montagna con sole).
Questa maschera contiene un'immagine che chiameremo x.
Il percorso di questa immagine cambia molte volte (perchè molti sono
gli utilizzatori del programma) ed il tutto è gestito da un file .ini
che contiene i vari percorsi e che è letto dal programma per
ricomporre la path giusta per trovare l'immagine.
Nella tabella è memeorizzato solo il nome dell'immagine e non anche il
percorso (come confermato dalla proprietà che, sotto "Nome elemento"
alla voce "Immagine" riposta il solo nome del file). (A)
L'immagine viene cambiata a piacere pescandola dall'HD.
Quando si lancia il programma per la prima volta quel percorso non
viene letto cosicchè mi compare il messaggio di errore "Impossibile
aprire il file x". Ignoro il problema e continuando l'esecuzione del
programma.
Se NON riavvio access il problema si presenta sempre.
Se anche lo interompo ma non esco dall'ambiente, dopo il primo
funzionamento e quel primo messaggio d'errore non ci sono più
problemi: sembra tutto uguale a prima ma l'errore non si verifica più.
Evidentemente sa dove trovare x.
In pratica il problema si presenta solo la prima volta.
Domanda 1: perchè?
Domanda 2: come fare ad eliminare il problema (risposta facile, quando
si conosce il perchè...)
Domanda 3: Con riferimento al punto (A) perchè devo per forza mettere
un nome? M'impedisce di scrivere "(nessuna)" o qualunque altra cosa.
Grazie...

SCUSATE HO SCRITTO TROPPO IN FRETTA. Non considerate lo scritto sopra
e, se volete, leggete questo sotto: Grazie.
In una maschera c'è un controllo immagine (icona montagna con sole).
Questa maschera contiene un'immagine che chiameremo x.
Il percorso di questa immagine cambia molte volte (perchè molti sono
gli utilizzatori del programma) ed il tutto è gestito da un file .ini
che contiene i vari percorsi e che è letto dal programma per
ricomporre la path giusta per trovare l'immagine.
Nella tabella è memeorizzato solo il nome dell'immagine e non anche il
percorso (come confermato dalla proprietà che, sotto "Nome elemento"
alla voce "Immagine" riposta il solo nome del file). (A)
L'immagine viene cambiata a piacere pescandola dall'HD ed inserendola
nella maschera.
Quando si lancia il programma per la prima volta quel percorso non
viene letto cosicchè mi compare il messaggio di errore "Impossibile
aprire il file x". Ignoro il problema e continuando l'esecuzione del
programma.
Se riavvio access il problema si presenta sempre.
Se invece solo interompo l'esecuzione del programma ma non esco
dall'ambiente Access, dopo il primo funzionamento e quel primo
messaggio d'errore non ci sono più problemi: sembra tutto uguale a
prima ma l'errore non si verifica più. Evidentemente sa dove trovare
x.
In pratica il problema si presenta solo la prima volta.
Domanda 1: perchè?
Domanda 2: come fare ad eliminare il problema (risposta facile, quando
si conosce il perchè...)
Domanda 3: Con riferimento al punto (A) perchè devo per forza mettere
un nome? Access m'impedisce di scrivere "(nessuna)" o qualunque altra
cosa (ad esempio una variabile - il che farebbe assai comodo...).
Grazie...


Immagino che tu stia usando la proprietà picture.
Se sì su quale evento?
e come gestisci la mancanza?
Non so come peschi il nome ma è possibile che fai un dllokup potresti non
trovare in tempo il path e non avendo gestito la mancanza ti dà errore.
Ti consiglio di mettere su corrente
Dim Tuopath as string
Tuopath= ... come vuoi
If dir(Tuopath)<>"" then
    me.tuocontrolloImmagine.picture = ""
else
    me.tuocontrolloimmagine.picture = Tupath
end if
-- 
_ _
Ciao
MAssimiliano Amendola            
www.accessgroup.it
Cisa - Conferenza Italiana per Sviluppatori Access
Info:  
www.donkarl.com/it

Grazie per l'interessamento...
1) C'è una maschera principale;
2) Nella maschera principale ci sono diverse sottomaschere;
3) In ogni sottomaschera c'è un Controllo immagine. A fronte
dell'evento Su corrente, il codice ottiene l'aggiornamento del
contenuto del Controllo immagine.
A fronte dell'evento Su corrente della maschera principale ho messo il
codice che mi ha suggerito Massimiliano non ottengo nulla.
In ogni caso ci ho messo anche una msgbox per controllore quando ci
passa ed ho visto che ci passa DOPO che l'errore si è verificato. Ne
desumo che non è li che devo indagare.
Non capisco quale evento determina quell'errore perchè tutti gli
eventi gestibili sono DOPO il verificarsi dell'errore (che pertanto non
posso intercettare).
La cosa strana, anzi credo stranissima, è che in visualizza struttura
nella finestra proprietà del controllo immagine contenuto nella
sottomaschera, laddove c'è il campo "Immagine" (sotto "nome elemento")
QUANDO GLI PARE (ad access...) compare la path dell'immagine completa e
quando gli pare il solo nome del file (come dovrebbe essere). Quando
gli pare significa proprio random.
Sono sicurissimo che da nessuna parte esiste un codice che salvi la
path completa del file immagine.
Quando compare la path completa può avvenire, come avviene ora, che si
tratti di una cartella che ormai ho addirittura cancellato dall'HD e
che era attiva alcune versioni del programma fa! Ed inoltre non posso
modificare a mano quel dato perchè Acces me lo impedisce.
La path completa, in chiaro, non compare mai nel codice e non è mai
memorizzata: compare solo tra le proprietà. Nel codice (solo delle
sottomaschere) c'è solo la ricomposizione temporanera del percorso con
un comando del tipo: Me!MioControlloImmagine.Picture = path_img() &
[immagine1].
Quando compare la path completa, ovviamente, l'errore non si presenta
perchè access la trova al volo.
Ma non va bene perchè DB può essere utilizzato ovunque e la path
assoluta causerebbe un errore su tutte le macchine.
Alla fine mi accontenterei di gestire l'errore iniziale (per ignorarlo)
ma, come ho scritto, non riesco ad incercettarlo...

 ignorarlo) ma, come ho scritto, non riesco ad incercettarlo...
-- 
