Sviluppo4d.it
Sito indipendente di informazioni tecniche per sviluppatori 4th Dimension italiani  

Sviluppatori 4D

Utility 4D

Risorse 4D



4d logo
Naviga: Prev Next

Titolo: Deselezionare gli elementi di una listbox **

Categoria: Tecniche Ultimo Aggiornamento: 18/05/06


Le list box "ricordano" la riga selezionata, il che significa che visualizzando uan listbox già visualizzata potremmo trovare una riga già selezionata.
Per evitare ciò, se arrEsempio è uno degli array usati dalla listbox ListBox, basta scrivere:

SELECT LISTBOX ROW (ListBox; Size of array(arrEsempio)+1)





Inviato da: PierPaolo Sichera Visite: 11394


Raffaele Furlotti 25/02/06 00:00:00
Credevo che avessi squarciato il velo della verita' sulla deselezione di una riga nelle List Box. Purtroppo non e' cosi'. Infatti, nonostante l'utilizzo del comando come hai indicato, rimane immutata la memoria della riga precedentemente selezionata. A titolo dimostrativo:
inserisci il comando di deselezione degli elementi in una ricerca di records passati alla List Box con 'SELECTION TO ARRAY'.
Effettua una ricerca per mostrare una selezione di pochi elementi (per es. 3).
Seleziona il 3° elemento.
Rieffettua un'ulteriore ricerca tendente (in questo caso) a mostrare una selezione di elementi maggiore della prima. La nuova ricerca dovrebbe annullare la memoria dell'elemento precedentemente selezionato. Invece se usi le frecce giù vedrai che il primo elemento selezionato nell'elenco degli elementi della nuova ricerca e' il 4° elemento. E questo avviene anche nel caso contrario ossia quando il numero dell'elemento selezionato nel primo elenco e' maggiore del numero degli elementi della seconda selezione. Devi risalire di tot. elementi prima di rivedere la riga selezionata.


Umberto Migliore 25/02/06 00:00:00
Non è che quando ricrei la Selection to array non azzeri il valore dell'array che identifica la riga selezionata? Cioè dovresti scrivere..

ARRAY TEXT(mioArray;0)
SELECTION TO ARRAY([Tabella]Campo; mioArray)
mioArray:=0



PierPaolo Sichera 27/02/06 00:00:00
Prova questo:

4D 2004: la variabile associata ad una listbox

Metti tutti i valori a False.



PierPaolo Sichera 05/03/06 00:00:00
La costante "2" per il comando SELECT LISTBOX ROW significa "Remove from listbox selection" (è l'unica costante presente solo sulle listbox e non su 4DView), cioè gli staresti dicendo "rimuovi dalla selezione la riga zero". Penso sia per questo che, non avendo toccato la selezione, quando fai freccia giù ti riparta dall'ultima riga precedentemente selezionata.


Alessandro Casassa 15/05/06 00:00:00
Io ho trovato un metodo abbastanza rudimentale per risolvere la problematica che, però, funziona.

SELECT LISTBOX ROW(*;"listBox";1;0)
SELECT LISTBOX ROW(*;"listBox";1;2)

Con la prima Select seleziono solo la riga 1, deselezionando tutte le altre, con la seconda Select deseleziono la prima riga.
Ovviamente, come risultato ottengo la deselezione di tutto.



Raffaele Furlotti 17/05/06 00:00:00
Ho provato il metodo indicato da Alessandro Casassa ma devo dissentire sul funzionamento di tale metodo. Il risultato che ottengo e' la ripartenza dal secondo elemento dell'array della ListBox.
L'unico vero modo per fare resettare l'elemento in memoria alla ListBox riportardolo a 'zero', e' cliccare in una parte priva di elementi della ListBox, oppure riaprendo la finestra e ricreando la ListBox ex novo.
Il limite del comando SELECT LISTBOX ROW è che non e possibile dirgli di selezionare l'elemento 'zero' perchè così facendo si crea la selezione di tutti gli elementi.

Eseguendo (paradossalmente):
SELECT LISTBOX ROW(*;"listBox";0;1) ' fa virare tutti gli elementi a true
SELECT LISTBOX ROW(*;"listBox";0;2) ' tutti gli elementi diventano false e la variabile listBox nel TRACE risulta realmente assegnata a zero, però poi al successivo utilizzo della freccia, (per spostarsi nella lista) la selezione riparte sempre dall'ultimo elemento selezionato.


PierPaolo Sichera 18/05/06 00:00:00
Nella vita mai dire mai. Una soluzione al tuo problema potrebbe darla la faq sulla selezione circolare.

Se accedi con utente e password, puoi aggiungere dei commenti.


Accesso

User: Nuovo
Pass: Accedi

Utenti Registrati

Cerca

Se non trovi le informazioni che cerchi scrivi a aiuto@sviluppo4d.it

4D Principali

4D Discussioni

Faq random


Crediti

Dominio registrato da ZetaNet
Sito realizzato da Nexus srl
4D SQL 11.8.0 offerto da 4D & Italsoftware
Icone di FAMFAMFAM
Moderato da Umberto Migliore
265 utenti registrati

Pagina servita il 21/11/17 alle 16:39:20 Valid HTML 4.01! Valid CSS!

Mutuo Facile, Serie Filmcards, Serie Singloids e altre app di Nexus srl per iPhone e iPad

Cidroid, distributore italiano lettori barcode per Apple iPhone, iPod, iPad della IPC