Newsgroup: it.comp.lang.delphi
Titolo: TDBLookupComboBox e la sua proprietà ListSource

Salve a tutti,
chiedo aiuto per un problema che non sono riuscito ancora a risolvere.
Anche se potrà sembrare banale, spero vogliate aiutarmi lo stesso.
Ho un componente TDBLookupComboBox collegato ad una tabella di un database 
Access tramite la sua proprietà DATASOURCE per registrare dei nomi da 
inserire.
Questi nomi li prelevo da un'altra tabella collegata allo stesso componente 
tramite la sua proprietà LISTSOURCE.
Fin qui tutto a posto. Ora se voglio filtrare i record tra cui scegliere per 
l'inserimento nel componente, come faccio?
Ho provato con la proprietà Filter sia del componente stesso che del 
componente TADOTable ma accetta solo una stringa del tipo "squadra = 'milan' 
"  scritta per giunta solo a design-time.
Se la voglio scrivere da codice così:
adotable1.Filter := 'squadra =' + 'milan';      // per il componente 
TadoTable
TDBLookupComboBox1.ListSource.DataSet.Filter := 'squadra =' + 'milan';
mi da in continuazione errore. Dove sbaglio?
Grazie in anticipo!

 mi da in continuazione errore. Dove sbaglio?
Tanto per iniziare, se listsource contiene molti record, mentre lui se
li carica l'utente ha tutto il tempo necessario a scegliere quali
maledizioni mandarti.
Poi, quando si è caricato tutto, l'utente scopre che quello che gli
serve e' grosso modo a meta' della lista, e vai con cursore, scrollbar
etc etc etc.
Provalo tu.
Metti 1000 record dentro una tabella e prova poi con un
tolookupcombobox a pescare che so, l'elemento 800 o 850...
Poi fallo per una decina di volte e vedi se poi non ti serve un fegato
di ricambio.
Butta via quel coso.
Metti 2 tedit ed un pulsante.
Nel primo tedit dai all'utente la possibilita di digitare un qualche
tipo di codice o parte di esso.
Poi, con il pulsante lanci una query del tipo "select * from tabella
qhere tuocampocodice like xx' dove xx e' il valore digitato dall
'utente nel primo tedit, e mostri il risultato in una dbgrid messa in
una form modale.
Poi, quando l'utente sceglie l'elemento desiderato chiudi la finestra
modale e nel secondo tedit scrivi la descrizione (o il cognome o quello
che e'...) del record selezionato.
Finally, se quello che all'utente serve non esiste, metti nella form
modale un pulsante "nuovo..."
Se poi vuoi fare VERAMENTE la cosa fatta bene, fai in modo che il
pulsante di ricerca si attivi SOLO se nel primo tedit sono stati
digitati almeno 2 o 3 caratteri, e mostri la dialog solo se vi e' + di
un record restituito dalla query, altrimenti l'unico che trova lo dai
per buono e lo selezioni in automatico.
A.

 mi da in continuazione errore. Dove sbaglio?
Il filtro che gli passi corrisponde a "squadra=milan", se si tratta di 
un campo stringa mi sa che ci vogliono le virgolette :
....Filter := 'squadra=' + QuotedStr( 'milan' )
ciao
Giacomo

 adotable1.Filter := 'squadra =' + 'milan';      // per il componente 
adotable1.Filter := Format('squadra = ''%s''', ['milan']);
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 tipo di codice o parte di esso.
Per la serie reinventiamo la ruota...



Che bella personcina che sei... 

 Che bella personcina che sei...
Già e mi firmo nome e cognome.


 Già e mi firmo nome e cognome.
E quindi? 

 E quindi?
E quindi che ? Taci per cortesia.  Se non hai nulla di utile per
alimentare una discussione tecnica, faresti meglio a stare zitto.



Faresti bene a stare zitto, visto che i NG sono pieni delle tue zuffe. 

 Faresti bene a stare zitto, visto che i NG sono pieni delle tue zuffe.
Le zuffe ci sono quando appaiono imbecilli come te.



Imbecilli come Alberto Salvati ad esempio...giusto? Ma ce ne sono molti 
altri nella tua triste lista.

Ma ce ne sono molti altri nella tua triste lista.
Gli imbecilli sono tanti, purtroppo...



No.
Il punto non e' la discussione tecnica in questo caso.
Il punto invece e' la tua maleducazione: ogni volta che intervieni insulti o 
tratti male l'interlocutore.
Guardati i post passati e fatti un esame di coscienza...e smettila con tutto 
questo odio verso le altre persone.
Vedrai che se saprai essere meno cafone la vita potra' sorridere anche a te.

 Il punto non e' la discussione tecnica in questo caso.
Taci cretino.



ROTFL!