Non si può fare una discussione di 20 pagine perché si continua ad andare a tentativi proponendo modifiche casuali al codice senza approfondire la documentazione che viene suggerita da chi ha la pazienza di rispondere.
E' vero che i forum sono pensati apposta per dare una mano, ma se si ha un problema e si ottengono suggerimenti su possibili soluzioni, è comunque compito di chi pone la domanda cercare di capire cosa si sta dicendo e possedere quantomeno i requisiti di conoscenze minime riguardo gli strumenti che sta utilizzando per la scrittura del programma.
Se vengono postati link a documentazione e articoli, si leggono, e se c'è qualcosa di non chiaro, si chiede: non ha alcuna utilità quella di continuare a riportare codice con modifiche casuali e ripetere le richieste "...così?", "...e ora?" spronando continuamente gli utenti a leggere e valutare singole modifiche al codice proposto fatte senza un criterio.
Cerca di capire quello che ti viene suggerito, chiedi e/o studia i riferimenti che ti sono stati dati, se hai dubbi spiega cosa non hai capito.
Portiamo avanti questa discussione con un minimo di costruttività.