Newsgroup: it.comp.lang.visual-basic
Titolo: [?] passare var tra EXE

Ciao a tutti,
ho questo problema:
- sto creando un pgm e vorrei farlo a moduli (ogni modulo svolge una sua
funzione es: 1.anagrafica clienti; 2. anagrafica articoli; 3.ordini ecc.)
- per quanto riguarda gli elenchi però vorrei poter richiamare lo stesso prg
da qualsiasi EXE. Se sono nell'EXE dell'anagrafica CLI devo chiamare lo
stesso elenco CLI che chiamerei se dovessi scegliere il cliente dell'EXE che
gestisce gli ordini (spero di essermi spiegato).
- per questo ho tentato di creare (prendendo spunto da MSDN) un "Componente
EXE ActiveX" inserendo la gestione dell'elenco CLI.
- Ora però mi sono bloccato: sono nell'EXE degli ordini e richiamo il mio
ActiveX EXE-->OK. Come faccio a passare il "codice_cliente" che ho
selezionato nell'ActiveX al EXE degli Ordini??
Grazie 1000 e scusate se sono stato lungo.
Ciao.
PaPer.

selezionato nell'ActiveX al EXE degli Ordini??
Fai esporre al server EXE una property "Codice_Cliente" o qualsiasi altra
proprieta' o metodo ti serva.
-- 
ciao, hal

 ha scritto nel messaggio
news:aa9bkc$8uva9$1...@ID-56381.news.dfncis.de...

Scusa l'Ignoranza ma intendi inserire una SUB nel modulo di classe
dell'ActiveX EXE??? (Non ho ancora la padronanza del linguaggio!!!)
Grazie.
Ciao.
PaPer.

dell'ActiveX EXE??? (Non ho ancora la padronanza del linguaggio!!!)
Esatto.
Scrivi tutte le Public Property / Sub / Function che ti servono nel
modulo di classe pubblico
e tramite questa interfaccia puoi far comunicare client e server.
Se riuscissi a recuperarlo ancora in libreria, c'era una volta in giro un
bel libro di Dan Appleman: ActiveX con Visual Basic 5.0 che spiegava
bene tutte queste code.
-- 
ciao, hal


Grazie ancora per la risposta.
Ho provato a fare cosě
(nell'ActiveX)
Public Property Get CodiceCli() As Variant
    Set CodiceCli = TestForm.lstCli.SelectedItem
End Property
(nel prg EXE)
Set mcmnTest = New Clienti
txtCli.Text = mcmnTest.CodiceCli
ma......la prima copilazione č andata OK mentre ora: "autorizzazione
negata" --> cosa vuol dire??
P.S. andrň a vedere quel libro.
Grazie
Ciao.
PaPer.

 ha scritto nel messaggio
news:VQWx8.90292$SR5.2...@twister1.libero.it...

Non uso le Property, ma le Sub e Function
Quindi io farei cosě:
(nell'ActiveX)
Public Function CodiceCli() As Variant
    'Tutto il codice che vuoi
    CodiceCli=codice_del_cliente_selezionato
End Function
(Nel prg EXE)
txtCli.Text=CodiceCli
... ma mi interessa la soluzione anche col metodo proposto da Hal.

... ma mi interessa la soluzione anche col metodo proposto da Hal.
Be', non e' molto lontana da quanto hai scritto :-)
Le Property sono da vb internamente implementate proprio come funzioni.
In vb5/vb6 diventerebbe cosi':
' m_CodCliente e' una variabile privata con scope a livello di modulo di classe / form
Public Property Get CodCliente() As String
	CodCliente = m_CodCliente
End Property
Public Property Let CodCliente(ByVal vNewValue As String)
	m_CodCliente = vNewValue
End Property
E' possibile fare proprieta' in sola lettura, scrivendo la sola parte
Get, oppure in sola scrittura, scrivendo la sola parte Let.
Si possono passare in questo modo non solo tipi primitivi, ma
anche (e qui, imho, sta il bello) oggetti:
' myClassCliente e' una interfaccia (classe in vb) pubblica esportata da una dll 
' activeX o descritta da una typelibrary referenziata dalle applicazioni che
' intendono usarla
' m_Cliente e' un oggetto di classe myClassCliente privata con scope a livello 
' di modulo di classe / form
Public Property Get Cliente() As myClassCliente
	Set Cliente = m_Cliente
End Property
Public Property Set CodCliente(ByVal vNewValue As myClassCliente)
	Set m_Cliente = vNewValue
End Property
In questo modo ti passi tutte le informazioni sul cliente in un colpo solo,
ad esempio l' intero record che lo descrive nel database.
-- 
hth, hal

 ha scritto nel messaggio
news:aa9h7b$9247g$1...@ID-56381.news.dfncis.de...
Hal, grazie! Mi hai aperto, con due righe, un mondo che non ho mai usato.
Non ho difficoltà a riconoscere i miei (tanti) limiti. Ti farò sapere gli
sviluppi.

CUT
Sei un mostro! ;9


A me non funziona!!
- la Function la metti nella classe dell'ActiveX?
- Nel prg EXE --> txtCli.Text=CodiceCli --> Errore di compilazione
"Variabile NON definita" --> ???
- in soldoni, dall'ActiveX faccio DblClick su una ListView e nel prg EXE mi
ritrovo il dato selezionato (es. in una Textbox)
Grazie.
Ciao
PaPer

Sei un mostro! ;9
Me lo dicono tutte quando accendono la luce :-PPP

 Me lo dicono tutte quando accendono la luce :-PPP
'ulo. Adesso tu dovresti venire qua e pulirmi tastiera, scrivania
e schermo, che è colpa tua se li ho sporcati.
Azz, la prossima volta mettici almeno un tag, no ?
Pap.ROTFL&SPLUT