Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Crear una clase y asignar objetos como propiedades (https://www.clubdelphi.com/foros/showthread.php?t=42222)

leanfreue 09-04-2007 02:59:50

Crear una clase y asignar objetos como propiedades
 
Hola Amigos. Felices Pascuas para todos.

Trabajo con Delphi 7 y MySQL 5.0 con componentes dbExpress.

Estoy tratando de hacer una clase llamada "Buscador", les cuento de qué se trata con un ejemplo:

Tengo un formulario que muestra en un DBGrid una lista de clientes, (ClientDataSet1) ordenados por nombre, al abrirse el formulario tengo el siguiente código;

ClientDataSet1.IndexName := 'oNom';

También tengo en el formulario un TEdit, llamado txtBuscador, en cuyo evento OnChange tengo el siguiente código:

ClientDataSet1.FindKey([txtBuscador.Text]);

Y todo funciona perfecto, a medida que el usuario va ingresando el nombre del cliente, éste aparece seleccionado en la grilla.

Lo que quiero es hacer una clase "Buscador", en la que pueda asignarle:
* El ClientDataSet en que tiene que buscar el dato ingresado.
* El índice por el cuál tiene que buscar.
* El tratamiento que hay que darle al texto ingresado, por ejemplo, si voy a buscar por código, el texto a buscar sería StrToInt(TextoABuscar).

Ya estuve haciendo varias clases simples, pero acá me surge la duda sobre qué tipo de propiedades utilizar, y una vez resuelto el tema, cómo hago para ejecutar el FindKey.

Resumiendo, la pregunta es: ¿Cómo lo hago?

Desde ya les agradezco su tiempo!!!

Lepe 09-04-2007 11:32:10

Dale una visual a este hilo Allí se habla de como construir las sqls, para según qué tipo de campo, integer, string, etc. ( Mira a partir del mensaje nº 10)

Saludos

leanfreue 12-04-2007 21:11:38

Gracias Lepe por tu respuesta (te lo agradezo un poco tarde, :)). Gracias a la info pude solucionar uno de los temas.

Ahora lo único que me queda por resolver es cómo le indico al "Buscador" en qué DataSet tiene que buscar la info.

Saludos para todos.

Lepe 12-04-2007 23:16:08

Si quieres hacerlo en tiempo de ejecución es lo más fácil:
Código Delphi [-]

formbusqueda = class (tform)
....

public 
  BuscarEn :TDataset;
end;

Lo dejas preparado así, y después puedes asignar el dataset y ejecutar la busqueda:
Código Delphi [-]
frmbusqueda.buscarEn := dsClientes;
frmbusqueda.EjecutarBusqueda;

La rutina EjecutarBusqueda mirará en la variable BuscarEn y accederá a los campos de ese TDataset (que puede ser un TTable, Tquery, etc);

Saludos

leanfreue 13-04-2007 00:08:33

Gracias Lepe !!!!
Anduvo todo perfecto.


La franja horaria es GMT +2. Ahora son las 17:45:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi