Autore Topic: [RISOLTO ] TableView: Numero minimo di righe?!?  (Letto 6536 volte)

Offline Simmy

  • Gamberetto
  • *
  • Post: 8
    • Mostra profilo
[RISOLTO ] TableView: Numero minimo di righe?!?
« il: 07 Febbraio 2010, 11:51:02 »
Salve a tutti!!
Ho compilato e installato Gambas 2.19 dai sorgenti su Ubuntu 9.10 Karmic Koala.
Ho trovato uno strano comportamento nell'oggetto TableView:
se setto il valore .Rows.Count ad un valore inferiore a 4
il programma si blocca inaspettatamente con segnale #11  >:(
Per il momento ho ovviato con questo:
    IF rCli_Contacts.Count > 3 THEN
      TV_Cli_Contact.Rows.Count = rCli_Contacts.Count + 1
    ELSE
      TV_Cli_Contact.Rows.Count = 4
    ENDIF
ma vorrei evitare di avere righe vuote inutili oltre a quella che mi serve per
compilare una nuova riga...
E' capitato anche a qualcun altro?
Ringrazio per eventuali suggerimenti,
Max
« Ultima modifica: 18 Febbraio 2010, 22:43:35 da Simmy »

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: TableView: Numero minimo di righe?!?
« Risposta #1 il: 07 Febbraio 2010, 12:14:41 »
a me con gambas 2.19 (dai repo di madness) e ubuntu 9.10 non succede ne con gtk ne con qt

ho fatto un prog di prova per testarlo www.tutto-opensource.org/provatab-0.0.1.tar.gz

Offline Simmy

  • Gamberetto
  • *
  • Post: 8
    • Mostra profilo
Re: TableView: Numero minimo di righe?!?
« Risposta #2 il: 14 Febbraio 2010, 21:05:46 »
a me con gambas 2.19 (dai repo di madness) e ubuntu 9.10 non succede ne con gtk ne con qt

ho fatto un prog di prova per testarlo www.tutto-opensource.org/provatab-0.0.1.tar.gz

Grazie mille fsurfing, ho provato a guardare il link ma purtroppo mi dice che è inesistente... Però mi ha portato
a scoprire il tuo sito, che non è poca cosa!!!!
Ho indagato un attimino (che bello ho scoperto le funzioni di debugging...) e ho notato che il problema lo fa solo
chiamando la funzione .Refresh della tableview se il numero righe dichiarate è <=3...

Ho notato anche un'altro problema diverso ma sempre riguardante la tableview:
Uso un database SQLITE 3, ho costruito il database e le tabelle con le funzioni .Databases.Add e .Tables.Add interne
a Gambas. Tutto il database è in ordine, controllato con Sqliteman per controprova!
Un campo di una tabella di questo database è dichiarato come:

    .Fields.Add("KmExtraurbano", db.Float)

poichè mi serve un numero con la virgola.
Ho poi una Tableview in cui visualizzo il valore di questo campo:

    TableV_PopUp[4, 1].Text = rCli_Tariffe!KmExtraurbano

Bene, se il mio codice lo eseguo direttamente dall'IDE di Gambas, tutto ok.
Ma se, dello stesso codice, creo un eseguibile e lo lancio, nella stessa tableview il risultato cambia decisamente:
esempio da IDE:
valore presente nel campo: 0,8 valore visualizzato: 0,8
esempio da eseguibile:
valore presente nel campo: 0,8 valore visualizzato: -2,353437933358E-185
valore presente nel campo: 1    valore visualizzato: 6,035910075295E-317
valore presente nel campo: 1000    valore visualizzato:

Offline Simmy

  • Gamberetto
  • *
  • Post: 8
    • Mostra profilo
Re: TableView: Numero minimo di righe?!?
« Risposta #3 il: 14 Febbraio 2010, 21:12:33 »
Oooops scusate.... Firefox ha preso il sopravvento...

dicevo:
valore presente nel campo: 1000    valore visualizzato:5,293214786366E-317
Il bello è che se edito il valore direttamente nella tableview, l'inserimento
del valore nel database è corretto, solo la visualizzazione è sbagliata... Help!! :'(
Comunque gambas è veramente valido!!!

Salute a tutti.

Offline Simmy

  • Gamberetto
  • *
  • Post: 8
    • Mostra profilo
Re: TableView: Numero minimo di righe?!?
« Risposta #4 il: 14 Febbraio 2010, 21:16:25 »
Scusate ancora... troppa programmazione rincitrullisce!!!

La funzione che manda il crash gambas non è .Refresh ma .Clear!!!!
Sorry ancora...
Simmy

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: TableView: Numero minimo di righe?!?
« Risposta #5 il: 15 Febbraio 2010, 00:43:42 »
io in un mio progetto utilizzo molto le tabview è non ho riscontrato alcun bug
ti ricordo che per rendere editabile la tabview devi fare:
Codice: [Seleziona]
PUBLIC SUB TableView1_Click()

      tableview1.Edit()
END
se vuoi farla editare con un qualsiasi testo oppure:
Codice: [Seleziona]
PUBLIC SUB TableView1_Click()

      tableview1.Edit([1,2,3,4],true)
END
per far apparire una combo da cui scegliere dei valori (nell' esempio da 1 a 4)
solo con questo codice però la tab non salverà i valori immessi per farlo devi scrivere:
Codice: [Seleziona]
PUBLIC SUB TableView1_Save(Row AS Integer, Column AS Integer, Value AS String)
     
              tableview1[row, Column].Text =Value
     
END
il metodo refresh() nel 99,99% dei casi non serve
e clear() lo puoi evitare se effettivamente ti da dei problemi semplicemte riscrivendo la tableview

Offline Simmy

  • Gamberetto
  • *
  • Post: 8
    • Mostra profilo
Re: TableView: Numero minimo di righe?!?
« Risposta #6 il: 16 Febbraio 2010, 00:05:19 »
Grazie ancora fsurfing per l'interessamento... e la pazienza!!!
Per rendere "palpabile" il problema, ho fatto un po di taglia e cuci
delle 4 righe della mia applicazione con un ignobile form tanto
per focalizzare il problema:
lo puoi trovare qui: http://www.simmylab.it/guest/test_tableview-0.0.4.tar.gz

Ho cercato di riprodurre il problema utilizzando il più possibile
parti del mio codice originale (non spaventarti, qualche adattamento al volo
giusto perchè girasse...)
I problemi che si vedono sono:
se in numero righe metti 1 (e lo fa solo con il valore 1!!), premi "Set" e poi clicchi "Metodo .Clear" vedrai
il mitico errore #11...
se lanci l'applicazione compilata, nella prima riga del tableview vedrai il problema
della visualizzazione dei valori float...

Nel frattempo cosa dici? Cerco di aggirare il problema (anche se quello della visualizzazione
dei float è un pò dura...) o è meglio che mi cerco un buon libro sul C++?

Grazie mille per i consigli!!
Max

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: TableView: Numero minimo di righe?!?
« Risposta #7 il: 16 Febbraio 2010, 23:26:33 »
in effetti con un record il programma crasca

il discorso del float non riesco a provarlo perchè deve esserci un errore nel codice

Offline milio

  • Senatore Gambero
  • ******
  • Post: 1.272
  • Chi parla poco dice tanto...
    • Mostra profilo
Re: TableView: Numero minimo di righe?!?
« Risposta #8 il: 16 Febbraio 2010, 23:40:07 »
ho provato anch'io ma il problema l'ho riscontrato solo usando le gtk. con le qt funziona benissimo

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: TableView: Numero minimo di righe?!?
« Risposta #9 il: 16 Febbraio 2010, 23:59:04 »
Citazione
ho provato anch'io ma il problema l'ho riscontrato solo usando le gtk. con le qt funziona benissimo
naturalmente ti riferisci al metodo clear()

per quanto riguarda il problema dei float ho aggiunto del codice per visualizzare all' avvio i dati del campo float presenti nel db ... funziona tutto correttamente sia da ide che da eseguibile.

il tuo codice cmq mi sembra un po confusionario, ma probabilmente deriva dal fatto che hai tagliuzzato il tuo programma per creare l' esempio.

non è cmq il caso di studiare il c++ (a meno che non ti faccia piacere!) il problema probabilmente dipende dal tuo codice, per il refresh invece è un problema di gambas e le gtk, quindi o utilizzi le qt oppure per pulire la grid fai un ciclo for che imposta a "" il testo delle celle

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: TableView: Numero minimo di righe?!?
« Risposta #10 il: 17 Febbraio 2010, 00:07:39 »
ah dimenticavo, personalmente non amo molto impostare il programam per creare file con il percorso della applicazione

es:
Codice: [Seleziona]
IF Exist(Application.Path & "/testdb")

questo perche se poi realizzi un pacchetto precompilato es: un .deb, il file eseguibile sara posizionato in una cartella di sistema, percui il programma non riuscirà a creare il database (questa è una supposizione non l' ho mai verificato) cmq anche se ci riuscisse non è molto bello creare un database o altri file nella cartella destinata a file eseguibili, siamo su linux non su win dove ognuno posiziona i file dove + gli pare e piace  :P

Offline Simmy

  • Gamberetto
  • *
  • Post: 8
    • Mostra profilo
Re: TableView: Numero minimo di righe?!?
« Risposta #11 il: 17 Febbraio 2010, 23:50:42 »
Grazie a tutti per il supporto...

Allora... Per il problema del metodo .Clear ho risolto!
Basta mettere un bel
 .Rows.Count=0
così pulisce anche la griglia proprio come il .Clear (ovvero leva le righe che non servono più!)
e poi con lo stesso comando gli setto il numero di righe che mi servono!!!
Risultato estetico ottimo (solo il numero di righe necessarie !!)

Grazie a fsurfing per l'idea del ciclo for-next, ma rimaneva la
griglia con le righe vuote e non mi piaceva...
Grazie anche per il discorso sui files, veramente non ci avevo pensato,
ma è un buon consiglio. Nell'esempio ho fatto per praticità di tenere tutto
in una directory al solo fine di esempio, finito lo studio del bug si cancella
la directory e tutta l'immondizia creata... Nel programma finale il database
sarà su un server remoto... Però avrò un file di configurazione a cui persare,
perciò la pulce nell'orecchio di fsurfing è tutt'altro che scontata!!!
Mi rimane ora il problema dei float... Ho provato anche la versione modificata
di fsurfing ma da lo stesso identico problema...  ???

Può essere qualche impostazione di Ubuntu? (mi ricordo ai tempi di win :o che
i valori delle impostazioni internazionali, tipo il carattere
usato per la virgola o il separatore delle migliaia, facevano sballare certi Ide
per PLC che usavo....)
E' il caso di cambiare topic? Ormai il problema righe di tableview è felicemente aggirabile,
rimane da chiarire questo dei float... ma forse è off topic qui?
Non mi è chiara una cosa: ma con Ubuntu posso usare indifferentemente le librerie gtk e qt
o essendo Gnome solo le gtk?
Portate pazienza per un povero elettronico che ha sempre e solo usato assembler e QuickBasic in Dos....
Non potrò mai arrivare alle sublimi tecniche degli informatici di oggi... Eppure alzi la mano chi non
ha cominciato con una scatoletta con i tasti di gomma e l'arcobaleno in basso a destra o un'altra
con solo 4 tasti funzione!!! :P (il mouse verrà inventato 6 anni dopo e con un solo tasto...)
Un saluto a tutti!
Simmy

Offline Ceskho

  • Amministratore
  • Senatore Gambero
  • *****
  • Post: 3.778
  • Vi Veri Veniversum Vivus Vici
    • Mostra profilo
    • Pagina Personale
Re: TableView: Numero minimo di righe?!?
« Risposta #12 il: 18 Febbraio 2010, 00:30:46 »
E' il caso di cambiare topic? Ormai il problema righe di tableview è felicemente aggirabile,
rimane da chiarire questo dei float... ma forse è off topic qui?

Penso che sia meglio...per coerenza titolo/contenuto.. ;)

Citazione
Non mi è chiara una cosa: ma con Ubuntu posso usare indifferentemente le librerie gtk e qt
o essendo Gnome solo le gtk?

Sarà il sistema su cui installerai il tuo programma ad usare le librerie giuste...tu in fase di programmazione non te ne devi preoccupare...a meno che non usi componenti che qt hanno ma le gtk no....in quel caso la scelta e forzata...

Offline fsurfing

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.484
    • Mostra profilo
Re: TableView: Numero minimo di righe?!?
« Risposta #13 il: 18 Febbraio 2010, 00:31:44 »
ok direi che puoi mettere risolto alla discussione per quanto riguarda le righe della tableview.

per il float non è sicuramente un problema di tableview ne credo del db, molto probabilmente è un problema legato al tuo software o al limite al tuo sistema credo
al limite apri un altro post al riguardo in programmazione e magari allega per intero il programma
per il file di configurazione esiste l' apposito componente settings  , ti basta abilitare il componente in proprietà, leggeti i file della guida in proposito o ricercare sul forum
ciao ciao