Ver Mensaje Individual
  #7  
Antiguo 20-06-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Reputación: 22
cHackAll Va por buen camino
Cool Sip

Cita:
Empezado por david_uh
...pero ahora necesito recuperar enun Edit el nombre de un cliente y para ello cuento solo con su ID, es obvio que tendria que buscar el id dentro de la matriz objects[] de la lista pero me gustaria saber si existe otra forma ya que una búsquda sobre 10000 registros o más podría no ser eficiente...
Lamento no haber sido del todo claro al responder la interrogante... solo contando con el ID en mi ejemplo el ID es 12, pero supongo que el ID lo obtienes de una variable o objeto en la GUI que lastimosamente desconozco... pero es la misma lógica utilizada;

Cita:
Empezado por Neftali
...yo optaría por una segunda lista (TStringList) "ordenada" por ID que te permita hacer la búsqued...
Esa idea esta super, lastimosamente debes llamar a un procedimiento de ordenamiento, un QuickSort pues la VCL no ordena por Objects , pero con eso ya estaríamos... la busqueda se vuelve más eficiente.

En todo caso respondo la pregunta:

Código Delphi [-]
 Posicion := lis_clientes.Items.IndexOfObject(Pointer(StrToInt(txtID.Text)));

Creo que la cosa ahora se entiende más.
Responder Con Cita