Ver Mensaje Individual
  #4  
Antiguo 07-06-2007
Avatar de xEsk
[xEsk] xEsk is offline
Miembro Premium
 
Registrado: feb 2006
Posts: 454
Reputación: 21
xEsk Va por buen camino
Por supuesto!

La primera línea de código es la declaración del procedimiento: BuscaPalabra
Los tres parámetros que se le pasan son:
- Primero: la palabra a buscar dentro de un ListBox
- Segundo: el ListBox donde buscaremos esta palabra
- Tercero: para definir si sera sensible a mayúsculas y minúsculas, este es un parámetro booleano opcional, con lo de opcional me refiero a q si cuando llamas estre proceso (BuscaPalabra) no "defines" el tercer parámetro este será "False" por defecto.

Ahora expliquemos q hace el procedimiento en si:

La variable N de tipo entero, servirá para recorrer todos los Items del ListBox.
Luego hay una procedimiento "declarado" en las variables (function doCaseSensitive(LaPalabra: String): String;), que su única función es: Si la variable CaseSensitive esta activada, pues transforma LaPalabra pasada por parámetros en minúsculas, en caso contrario deja el texto en su formato original.

Después de esto, viene el código q busca la palabra dentro del ListBox.

- El primer paso es convertir la Palabra (pasada por parámetros) a minúsculas (si fuera necesario).
- El segundo paso es ya el de recorrer el ListBox en busca de la palabra. Para eso usamos el for desde 0 hasta el total de Items del ListBox - 1. En cada paso del for, comprobamos si el Item actual del ListBox contiene la Palabra, para esto usamos la función Pos (System).

Que hace el Pos? El pos lo q hace es buscar un String dentro de otro String y nos devuelve la posición del primer carácter, en caso de no encontrar la palabra nos devuelve 0.

Así pues, después de comprobar q el resultado devuelto es superior a 0, nos queda el ultimo paso, q es seleccionar el Item q contiene la palabra, para esto: ListBox.ItemIndex:=n; y luego Exit; para "abortar" el proceso y no seguir buscando.

El útlimo procedimiento el "TForm1.Edit1KeyUp" lo que hace es llamar el procedimiento BuscaPalabra, si te fijas no le paso el tecer parametro, porqué no quiero que sea CaseSenstive (sensible a mayúsculas y minúsculas), si quisieras que lo fuera, solo añadele el parametro True, asi: BuscaPalabra(Edit1.Text, ListBox1, True);

Última edición por xEsk fecha: 07-06-2007 a las 17:47:16.
Responder Con Cita