realbasic-nug.it
[Top] [All Lists]

Re: Contenitore di dati

To: REALbasic NUG Italian <realbasic-nug.it@lists.realsoftware.com>
Subject: Re: Contenitore di dati
From: Sergio Tamborini <ml_sergio@system-i.it>
Date: Mon, 15 Jun 2009 19:29:14 +0200
Authentication-results: mx.google.com; spf=neutral (google.com: 74.124.194.228 is neither permitted nor denied by best guess record for domain of realbasic-nug.it-bounces@lists.realsoftware.com) smtp.mail=realbasic-nug.it-bounces@lists.realsoftware.com
Delivered-to: listarchive@realsoftware.com
In-reply-to: <26d1d61d0906150744x2de97fdcjcc07942644417813@mail.gmail.com>
References: <26d1d61d0906121045k6d489f46v167bcc8f83cd3d19@mail.gmail.com> <3EF4A47C-222C-4F02-8720-AB66DA2C5F61@libero.it> <26d1d61d0906122336u72fc1284l4d0a65f9d9860870@mail.gmail.com> <DB4E051A-7743-4F3E-A5DF-B65A36BBAE62@yahoo.it> <26d1d61d0906150213q432db3cdrc74975dd8213fdbb@mail.gmail.com> <AC4B207C-B0CC-4ADF-8988-187DE34492A3@system-i.it> <26d1d61d0906150744x2de97fdcjcc07942644417813@mail.gmail.com>
Reply-to: REALbasic NUG Italian <realbasic-nug.it@lists.realsoftware.com>
Sender: realbasic-nug.it-bounces@lists.realsoftware.com
Allora, ovviamente l'evento hai ragione tu... è cellkeydown (keydown è riferito all'evento di pressione di un tasto su tutta la listbox).

Io comunque mi sono fatto un piccolo metodo che chiamo dall'evento cellkeydown, al quale passo quale riga e quale colonna (in pratica quale cella) intendo rendere editabile:

Sub SelezionaUltimaRIgaInserita(riga As integer, colonna As integer)
  me.editCell(riga,colonna)
  me.ActiveCell.SelStart=0
  me.ActiveCell.SelLength=len(me.Cell(riga,colonna))
End Sub

....Sono poi 3 righe :)

Spero di essere stato utile!

Il giorno 15/giu/09, alle ore 16:44, Massimo Lista ha scritto:

Ho seguito il tuo consiglio.

Su evento KeyDown
   if key=chr(13) then
   Me.CellType(row,1)=Listbox1.TypeEditable
   Me.EditCell(row, 1)
   return True
 end if

---ma su row mi segnala "Questo metodo o proprietà non esiste"

Invece su evento CellKeyDown ho inserito:
 if key=chr(9) then
   Me.CellType(row,1)=Listbox1.TypeEditable
   Me.EditCell(row,1)
   return True
 end if

e row viene accettato, con la freccia si ottiene lo scorrimento delle righe ma il campo della colonna 1 non viene reso editabile (come invece avviene
con CellClick.

Perchè ?




Il giorno 15 giugno 2009 11.24, Sergio Tamborini <ml_sergio@system-i.it > ha
scritto:

Nell'evento keydown metti chr(13) che è l'invio (puoi anche valutare il chr(12) che è l'invio del tastierino numerico) e dici di editare la cella sotto... puoi anche valutare il key chr(9) che è il tab per spostarti alla cella a destra :) con qualche if puoi anche fare in modo che se arrivi
all'ultima coolonna vada alla prima cella della riga sotto. E'
fattibilissimo, ce l'ho fatta io :)

Il giorno 15/giu/09, alle ore 11:13, Massimo Lista ha scritto:


Grazie per il suggerimento.In questo modo riesco a editare i campi di una
colonna:

On CellClick
Me.CellType(Val(str(row)),1)=Listbox1.TypeEditable
Me.EditCell(Val(str(row)),1)

però non riesco a gestire l'evento su invio, facendo in modo tale che il focus vada sulla stessa colonna al rigo successivo rendendola editabile. Devo necessariamente posizionarmi con il mouse al rigo successivo, la qual cosa sarebbe molto scomodo in caso di inserimento di molti dati (quali ad
esempio i dati di un bilancio).





Il giorno 13 giugno 2009 9.30, Massimo Valle <maxduepuntozero@yahoo.it >
ha
scritto:


Contrariamente a quanto sembri, la listbox funge anche da contenitore. Utilizzi il metodo Listbox.cell(row, column) sia per recuperare che per assegnare un valore. Se devi farlo inserire direttamente all'utente puoi rendere editabile la cella e di conseguenza questa si comporta come un
editfield.

Massimo Valle



On 13/giu/09, at 08:36, Massimo Lista wrote:

Ma è possibile inserire direttamente un valore in una cella di una
listbox

?Io
ho capito che la listbox è solo un visualizzatore di dati.
Non riesco ad inserire alcun dato direttamente in una listbox.
Per modificare un campo di una listbox devo trasferire il valore di quel
campo in un editfield, modificarlo e ripopolare la listbox.
A me invece serve inserire direttamente il valore nel campo della
listbox
(tipo griglia di un file excel).
E' possibile ?
Esiste un controllo ad hoc ?
Il plugin DataGrid può fungere allo scopo ?




Il giorno 12 giugno 2009 21.12, Ivano Monti <ivanomonti@libero.it> ha
scritto:

che io sappia no, ma puoi usare una listbox cmq, legata ad un database o

un
recordset credo che il limite sia nelle colonne, se non erro 64 colonne
come
max, ma non vorrei dire una scemenza, le maschere viewer di una query
che
in
realbasic non esistono se non con la listbox.

Poi puoi fare scatenare una serie di modifica e salva a secondo di come vuoi muoverti nelle celle della stessa, se posso dare un contributo più
che
volentieri.

Ivano Monti
Developer for Mac and Windows

Email:          ivanomonti @ libero.it
Url:                    http://www.ivanomonti.eu

Skype:          ivanomonti
AIM:                    ivanomonti
iChat:                  ivanomonti

Mobile Phone:   +39-392-9824007
Phone:          +39 02 36648804

Google Map              45.62224,9.107407



Il giorno 12/giu/09, alle ore 19:45, Massimo Lista ha scritto:


Ho l'esigenza di un controllo che si presenti come un editfield , ma
che

sia
anche un contenitore di dati.
Mi spiego meglio:
Mi sembra di capire che listbox e editfield sono solo dei
visualizzatori
di
dati, a me serve invece un controllo
collegato ad un database che mi consenta di inserire dei valori in un
campo
(tipo foglio di Excell)
In Microsoft Access ci sono le maschere con visualizzazione continua.
In RealBasic ?





--
Massimo







--
Massimo



------

Sergio Tamborini
Brescia
http://www.system-i.it









--
Massimo



------

Sergio Tamborini
Brescia
http://www.system-i.it








<Prev in Thread] Current Thread [Next in Thread>