|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2805
|
[VB6] Richiamare una funziona presente di una form diversa
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
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
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 ...
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2805
|
Errore
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
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
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.
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Feb 2003
Messaggi: 2805
|
Ok
Ok grazie proverò!!!!!
__________________
AMD 3700x --- ASUS X570 CROSSHEAR VIII HERO --- 4x 8GB Corsair Vengeance RGB PRO 3600 MHz --- SSD: Samsung 980Pro 1TBb --- EVGA RTX 2070 SUPER |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jun 2005
Città: Mestre (VE)
Messaggi: 1415
|
Quote:
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
__________________
IN WIN 909 / AMD Ryzen 9 3950X / Gigabyte X570 Aorus Xtreme / 4x8gb G.Skill 3200 / Gigabyte Aorus RTX2080Ti Xterme / 2x Gigabyte Aorus NVMe M.2 1Tb / Corsair AX1200i / full liquid EK - Bitspower / circa 160 trattative nel mercatino |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:48.