volevo segnalarti che attualmente il tuo programma non funziona
Scusa se, rispondo con qualche giorno di ritardo al tuo apprezzatissimo post; ho dovuto completare un concetto applicativo sul programma che mi ha impedito di essere solerte.
Inutile dire che, non essendo abituato a scrivere programmi su PC, perchè vengano utilizzati anche da terze persone, non ho pensato minimamente che, non essendo stata creata una directory per la destinazione del DB, il programma avrebbe potuto non funzionare. Ho guardato il codice con le modifiche suggerite, collegandole col contenuto del tuo precedente post ed ho cercato di capire bene come muovermi. In detto precedente post mi consigliavi di:
ti sconsiglio di dare al db il percorso tramite application.path.
questo perchè se tu deciderai di distribuire il programma in pacchetti precompilati , ad esempio .deb, l' eseguibile gambas sarà posizionato in /usr/bin per cui durante l' utilizzo non si avranno i permessi per creare nuovi file in tale cartella , di conseguenza nessuno potrà usare il tuo software.
Ciò mi porta a considerare la possibilità di caricare il mio
programma.eseguibuile in /usr/bin in modo da farlo partire anch'io da quella posizione e creare, come dici tu una directory nascosta all'interno della home-utente.
Il posizionamento del
programma.eseguibile in /usr/bin potrebbe risolvere anche il problema della mancata attivazione automatica del programma al momento del suo avvio.
hai creato un sacco di classi il cui scopo è solo l' esecuzione di funzioni, come mai hai scelto di usare delle classi anzichè dei moduli?
Ricordo di aver letto, durante i miei primi approcci, che i moduli restano sempre attivi in memoria, durante l'esecuzione del propgramma, cosa che non avviene con l'uso delle classi dinamiche.
che convenienza hai ad aprire i form cone una istanza della classe?
Tale metodo mi permette di passare alla form variabili che altrimenti dovrei dichiarare public in moduli da tenere impegnati anche se non necessariamente utili.
Essendo il mio, il primo prgramma scritto in Gambas, ho cominciato a lavorarci su con una certa idea che poi, strada facendo, ho modificato, per cui non tutto quello che vi si trova dentro è esattamente quello che farei se cominciassi a scriverlo ora (vedi, per es.:
Evento_LostFocus). Fanno parte di tali cambiamenti sia l'accesso alle form tramite il metodo new, sia l'esecuzione di funzioni in classi dinamiche. Una funzione definita in una classe che potrebbe essere trasferita in un modulo potrebbe essere quella relativa alla Open del DB, ampiamernte utilizzato nel programma. Magari lo farò più avanti.
Dalle tue domande, vedo che hai dato una bella guardata al codice che ho scritto, il che mi fa molto piacere. L'occhio di un esperto come te non può che aiutarmi ulteriormente. Grazie!