Newsgroup: it.comp.lang.delphi
Titolo: dblookupcombobox1...

Salve a tutti, sapete come si può eliminare la casella vuota che mi esce in 
DBLookupComboBox1 all'avvio dell'applicazione? Cioè non capisco perchè 
essendo al primo record mi esce casella bianca e non direttamente il primo 
valore della tabella, Poi ovviamente vado a scorrere e non appare più la 
casella bianca... Praticamente è come se partisse con un ItemIndex a -1 
(proprietà disponibile in TComboBox). Sapete poi come posso catturare 
l'evento selected di tale componente? Dovrei collegare una procedure in 
corrispondenza alla selezione di un nuovo  record...
Grazie in anticipo a coloro sapranno aiutarmi.... Ed un saluto a tutto il 
news... 

non dipende dal  *componente*.
il componente è *passivo*
Si limita a mostrarti il valore del listsource corrispndente al
datafield ad esso associato.
Quindi, se il datafiled è null, la combo non sa quale elemento
mostrare.
Quindi, esci dal contesto visuale e spostati in ambito database,
assegnando al nuovo record un valore di defualt per il campo.
A.

 ha scritto nel messaggio 
news:1166781374....@80g2000cwy.googlegroups.com...


Ti chiedo scusa ma non ho capito tanto cosa vuoi dire:
esempio
il mio database
id | nome       | Cognome | ecc...
1  | Mario    | Rossi
2  |Lorenzo  | Bianchi
se collego a DBLookupCombobox il keyfield nome ed il listsource...
ottento che nello scorrere trovo.
Mario
Lorenzo.
Ma all'avvio dell'applicazione, il DBLookupCombobox non presenta testo cioè 
la casella è vuota.
Poi vado a scorrere e ci trovo.
Mario
Lorenzo
Seleziono il primo e da quel momento in poi non ho più problemi.
Ma visto che di default il cursore punta già al primo record ke è Mario 
perchè non mi esce già Mario visto che sta puntando al primo record che è il 
record di Mario?
Se seleziono Lorenzo il cursore va sul secondo record e nella casella rimane 
Lorenzo...
Quello che non ho capito che c'entra lo spazio vuoto che esce all'avvio 
dell'applicazione...?

> Ti chiedo scusa ma non ho capito tanto cosa vuoi dire:
sul dblokkup  le property datasource e datafield sono assegnate o no?
A.

 dell'applicazione...?
Se non ho capito male, quello che tu descrivi è il normale funzionamento 
del componente. Al primo avvio non ha una valore di KeyValue assegnato e 
la casella del DBLookupCombobox rimane bianca.
Lo stesso succede se a KeyValue assegni un valore che non corrisponde a 
nessun ID nella tabella.
Se proprio vuoi che il componenti visualizzi sempre qualcosa dovrai fare 
una funzione apposita che gli assegni in ogni momento un valore di 
KeyValue esistente.
Daniele

lorcuci ha scritto:

Io ho avuto il tuo stesso problema e ho fatto un nuovo componente dove
nell'evento KeyValueChanged
if Assigned(ListSource) and Assigned(ListSource.DataSet) and not
(KeyField = '') then
  if not (ListSource.DataSet.DataSource = nil)  then
    KeyValue := ListSource.DataSet.FieldByName(KeyField).Value;
Spero ti sia utile
Massimo


Ragazzi io i valori li trovo nel DBLookupCombobox è stato asseganto il 
ListSource è stato assegnato il keyfield che nel mio caso è il campo nome. A 
run time mi trovo tutti i valori del campo nome come deve essere. Ma vorrei 
che nella casella mi apparisse il contenuto del campo "nome" in questo caso 
del primo record  "Mario" ma mi esce come seconda scelta. Ho una tabella 
utenti con due record soli e nel DBlookupCombobox mi escono i due record ma 
all'inizio devo scorrere il DBLookupCombobox per passare al primo mio record 
del campo nome. Fate questa prova inserite un DBLookupCombobox collegate il 
listsource ad una adotable poi il keyField al campo che volete avviate 
l'applicazione e capirete qual'è il mio probema.
In fondo l'applicazione funzionerà. Però esteticamente sarebbe bello che 
all'avvio il DbLookupCombobox mi riportasse il contenuto del campo nome al 
primo Record e non casella vuota... 

 primo Record e non casella vuota... 
Mi sto facendo una rubrica con DBE e Mysql e ho tre dblookupcombobox ma 
non ho il tuo problema,quando mando in esecuzione il programma, il 
puntatore e' posizionato sul primo record e nella text delle combo viene 
visualizzato il valore corrispondente al campo.
Dico una stupidaggine, sei sicuro di non avere un record vuoto o magari 
con un carattere di punteggiatura . che se hai un indice per cognomi si 
posiziona in testa.
Ciao Slurp