Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: Picavbg - 11 Marzo 2010, 16:54:13

Titolo: [RISOLTO] Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Picavbg - 11 Marzo 2010, 16:54:13
Penso di avere raggiunto un buon livello di %').
Il mio programma contiene già da tempo istruzioni  del tipo
Codice: [Seleziona]
Form2.Text = "Inserimento   Movimenti   del :"
comandate da una Form.class diversa. L'istruzione funziona perfettamente.
Ora nel trambusto delle prove fatte per gestire nella FMain.class oggetti della Form5, ho provato:
Codice: [Seleziona]
Form5.Text = "Bla Bla bla"
Come si vede dai due esempi riportati in successione, entrambi vanno a modificare il testo di una Form diversa, testo che rappresenta il titolo della form che si leggerà all'apertura della form stassa.
Ebbene il secondo esempio (Form5.Text = "Bla Bla bla) produce l'errore "Not an object". Ciò però non può essere vero, perchè altrimenti darebbe errore anche l'istruzione del 1° esempio.
Non soddisfatto ho scritto nello stesso punto di programma le seguenti istruzioni:
Codice: [Seleziona]
Form1.Text = "Viva Gambas"
Form2.Text = "Viva Gambas"
Form3.Text = "Viva Gambas"
Form4.Text = "Viva Gambas"
Form5.Text = "Viva Gambas"
Ebbene, premesso che nel programma le Form ci sono tutte, le prime 4 istruzioni funzionano, l'ultima da sempre lo stesso errore  "Not an object"
Qualcuno saprebbe spiegarmi il perchè?
Ecco ora sono più %') %') di prima.
Ciao.
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: fsurfing - 11 Marzo 2010, 18:13:29
perchè non butti via il form 5 ?  :P
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Will32 - 11 Marzo 2010, 18:23:19
Possibile che gambas non accetti il controllo di 5 form da un comando ?? ???

Citazione
Perchè non butti via il form 5 ?   :P

Buona idea ! ;)
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Picavbg - 11 Marzo 2010, 18:25:28
perchè non butti via il form 5 ?  :P
In effetti ci avevo pensato, ma è come, vedendo un insetto nero e brutto girolonzolare per casa, uscire, piutttosto togliersi il gran piacere di schiacciarlo inesorabilmente, ruotando il piede mentre scricchiola sotto la scarpa insetticida. :P :P
... Io non volevo.  :D :D
Ciao.
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Ceskho - 11 Marzo 2010, 18:32:11
So che dirò una cosa impopolare e brutta ma: il form5 esiste? Non è che lo hai rinominato e non te ne ricordi?

Non prendertela....chiedo perchè a volte le distrazioni così capitano man mano che il progetto diventa grande....
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Picavbg - 11 Marzo 2010, 18:32:45
Possibile che gambas non accetti il controllo di 5 form da un comando ?? ???
E no! Caro Will32. Non è come pensi; il problema non è di Gambas, ma probabilmente di qualche parametro  o proprietà della Form5. Infatti hop creato già una Form6 di prova e funziona regolarmente. Quindi il suggerimento provocatorio ma costruttivo di fsurfing è corretto, nel senso: provare a cancellare la Form5 per riscriverla interamente, perchè in queste condizioni non posso anadare avanti; perdo solo tempo. Quindi, resti fra noi, non dire niente a quell'insetto, così non si  accorge che alla fine farò proprio come mi ha suggerito.  :D :D
Ciao.
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Picavbg - 11 Marzo 2010, 18:45:26
So che dirò una cosa impopolare e brutta ma: il form5 esiste? Non è che lo hai rinominato e non te ne ricordi?
Non prendertela....chiedo perchè a volte le distrazioni così capitano man mano che il progetto diventa grande....
Perchè dovrei prendermela? Ogni suggerimento è buono!
Ho  riguardato tutti i form definiti graficamente e non ci sono duplicati. Ho ricercato le istruzioni contenenti "Form5." e le ho eliminate tutte, esclusa quella che mi serve per la prova. Ho rieseguito il programma, ma si ferma sempre allo stesso punto; solo che dopo la segnalazione di errore, cliccando sull'OK della finestra di errore, il programma va avanti.
Dal servizio sanitario interplanimetrario è tutto. :D
Ciao.
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Ceskho - 11 Marzo 2010, 18:58:44
Apri la cartella di gambas dove risiede il tuo progetto e controla che sia tutto ok...dopodichè visualizza i file nascosti (CTRL + h) e controlla che anche li sia tutto ok...inizio a pensare che ci sia qualcosa che non va con gambas.....

Che versione hai? su che sistema operativo? Qual è il PIN del tuo bancomat?
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: fsurfing - 11 Marzo 2010, 21:15:21
prova magari a cancellare(o rinominala) la cartella nascosta .gambas all' interno della tua cartella di progetto e poi riavvia il progetto
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Picavbg - 12 Marzo 2010, 10:32:28
@fsurfing :
Purtroppo dopo la cancellazione della cartella nascosta ".gambas" ed il successivo runtime del programma l'anomalia si è ripresentata, solo che questa volta, dopo avere cliccato sul pulsantino OK della schermata di errore e riavviato, senza chiudere il programma, l'errore "not an object" si ripresenta imperterrito, mentre prima andava avanti.

@Ceskho:
Non capisco quando dici controlla che sia tutto ok. Se intendi dire "I file .class, .module, .form" ci sono tutti, ti rispondo: si, ci sono tutti. Relativamente ai fali nascosti, per ogni file .class, .module, .form ci sono i corrispondenti file .class~, .module~, .form~; vi sono poi i seguenti file nascosti di cui mancano i corrispondenti file senza il suffisso ~: CercaDtContAutom.class~, GestManu.class~, ModuloDepoCodice.module~, PopolaPianCont.class~, ScriviTpMovimGG.class~, .directory, .icon.png, .project, .settings. Di essi, esclusi gli ultimi, evidenziati, tutti gli altri dovrebbero corrispondere a classi che, nella fase di revisione del programma, ho trasformato in commenti, in attesa di decidere successivamente il da farsi. Non ho esperienza in merito, per cui no so dirti se tutto è a posto.
Poi dicevi:
- Che versione ho:   la Gambas 2.19
- Che sistema operativo: Kernel 2.6.31.5-127.fc12.x86_64
- Qual è il PIN del mio bancomat: te lo comunicherei, ma non so trascriverlo correttamente, perchè,  essendo formato da un'interminabile successione di 1 e 0(zeri) che non riesco a fissarlo in memoria. Spero che non sia proprio quello a mandare in tilt il mio programma. :D :D

Devo aggiungere ancora una cosa: da quando ho installato l'attuale gambas 2.19 non riesco ad attivare la guida interattiva attraverso il tasto "F1".
A questo punto, pensate che sia necessario un intervento chirurgico specifico?
Ciao a tutti.
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: fsurfing - 12 Marzo 2010, 11:55:01
posta tutto il progetto così proviamo anche noi, inutile dire che è veramente molto molto molto molto strano
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: milio - 12 Marzo 2010, 13:23:29
non e' che hai una variabile dichiarata nella classe/modulo che si chiama Form5 ?
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Will32 - 12 Marzo 2010, 14:15:08
Citazione
Il form5 esiste? Non è che lo hai rinominato e non te ne ricordi?

Potrebbe anche essere. Controllato ? ;)
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: milio - 12 Marzo 2010, 14:43:17
Citazione
Citazione
Il form5 esiste? Non è che lo hai rinominato e non te ne ricordi?

Potrebbe anche essere. Controllato ? Occhiolino

Non credo perche' in questo caso gli direbbe, prima ancora di eseguire il programma:

Uknow identifier: Form5

Io credo piuttosto che abbia dichiarato una variabile con lo stesso nome del form.
In questo caso la variabile prenderebbe il sopravvento sul form5 e, essendo dichiarato come (es.) normale String, gli ritorna l'errore che il Form5 non e' un oggetto.

Almeno questa e' la mia teoria...  ;D
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Will32 - 12 Marzo 2010, 15:33:32
Citazione
Io credo piuttosto che abbia dichiarato una variabile con lo stesso nome del form.
In questo caso la variabile prenderebbe il sopravvento sul form5 e, essendo dichiarato come (es.) normale String, gli ritorna l'errore che il Form5 non e' un oggetto.

Almeno questa e' la mia teoria...

Potrebbe anche essere ! Buon'idea ;)
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Picavbg - 12 Marzo 2010, 15:44:56
posta tutto il progetto così proviamo anche noi, inutile dire che è veramente molto molto molto molto strano
Tranquilli: ho scoperto l'inghippo!!! :D :D

Allora, prima di tutto,partendo dalla tua simpatica ironia, ho strutturato la Form6 esattamenmte come la Form5, avviando di tanto in tanto il Runtime e, »» Nessun Errore; Ottenuto codesto risultato, ho copiato tutta la Form5.class nella Form6.class ed ho rieseguito il Runtime e,   »»» ahi ahi, l'errore si è ripetuto, questa volta sulla prima istruzione che riguardasse la Form6, cioè
Codice: [Seleziona]
Form6.Text = "Viva Gambas"

Ho rimosso tutte le istruzioni prima copiate nella Form6.class ed ho ripetuto il Runtime.  Esito »»» Nessun Errore. Avendo ormai individuato l'insieme delle istruzioni dove nasce il problema ho ricopiato le istruzioni della Form5.class nella Form6.class, identificandole tutte come righe di commento. Ho riavviato il RunTime ed è andato naturalmente tutto bene.
Avendo salvato capra e cavoli, ho eliminato la vecchia Form5 ed ho rinominato la Form6, attribuendole il nome di Form5. Ho ripetuto il Runtime e non ho subito errori. Ora finalmente si trattava di individuare l'istruzione capace di mandare in tilt Gambas. Per scoprire ciò ho cominciato a togliere gli apicini di riga di commento in ogni riga, un pò per volta.
Ebbene, è inutile che vi dettagli ancora tutti i passi della mia paziente ricerca, ma ho trovato  l'errore nel seguente gruppo di dihiarazioni:
Codice: [Seleziona]
PRIVATE i_TbPiaCoElem AS Integer = 150    'Numero di elementi definito per TbPiaCont
PRIVATE TbPiaCont AS String[i_TbPiaCoElem, 4]   'tabella di caricamento dei record fuori sequenza della tabella di DB "PianCont"
'PRIVATE El_TbPiaCont AS String[i_TbPiaCoElem[TbPiaCont]]
Ed è proprio l'ultima definizione che crea il problema; infatti, anche se ricordo di avere già provato tempo fa il programma con quelle istruzioni, poste, però in un'altra classe, senza intoppi. Tuttavia, in base al lavoro di revisione che sto facendo, penso che quest'ultimo tipo di organizzazione tabellare non mi serva più, quindi non ritengo che valga la pena di capire come aggiustarne il contenuto.
Certo, ho impegnato anche il Vostro tempo, ma non inutilmente, perchè mi avete acceso la lampadina che mi ha permesso di risalire all'errore.
Grazie a tutti.
Ciao.
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Ceskho - 12 Marzo 2010, 15:50:37
Ora finalmente possiamo dormire tutti quanto stanotte... ;D

Son contento....

E vorrei farti i miei complimenti per l'approccio "scientifico" mediante il quale sei arrivato all'errore...bravo.... ;)
Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Will32 - 12 Marzo 2010, 15:50:59
Anche tu non sopporti i commenti vicino al codice ? !
Allora siamo in due :P

Titolo: Re: Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Picavbg - 12 Marzo 2010, 16:16:22
Visto che siamo tutti contenti e che, purtroppo, non possiamo è più brindare da quando qualcuno ha rotto tutto il servizio di bicchieri ...  :D :D ..., metto un bel [RISOLTO] alla discussione.
Cia a tutti.
Titolo: Re: [RISOLTO] Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: leo72 - 16 Marzo 2010, 13:04:37
A me "mi" pare che Gambas abbia TUTTE le ragioni per arrabbiarsi con quel codice:

Codice: [Seleziona]
PRIVATE i_TbPiaCoElem AS Integer = 150    'Numero di elementi definito per TbPiaCont
PRIVATE TbPiaCont AS String[i_TbPiaCoElem, 4]   'tabella di caricamento dei record fuori sequenza della tabella di DB "PianCont"
PRIVATE El_TbPiaCont AS String[i_TbPiaCoElem[TbPiaCont]]

Nell'ultima riga tu gli chiedi di creare una matrice composta da un numero di elementi pari a quelli contenuti nell'elemento i_TbPiaCoElem[TbPiaCont]. Peccato che tu abbia definito i_TbPiaCoElem come intero e non come matrice per cui non puoi indirizzare un elemento al suo interno con i_TbPiaCoElem[TbPiaCont]. Inoltre TbPiaCont è un'altra matrice per cui non puoi usarla come indice di una matrice che non esiste....

Forse il codice corretto sarebbe:

Codice: [Seleziona]
PRIVATE El_TbPiaCont AS String[TbPiaCont[i_TbPiaCoElem]]
Titolo: Re: [RISOLTO] Assegnazione ed estrazione di dati stringa da Formx.proprietà
Inserito da: Picavbg - 17 Marzo 2010, 01:40:00
Forse il codice corretto sarebbe:
Codice: [Seleziona]
PRIVATE El_TbPiaCont AS String[TbPiaCont[i_TbPiaCoElem]]
Grazie Leo; sinceramente, visto che per ora la parte di codice, dove si trova il gruppo di istruzioni sbagliate, l'ho dovuta accantonare, e credo che non mi debba più servire, non mi sono più preroccupato di scoprire e correggere l'errore. Non c'è dubbio che, in caso di necessità terrò conto del tuo suggerimento.
Ciao. :D