PDA

View Full Version : [VB6] Richiamare una funziona presente di una form diversa


OrcaAssassina
14-03-2006, 13:25
Ho 2 form aperte, una "sotto" ed una "sopra" attiva.

Premendo un pulsante vorrei che eseguesse una Function presente nella form sotto

Come faccio a richiarmarla

Form2 - Quella sotto
Form3 - Quella sopra

Call conteggio

E' la funziona da richiamare


Codice presente in form 3
Private Sub Command2_Click()

' inserire il richiamo alla Function nella Form3

End Sub


Come faccio??

Ciao e grazieeeeeeeeeee

mynos79
14-03-2006, 18:54
La cosa migliore sarebbe inserire le function e le sub (che devono essere usate in punti diversi del progetto, esempio in form diverse) in un modulo .bas ...
E' facile, basta che aggiungi al progetto un modulo .bas e ci scrivi dentro le funzioni e subroutine pubbliche che ti servono ... poi le richiami normalmente ...

OrcaAssassina
15-03-2006, 11:25
Mi va in errore se sposto tutto il codice della function dentro al modulo:

Public function apertura

......
........
.....
......

end function

Quando lo mando in esecuzione mi dice dice variabile non dichiarata.
Non è una cariabile perchè si tratta di una combobox.text

Non so perchè fa cos

mynos79
16-03-2006, 21:51
Non puoi usare nei moduli degli oggetti o controlli dichiarati nelle form ... la textbox (o combobox, o altri controlli) che hai usato fa parte del form e non del modulo ...
Modifica la function aggiungendo tra gli argomenti un controllo textbox, così da passarglielo.
Es.

Public Function nomeFunzione (TB as textbox) as integer
...
... = TB.text ' usi il controllo TB generico all' interno della funzione
...
end function

Quando vai a richiamare dal form la funzione, le passi il nome esatto del controllo:

x = nomeFunzione(combobox.text)

E' solo un esempio, modifica il tipo di controllo in base alle tue esigenze.
Puoi anche controllare nella guida in linea del vb6 le collezioni di controlli così da poterli usare bene nelle funzioni.

OrcaAssassina
16-03-2006, 22:14
Ok grazie proverò!!!!!

mynos79
17-03-2006, 07:57
... Quando vai a richiamare dal form la funzione, le passi il nome esatto del controllo:

x = nomeFunzione(combobox.text)
...

Ops ho sbagliato ... devi passare solo il nome del controllo, non anche la sua proprietà:

x = nomeFunzione(combobox)

Oppure se vuoi proprio usare il controllo del form (perdendo la generalità della funzione) devi specificare il percorso del controllo:

ES modulo:

public function nomeFunzione(....) as ....
...
... = form1.textbox1.text ' form1 o il nome del form a cui appartiene il controllo
...
end function