Dopo aver tentato di intraprendere la strada della conversione pgDesigner2 (ancora in fase BETA) in Gambas3, e di aver fatto prove con le librerie OpenGL, alla fine sono giunto alla conclusione che forse è il caso di studiare la cosa partendo nuovamente da zero, o quasi.
Dopo aver costruito un ambiente di test, ho iniziato a costruire la versione pgDesigner3 che, oltre al numero ad indicare il passaggio a Gambas3, mi permette di riscrivere un codice più pulito e funzionalmente più fluido. Le nuove caratteristiche della nuova versione di Gambas3 (che spero esca a breve) alla fine mi permettono di scrivere un qualcosa di meglio. E' ovvio che gli errori fatti nel passato, le incomprensioni con alcuni aspetti del linguaggio, e l'esperienza acquisita mi saranno molto utili per questa nuova versione.
Per l'appunto, nelle fasi di test con l'ambiente di prova, ho appurato molti aspetti graditi, in particolare per l'aspetto grafico (vedi Paint).
A seguito di questo, ho potuto costruire una libreria di base che ho già agganciato alla struttura iniziale dell'applicazione, che è già in lavorazione e inizia pure a funzionare alla grande (il che non è poco...).
Ho prestato molta cura nella gestione degli oggetti, e in particolare nell'intercettazione degli eventi (nativi e costruiti), che mi permette di avere un maggiore controllo sullo stato applicativo. Questo e altro sono stati aspetti non molto approfonditi da me nel passato, e ad ogni modo non erano poi così ben impostati nelle versioni precedenti di Gambas. Adesso pare che la cosa funzioni a dovere, per cui lo studio ha avuto il successo sperato.
Al momento sono nella fase di creazione della base del progetto, ovvero l'applicazione, a cui ho già agganciato la parte grafica (la libreria di cui sopra...). La cosa stà già funzionando, ma occorrerà un pò di tempo e studio per implementarla in modo completo e pulito. La parte di gestione dei database non è ancora stata aggiunta, in quanto devo ricostruire una libreria più dinamica di quelle precedenti, tenendo presente che vorrei fare in modo che sia il più possibile scalabile verso più rdbms. Già con pgDesigner2 avevo aggiunto la possibilità di gestire i tre db più noti soto Linux, ovvero PostgreSQL, MySQL e SQLite, ma l'idea sarebbe quella di poter in futuro espandere questa possibilità, magari integrando motori tipo Oracle o ODBC.
Ad ogni modo, ho aggiunto queste note nel forum sperando che qualcuno possa aiutarmi in qualche modo, magari anche con suggerimenti vaqri. Già l'amico sotema ha avuto modo di aiutarmi nei test negli ultimi periodi, che mi ha permesso di migliorare alcune cose di pgDesigner2 ma, visto l'esito dei miei tentativi di porting, ho deciso di riscrivere tutto ex-novo, ovviamente servendomi della base di codice già fatta, e delle logiche.
Se qualcuno ha possibilità, i sorgenti sono disponibili su sorceforge, e può utilizzare il seguente comando per scaricarseli sul proprio computer:
svn checkout https://pgdesigner.svn.sourceforge.net/svnroot/pgdesigner/pgdesigner/branches/3.0-alpha pgDesigner3
Nel progetto è presente il modulo "PgDesigner.module", che deve essere impostato come classe di avvio. Nel caso interessi, nella cartella "Sorgenti/graphic/test" è presente la form "FMainGraphic" che mi è servita per testare la libreria grafica, e che ho lasciato nel repository come utilità, anche se non è collegata con l'applicazione vera e propria.
Nel caso a qualcuno interessi, è possibile anche scaricarsi il mio fallito tentativo di porting:
svn checkout https://pgdesigner.svn.sourceforge.net/svnroot/pgdesigner/pgdesigner/branches/2.0-G3 pgDesigner2-G3
anche se la cosa credo sia poco utile.
Inoltre, ricordo che è sempre presente anche la versione BETA di pgDesigner2:
svn checkout https://pgdesigner.svn.sourceforge.net/svnroot/pgdesigner/pgdesigner/branches/2.0
magari può servire per vedere i cambiamenti fatti rispetto a pgDesigner3.
Bye