Gambas-it
Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: g.paolo - 19 Febbraio 2008, 11:53:31
-
Se nel mio form di avvio metto il richiamo ad una SUB che mi apre un database, ma la SUB non si trova all'interno della classe del form, mi ritorna un errore, anche se la medesima dichiarata PUBLIC si trova in un modulo chiamato "funzioni"
'SUB nella classe di avvio del form
PUBLIC connessione AS Connection
PUBLIC SUB Form_Open()
apre_database 'SUB esistente non modulo funzioni
END
'SUB nel modulo "funzioni"
PUBLIC SUB apre_database()
connessione = NEW Connection
WITH connessione
.Type = "sqlite3"
.Name = "/media/dati_linux/programmazione/gambas/località_pat.kexi"
.Open
END WITH
END
Come mai la cosa non funziona in modo simile al VB? Grazie.
-
darth14n ha scritto:
Se nel mio form di avvio metto il richiamo ad una SUB che mi apre un database, ma la SUB non si trova all'interno della classe del form, mi ritorna un errore, anche se la medesima dichiarata PUBLIC si trova in un modulo chiamato "funzioni"
'SUB nella classe di avvio del form
PUBLIC connessione AS Connection
PUBLIC SUB Form_Open()
apre_database 'SUB esistente non modulo funzioni
END
'SUB nel modulo "funzioni"
PUBLIC SUB apre_database()
connessione = NEW Connection
WITH connessione
.Type = "sqlite3"
.Name = "/media/dati_linux/programmazione/gambas/località_pat.kexi"
.Open
END WITH
END
Come mai la cosa non funziona in modo simile al VB? Grazie.
Se hai dichiarato "connessione" nella form d'avvio, per richiamarla nella SUB
nel modulo "funzioni" devi chiamarla Form_avvio.connessione.
Comunque, in futuro, sarebbe meglio che postassi anche il messaggio d'errore che scrive Gambas. Sarà più facile per gli altri utenti aiutarti. :-)
Ciao.
-
Ringrazio per il tuo suggerimento, stava proprio lì il problema. Questo è un comportamento diverso dal VB ma direi che tutto sommato non è male perchè in tal modo il codice risulta più leggibile visto che la routine viene richiamata con il nome del modulo che la contiene.
Per il futuro ricorderò il tuo suggerimento, e riporterò il codice d'errore.