Oppure

Loading
28/03/10 14:19
a_butta
Ciao a tutti. Volevo chiedere se esiste un modo per fare di una Edit un campo di ricerca di una listbox.
Ad esempio ho in una list box dei nomi, mettiamo
Marco
Giuseppe
Carlo
Mamma
Marcello
Marta
Carla


A me interessa che se io scrivo nella Edit ad esempio Ma, in un altra listbox (preferibilmente nella stessa però immagino che la questione sarebbe molto più complicata) solo i campi che inziano per Ma. Quindi nella ListBox2 avrò
Marco
Mamma
Marcello
Marta

spero di essermi spiegato...

PS: non ho dimestichezza con i database e non ho tempo di mettermi ad impararli, quindi mi servirebbe una soluzione applicabile alla ListBox

Grazie a tutti anticipatamente
Saluti
aaa
28/03/10 20:10
systemgvp
potresti semplicemente associare all'evento KeyPressed o simile del TEdit
un codice di ricerca nella list box.

in pratica dovresti avere due liste, una con i dati e una temporanea dove
viene visualizzata la ricerca.

a ogni pressione del tasto sul TEdit il codice prende la riga iesima della
lista dati e valuta le prime N lettere, tipo se memorizzi le stringhe dati
nella variabile DATO e il contenuto del TEdit nella variabile RICERCA avrai
una cosa simile:

//valuta se ci sono lettere uguali
contatore:=0;
for i := 1 to LettereDigitate do
begin
if (DATO[i] = RICERCA[i]) then contatore := contatore+1;
end;
//controllo validità
if (contatore = LettereDigitate) then Aggiungi la stringa DATO alla lista dei ricercati

il tutto naturalmente ripetuto per l'intero contenuto della lista

aaa
11/04/10 11:14
lom89
per far questo serve la funzione split, per dividere le singole lettere, che putroppo ho visto che delphi non ha...ho trovato cmq un codice per poterla implementare, se serve chiedete!
aaa