Gambas-it

Archivi (sola lettura) => Programmazione (Gambas 2) => Topic aperto da: Golia - 06 Febbraio 2010, 10:05:32

Titolo: Focus su tableview
Inserito da: Golia - 06 Febbraio 2010, 10:05:32
Ciao a tutti
Volevo chiedervi come si fà a dare il focus in una determinata cella di tableview.
Ciao grazie
Titolo: Re: Focus su tableview
Inserito da: Ceskho - 06 Febbraio 2010, 14:52:23
Vuoi selezionare una sola cella?ma anche graficamente intendi?
Titolo: Re: Focus su tableview
Inserito da: Golia - 06 Febbraio 2010, 18:37:58
Si intendo "andare in una determinata cella e scrivere" senza dover puntare con il mouse
Titolo: Re: Focus su tableview
Inserito da: Ceskho - 06 Febbraio 2010, 18:51:17
Esiste la funzione:

Codice: [Seleziona]
TableView1.MoveTo(riga, colonna)

Dove riga e colonna sono due interi che indicano appunto le coordinate riga e colonna.

Basta che specifichi il punto in cui vuoi che la selezione "si muova". Ovviamente è inutile che ti dica di essere sicuro di muoverti una cella che esiste altrimenti....puff....Error!
Titolo: Re: Focus su tableview
Inserito da: Golia - 06 Febbraio 2010, 18:58:13
Ho già provato moveto, non mi fà però quello che voglio.
Quando clicco una cella col mouse quello che c'è scritto dentro viene selezionato e posso scriverci sopra, vorrei farlo anche da codice.
Titolo: Re: Focus su tableview
Inserito da: Ceskho - 06 Febbraio 2010, 19:07:51
Immaginiamo che vuoi cancellare il testo della cella in riga 1 e colonna 3. Puoi usare:
Codice: [Seleziona]
TableView[1,3].text = ""

Questo è un esempio, vedi se puoi adattare questo poichè altre funzioni non mi vengono in mente.
Titolo: Re: Focus su tableview
Inserito da: Golia - 06 Febbraio 2010, 22:17:57
no, io voglio portare il cursore in un determinata cella....sarebbe comodo per tante cose specialmente per gli spostamenti
Titolo: Re: Focus su tableview
Inserito da: fsurfing - 06 Febbraio 2010, 22:50:51
non conosco molto la tablewiew ma mi pare che non abbia un cursore..
in tal caso lo puoi implementare ad esempio colorando il testo della cella
Codice: [Seleziona]
TableView[1,3].forecolor=color.red
Titolo: Re: Focus su tableview
Inserito da: Picavbg - 06 Febbraio 2010, 22:52:34
no, io voglio portare il cursore in un determinata cella....sarebbe comodo per tante cose specialmente per gli spostamenti
Quando in un form mi voglio spostare da una casella ad un'altra, per es. da una TextBox ad una ComboBox utilizzo il metodo SetFocus. Con esso infatti trasferisco il focus, cioè rendo attivo un nuovo controllo. Parimenti, considerando le celle di una TableView come tanti controlli contigui, seguendo codesta logica io proverei a fare
Codice: [Seleziona]
TableView1.SetFocus(riga, colonna)
. Se non dovesse funzionare puoi sempre andare al  riferimento: http://gambasdoc.org/help/comp/gb.form/tableview (http://gambasdoc.org/help/comp/gb.form/tableview)
Il mio è un ragionamento; non ho mai usato una tableview. Se dovesse funzionare avremmo imparato un'altro aspetto del grande Gambas. :D
Ciao.
Titolo: Re: Focus su tableview
Inserito da: fsurfing - 06 Febbraio 2010, 23:06:45
purtroppo non è cos' semplice il tablewiev non accetta il focus su una cella, proprio perchè non ha un puntatore grafico
Titolo: Re: Focus su tableview
Inserito da: milio - 07 Febbraio 2010, 01:20:03
forse le proprieta' che cerchi sono tableview1.row e tableview1.column
Titolo: Re: Focus su tableview
Inserito da: Ceskho - 07 Febbraio 2010, 01:55:58
forse le proprieta' che cerchi sono tableview1.row e tableview1.column

Utilizzando queste due istruzioni finiresti col rendere funzionale solo l'ultima..ovvero se scrivi
Codice: [Seleziona]
Tableview1.Row = 1
Tableview1.Column = 3

In realtà non intercetti una cella me selezionai prima una riga e poi ignori ciò che hai fatto e selezioni una colonna....

L'unico modo per fare qualcosa su una cella e usare le proprità della cella mediante
Codice: [Seleziona]
Tabview1[1,3].Proprietà = valore
Titolo: Re: Focus su tableview
Inserito da: milio - 07 Febbraio 2010, 02:36:55
hai mai provato a fare:

tableview.row = 3
tableview.column = 4

tableview[tableview.row, tableview.column].text = "ciao, guarda dove sto scrivendo!"
Titolo: Re: Focus su tableview
Inserito da: Ceskho - 07 Febbraio 2010, 02:45:21
hai mai provato a fare:

tableview.row = 3
tableview.column = 4

tableview[tableview.row, tableview.column].text = "ciao, guarda dove sto scrivendo!"

Il codice che hai scritto da conferma a quello che dico io....se elimini le prime due righe svolge il suo compito lo stesso.
Titolo: Re: Focus su tableview
Inserito da: milio - 07 Febbraio 2010, 02:51:44
Citazione
In realtà non intercetti una cella me selezionai prima una riga e poi ignori ciò che hai fatto e selezioni una colonna....

' mi sposto sulla riga 3
tableview.row = 3

' mi sposto sulla colonna 4
tableview.column = 4

' scrivo nella 'cella' [3, 4]
tableview[tableview.row, tableview.column].text = "ciao......"
Titolo: Re: Focus su tableview
Inserito da: milio - 07 Febbraio 2010, 03:22:39
@ Golia

Ti allego una mia piccola utility che utilizza lo spostamento tra celle in una gridview.
Non è un gran che, ma forse ti può esser utile.
Titolo: Re: Focus su tableview
Inserito da: milio - 07 Febbraio 2010, 03:26:09
ha dimenticavo... devi spostarti con il tab...
Titolo: Re: Focus su tableview
Inserito da: Ceskho - 07 Febbraio 2010, 04:16:20
Citazione
In realtà non intercetti una cella me selezionai prima una riga e poi ignori ciò che hai fatto e selezioni una colonna....

' mi sposto sulla riga 3
tableview.row = 3

' mi sposto sulla colonna 4
tableview.column = 4

' scrivo nella 'cella' [3, 4]
tableview[tableview.row, tableview.column].text = "ciao......"

Il problema è che non ci stiamo capendo....il codice da te postato è equivalente a questa semplice riga di codice:
Codice: [Seleziona]
Tableview1[3,4].text = "ciao, guarda dove sto scrivendo con due righe in meno"

Il problema del tuo codice è che per ottenere tableview.row e tableview..column devi prima spostarti su quella cella in particolare....e Golia non vuole questo....

Spero di essere stato un pò più chiaro.... ;)
Titolo: Re: Focus su tableview
Inserito da: milio - 07 Febbraio 2010, 09:57:44
Scusa, ma quando Golia ha scritto:

Citazione
Ciao a tutti
Volevo chiedervi come si fà a dare il focus in una determinata cella di tableview.
Ciao grazie

probabolmente avevo capito un'altra cosa....  :D
Titolo: Re: Focus su tableview
Inserito da: fsurfing - 07 Febbraio 2010, 11:22:22
anche io avevo capito quello che ha capito milio
Titolo: Re: Focus su tableview
Inserito da: milio - 07 Febbraio 2010, 11:23:35
meno male che non sono l'unico matto...  ;D
Titolo: Re: Focus su tableview
Inserito da: Golia - 07 Febbraio 2010, 13:58:08
 :-[ scusate vi ho fatto fare casino a tutti
Provo le varie possibilità che mi avete postato poi vi faccio sapere.
Sto creando un esempio di tableview collegato a sqlite, a parere mio molto comodo per visualizzare, modificare e inserire nuovi dati.
Appena ho provato le varie possibilità ve lo posto così magari mi date una mano anche voi ;).
Ciao grazie
Titolo: Re: Focus su tableview
Inserito da: Ceskho - 07 Febbraio 2010, 15:41:15
Non riesco a vedere ancora gli allegati e questo mi fa arrabbiare come richard stallmzn quando va all'auchan e cercano di venderli un acer con windows 7 preinstallato.

@ Golia

Gambas mette a disposizione dei componenti particolari proprio per la gestione dei database....quando selezionani gb.sqlite dovrebbero apparirti tra i vari componenti...
Titolo: Re: Focus su tableview
Inserito da: milio - 07 Febbraio 2010, 16:14:04
vuoi dire che l'esempio che ho allegato non è possibile scaricarlo?
Titolo: Re: Focus su tableview
Inserito da: Ceskho - 07 Febbraio 2010, 16:31:00
vuoi dire che l'esempio che ho allegato non è possibile scaricarlo?

La gente estremamente intelligente e affascinante ( 8)) come me ed fsurfing non vede gli allegati...tu li vedi?
Titolo: Re: Focus su tableview
Inserito da: Golia - 07 Febbraio 2010, 16:44:58
Io si vedo l'allegato e l'ho anche scaricato
@Milio
..Non so se continuare con il mio esempio o usare il tuo..è fantastico


Citazione
La gente estremamente intelligente e affascinante ( Fico)...
E io che la vedo in che categoria mi trovo? :P
Titolo: Re: Focus su tableview
Inserito da: milio - 07 Febbraio 2010, 17:38:14
probabilmente non siamo degli adoni io e te  :D
ho provato a scaricarmi l'allegato e funziona...

comunque grazie per il complimento... troppo buono.
se vuoi utilizzarlo pero' dovrai farci qualche aggiustamento perche' la griglia faceva parte di un progetto che ho realizzato in ditta e si porta dietro delle classi che magari a te non servono.
e sopprattutto e' ancora pieno di bachi.  ;)
Titolo: Re: Focus su tableview
Inserito da: Golia - 07 Febbraio 2010, 23:09:34
Vorrei comunque vedere dove posso arrivare con tableview.
Come potrei fare per spostarmi tra le celle col tasto tab?
Titolo: Re: Focus su tableview
Inserito da: milio - 07 Febbraio 2010, 23:28:55
bhe io ho usato l'evento keypress per intercettare key.tab (altrimenti mi mandava il focus su di un altro oggetto nel form).
Poi con keyrelease (che ho chiamato Event_KeyRelease() nella classe gridbox) incremento di uno la proprieta' .column e con la sub Refresh() (che non e' il refresh della gridview ma una sub scritta per colorare righe e celle) mi ricolora la cella selezionata.
quando .column = .columns.count -1  allora incremento .row di uno e mi sposto con .column = 0 sulla prima colonna, e così via...

non so se sono stato chiaro o ti ho solo fatto fare confusione  ;D
al massimo ti mando un altro esempio con una semplice griglia senza textbox o altri pggetti.
Titolo: Re: Focus su tableview
Inserito da: milio - 07 Febbraio 2010, 23:43:30
osteria... con quest'ultimo messaggio sono stato promosso a gambero.... ;D
Titolo: Re: Focus su tableview
Inserito da: Golia - 08 Febbraio 2010, 00:05:12
Penso di avere capito all'incirca, ma mi sa che con tableview non si possono fare queste cose..
Titolo: Re: Focus su tableview
Inserito da: Golia - 08 Febbraio 2010, 00:14:48
Pensi che si possa implementare la tua classe aggiungendo funzioni per database (nuovo salva etcc)?
Ormai mi hai fatto venire appetito :D
Titolo: Re: Focus su tableview
Inserito da: milio - 08 Febbraio 2010, 00:28:08
ci sto lavorando...  :D

anche perche' in ditta sto rifacendo la parte di 'personalizzazione' del nostro gestionale per il reparto bollettazione.
appena finito al massimo la faccio mettere in area download come componente aggiuntivo da installare per gambas.

intanto guardati l'esempio che ho scritto adesso.
forse e' molto piu' chiaro il concetto di 'spostarsi tra celle'.

ps: usa sempre il tab.
Titolo: Re: Focus su tableview
Inserito da: fsurfing - 08 Febbraio 2010, 00:30:45
tempo fa sul sito di gambas ho visto un componente realizzato da un esterno al progetto che implementava un gridview connessa a un db editabile , purtroppo non trovo più la pagina in questione ...
Titolo: Re: Focus su tableview
Inserito da: milio - 08 Febbraio 2010, 00:32:14
se ritrovi il link, mi piacerebbe dargli una sbirciatina  :D
Titolo: Re: Focus su tableview
Inserito da: milio - 08 Febbraio 2010, 00:53:48
@ Golia

Ti ho aggiunto all'esempio lo spostamento con le frecce.
Titolo: Re: Focus su tableview
Inserito da: Golia - 08 Febbraio 2010, 01:13:11
Grazie, buona notte :)